Есть три способа показать сюжет.
- вы создаете кучу маленьких игровых объектов и соединяете линии,
- вы создаете Texture2D и рисуете в нем.
- Когда вы оставляете Unity на несколько минут, вызовите Texture.GetNativeTexturePtr () и используйте для этого вызовы D3D.
Я думаю, что 2 - это то, что вы могли бы использовать лучше всего. 3. немного покидает Unity и не будет портировать на целевые платформы.
Вам остается только сделать графику на нем. Использование только SetPixel - не очень большой графический API.
Вот пример того, как загрузить текстуру с графикой, нарисованной во время выполнения. Чтобы использовать его, создайте объект, не забудьте назначить материал и прикрепить этот скрипт.
using UnityEngine;
public class DrawTex : MonoBehaviour
{
Material mat;
Texture2D tx;
void Start()
{
MeshRenderer rend;
rend = GetComponent<MeshRenderer>();
UnityEngine.Assertions.Assert.IsNotNull(rend);
mat = rend.material;
UnityEngine.Assertions.Assert.IsNotNull(mat);
tx = new Texture2D(128,128,TextureFormat.ARGB32,true);
// draw stuff.
for(int y=0;y<128;y++)
{
for(int x=0;x<128;x++)
{
float a,r,g,b;
r=g=b=a=0f;
if( x<20 || y<20 || x>108 || y>108 )
{a=1.0f;r=g=b=0.75f;}
else
{a=0.5f;r=b=0.25f+(x/256.0f);g=0.25f+(y/256.0f);}
tx.SetPixel(x,y,new Color(r,g,b,a));
}
tx.Apply(true); // now really load all those pixels.
}
mat.mainTexture = tx;
}
}
Надеюсь, это поможет.