我为桌面和移动平台创建了统一应用程序。屏幕左上角有一张地图。我在这张地图上画出了每一帧的圆圈。随时可以在运行时改变圆的位置。如何在屏幕上显示2D图像unity3d
为了完成这个任务,我在纹理上绘制圆并绘制这个纹理。此代码适用于模拟器,但不适用于android手机或平板电脑。我在地图上看不到任何圈子。
我的代码是在这里:
TextAsset imageAsset; // .png changes to .png.bytes. And the file dragged to this variable on inspector.
Start() {
texture.LoadImage(imageAsset.bytes);
}
void OnGUI() {
Circle(texture, x, y, Color.red);
if (Event.current.type.Equals(EventType.Repaint))
{
Graphics.DrawTexture(new Rect(..), texture);
}
}
有人说弃用OnGUI
。但是,如果我在OnGUI
中创建了一个按钮,它将在运行时显示在android上。
我试过另一种解决方案。我在场景中创建一个3d平面对象,并将.png文件拖放为纹理。但是我不会使用Texture2D
变量绘制圆圈来更改此纹理。
为什么不使用'sprites'? –
if(Event.current.type.Equals(EventType.Repaint))'只返回OnGUI函数,而不是更新,在您的Rect – LumbusterTick