Как вывести 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