Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Basic Embedding
#9
Boom, got it working!

Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Tilengine;

public class TileHandler : MonoBehaviour {
    public MeshRenderer trialRenderer;

    private Texture2D trialTexture;

    public static Engine trialEngine;

    private byte[] trialBuffer;

    [Range(1, 1920)]
    public int trialWidth;

    [Range(1, 1920)]
    public int trialHeight;

    [Range(1, 256)]
    public int trialLayersNumber;

    [Range(0, 256)]
    public int trialSpritesNumber;

    [Range(0, 256)]
    public int trialAnimationsNumber;

    // Use this for initialization
    void Start () {
        if (trialWidth <= 0) { trialWidth = 1; }
        if (trialHeight <= 0) { trialHeight = 1; }
        if (trialLayersNumber <= 0) { trialLayersNumber = 1; }

        trialEngine = Engine.Init(trialWidth, trialHeight, trialLayersNumber, trialSpritesNumber, trialAnimationsNumber);
        trialEngine.LoadPath = "Assets/TrialMap";

        trialTexture = new Texture2D(trialWidth, trialHeight, TextureFormat.BGRA32, false, false);
        trialTexture.anisoLevel = 0;
        trialTexture.filterMode = FilterMode.Point;

        trialBuffer = trialTexture.GetRawTextureData();

        trialEngine.SetRenderTarget(trialBuffer, 4 * trialWidth);
        Tilengine.Color trialBack = new Tilengine.Color(0x1B, 0x00, 0x8B);
        trialEngine.SetBackgroundColor(trialBack);

        if (trialRenderer != null) {
            trialRenderer.material.mainTexture = trialTexture;
        }
    }
    
    // Update is called once per frame
    void Update () {
        trialEngine.BeginFrame(Time.frameCount);
        for (int i = 0; i < trialHeight; i++) {
            trialEngine.DrawNextScanline();
        }
        trialTexture.LoadRawTextureData(trialBuffer);
        trialTexture.Apply();
    }
}

It took a little experimenting, but it wasn't nearly as difficult as I feared. This generates a dynamically-created Texture2D object, and then uses a byte array along with Tilengine to render content to that Texture2D object. Texture2D is a standard Unity class for dynamically generating and editing pixel textures on-the-fly, and can be applied to pretty much any standard Unity shader or material that accepts texture input. (most of them) There are several different ways to use this to display the rendered content. The method I used in the example is to link to an objects mesh rendering context, and assign the Texture2D as its mainTexture reference.
Reply


Messages In This Thread
Basic Embedding - by Richard Kain - 09-08-2018, 09:46 AM
RE: Basic Embedding - by Domarius - 09-08-2018, 11:31 PM
RE: Basic Embedding - by Richard Kain - 09-11-2018, 05:43 AM
RE: Basic Embedding - by megamarc - 09-11-2018, 07:19 AM
RE: Basic Embedding - by Richard Kain - 09-11-2018, 08:52 AM
RE: Basic Embedding - by megamarc - 09-13-2018, 06:22 AM
RE: Basic Embedding - by Richard Kain - 10-18-2018, 06:45 AM
RE: Basic Embedding - by megamarc - 10-18-2018, 11:34 PM
RE: Basic Embedding - by Richard Kain - 10-23-2018, 03:49 PM
RE: Basic Embedding - by megamarc - 10-24-2018, 05:17 PM
RE: Basic Embedding - by Richard Kain - 01-15-2019, 03:37 PM
RE: Basic Embedding - by megamarc - 01-22-2019, 02:58 AM
RE: Basic Embedding - by Richard Kain - 04-18-2019, 01:54 AM
RE: Basic Embedding - by megamarc - 04-18-2019, 07:26 PM
RE: Basic Embedding - by Richard Kain - 04-19-2019, 02:52 AM
RE: Basic Embedding - by megamarc - 04-19-2019, 05:39 PM
RE: Basic Embedding - by Richard Kain - 04-20-2019, 06:56 AM
RE: Basic Embedding - by megamarc - 04-23-2019, 07:20 PM
RE: Basic Embedding - by Richard Kain - 05-01-2019, 05:23 PM
RE: Basic Embedding - by megamarc - 05-01-2019, 09:26 PM
RE: Basic Embedding - by Richard Kain - 10-11-2019, 06:09 AM
RE: Basic Embedding - by megamarc - 10-14-2019, 08:31 PM
RE: Basic Embedding - by Richard Kain - 11-05-2019, 03:39 AM
RE: Basic Embedding - by Richard Kain - 11-05-2019, 04:46 AM
RE: Basic Embedding - by megamarc - 11-06-2019, 05:16 AM
RE: Basic Embedding - by Richard Kain - 11-06-2019, 06:08 AM
RE: Basic Embedding - by Richard Kain - 11-08-2019, 02:38 AM
RE: Basic Embedding - by megamarc - 11-09-2019, 02:27 AM
RE: Basic Embedding - by RootBeerKing - 11-10-2019, 10:54 PM
RE: Basic Embedding - by megamarc - 11-11-2019, 06:01 PM
RE: Basic Embedding - by RootBeerKing - 11-11-2019, 07:53 PM
RE: Basic Embedding - by megamarc - 11-12-2019, 02:18 AM
RE: Basic Embedding - by Richard Kain - 11-12-2019, 04:06 PM
RE: Basic Embedding - by RootBeerKing - 11-13-2019, 05:42 AM
RE: Basic Embedding - by Richard Kain - 11-13-2019, 05:36 AM
RE: Basic Embedding - by megamarc - 11-13-2019, 08:25 AM
RE: Basic Embedding - by RootBeerKing - 11-13-2019, 08:42 AM
RE: Basic Embedding - by megamarc - 11-13-2019, 06:08 PM
RE: Basic Embedding - by Richard Kain - 11-14-2019, 04:53 AM
RE: Basic Embedding - by Richard Kain - 11-14-2019, 08:30 AM
RE: Basic Embedding - by megamarc - 11-28-2019, 12:04 AM
RE: Basic Embedding - by megamarc - 12-05-2019, 08:22 PM
RE: Basic Embedding - by adreajessica - 11-25-2021, 02:42 PM
RE: Basic Embedding - by Richard Kain - 01-22-2022, 06:00 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)