Как вывести 2d изображение на экран unity3d

Я создал приложение Unity для настольных и мобильных платформ. В левом верхнем углу экрана есть карта. Я рисую круг на этой карте каждый кадр. Положение круга изменяется во время выполнения в любое время.

Для этого я рисую круг на текстуре и рисую эту текстуру. Этот код работает на эмуляторе, но не на телефоне или планшете 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 ответа

Каково разрешение вашего устройства и вашего изображения?

Я спрашиваю об этом, потому что вы должны подумать об изменении разрешения экрана вашего компьютера и вашего устройства.

Как вы можете видеть здесь, ваши прямоугольные значения должны быть в пикселях.

Я рекомендую вам использовать необработанное изображение для загрузки вашей текстуры, Canvas для обработки рисунка и RectTransform для управления положением вашей окружности.

Эти компоненты имеют множество функциональных возможностей для решения проблем, которые могут возникнуть.

Вы должны использовать спрайты, и почему вы использовали функцию OnGui вместо обновления?

Может быть, взглянуть на магазин активов: 2DToolkit

Другие вопросы по тегам