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



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

为了完成这项任务,我在纹理上画圆并绘制这个纹理。此代码适用于模拟器,但不适用于安卓手机或平板电脑。我在地图上看不到任何圆圈。

我的代码在这里:

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变量来更改这种纹理。

你应该

使用精灵,为什么你使用OnGui函数而不是更新?

也许看看资源商店:2DToolkit

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

我问这个是因为您应该考虑更改计算机屏幕和设备之间的分辨率。

正如您在此处看到的,矩形值必须以像素为单位。

我建议您使用原始图像来加载纹理,使用画布来处理绘图,并使用 RectTransform 来控制圆形位置。

这些组件具有许多功能来处理可能发生的此解决方案问题。

相关内容

  • 没有找到相关文章

最新更新