Как сделать углы GUI.Box программно закругленными в Unity - PullRequest
0 голосов
/ 23 мая 2019

Я мало что знаю о C # и Unity.Я просто следую сценарию в учебнике Vuforia по Unity Cloud Recognition , в котором программно создается окно GUI.Так что я думаю, что все скрытые решения, использующие Unity Inspector, не работают для меня.

Мой текущий стиль GUI.Box

Texture2D texture = new Texture2D(1, 1);
texture.SetPixel(0,0,Color.white);
texture.Apply();

GUIStyle myBoxStyle2 = new GUIStyle(GUI.skin.box);
myBoxStyle2.fontSize = 40;
myBoxStyle2.normal.background = texture;
myBoxStyle2.normal.textColor = Color.black;
myBoxStyle2.alignment = TextAnchor.MiddleLeft;
GUI.Box (new Rect(Screen.width/4,Screen.height/6,Screen.width/2,Screen.height/8), mTargetMetadata, myBoxStyle2);

И похоже,это (белое поле)

enter image description here

Я проверил Руководство по стилю графического интерфейса пользователя , не помогло.

1 Ответ

1 голос
/ 23 мая 2019

Закругленные углы фактически являются стилем по умолчанию для GUI.Box.

Внутренне по умолчанию, он просто использует UISprite в качестве текстуры.Для того, чтобы использовать его также на вашем MonoBehaviour компоненте, вы можете иметь

public Texture2D boxTexture;

и ссылаться на него в UISprite, чтобы использовать его для вашего стиля.


Однако, похоже, что на самом деле ваш вопрос выглядит довольно просто

Как изменить цвет GUI.Box?

Так что, используя GUI, вы можете напрямую изменить цветиспользуя

// store current values before changing
var color = GUI.color;
var contentColor = GUI.contentColor;

// change GUI colors
GUI.color = Color.white;
GUI.contentColor = Color.black;
{
    // draw Box with default style
    GUI.Box (new Rect(Screen.width/4,Screen.height/6,Screen.width/2,Screen.height/8), mTargetMetadata);
}
// reset GUI colors to former stored values
GUI.color = color;
GUI.contentColor = contentColor;

или это уже должно исправить это, или вы можете попробовать сделать то же самое, но используя GUI.backgroundColor вместо GUI.color.И просто, чтобы завершить список: Цвет текста, который вы можете изменить, делая то же самое с GUI.contentColor.


Однако в целом ... Я бы сказал, Vuforia дал вамочень плохой вариант там.Использование GUI было на самом деле путь назад до Unity 4.5.(более или менее 2015).

Он все еще используется, но фактически всего для Создание пользовательских инспекторов и других сценариев редактора.

В настоящее время, как уже упоминалось в комментариях, вам лучше использовать «Новую» систему пользовательского интерфейса , представленную в Unity 4.6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...