如何在屏幕unity3d上显示2d图像

时间:2016-04-22 08:20:05

标签: android unity3d graphics texture2d

我为桌面和移动平台创建了一个统一应用程序。屏幕左上角有一张地图。我在每个帧上画这个地图上的圆圈。圆圈的位置随时可在运行时更改。

为了完成这项任务,我在纹理上画圆圈并绘制这个纹理。此代码适用于模拟器,但不适用于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上。

我尝试了另一种解决方案。我在场景中创建了一个三维平面对象,并将.png文件拖动为纹理。但我不会使用绘制圆圈的Texture2D变量来更改此纹理。

2 个答案:

答案 0 :(得分:0)

您应该使用精灵,为什么使用OnGui函数而不是Update?

也许看看资产商店:2DToolkit

答案 1 :(得分:0)

您的设备和图片的分辨率是多少?

我之所以这样问,是因为您应该考虑更改计算机屏幕与您的设备之间的分辨率。

正如您所见,here您的矩形值必须以像素为单位。

我建议您使用raw image来加载纹理,使用Canvas来处理绘图,使用RectTransform来控制圆圈位置。

这些组件有许多功能可以解决可能发生的解决问题。