У меня проблема с печатью элементов GUI для цикла pf OnGUI(). В коде перечисленных ниже я создать GUI.Label пользователя нажал на GUI.Box:GUI.Label не работает в цикле
public List<string> messages = new List<string>();
int dialogueMsg = 0;
void OnGUI()
{
Event currentEvent = Event.current;
if (enabled)
{
GUI.BeginGroup(new Rect(Screen.width/8, Screen.height/4 + Screen.height/2, Screen.width - Screen.width/4, Screen.height/4));
GUI.Box(new Rect(0, 0, Screen.width - Screen.width/4, Screen.height/4), "");
if (currentEvent.button == 0 && currentEvent.type == EventType.mouseDown)
{
for (int i = 0; i < messages.Count; i ++)
{
if (dialogueMsg < messages.Count)
{
print(dialogueMsg);
print(messages[dialogueMsg]);
GUI.Label(new Rect(25, 25, Screen.width - Screen.width/4, Screen.height/4), messages[dialogueMsg]);
++dialogueMsg;
break;
}
else
{
enabled = !enabled;
break;
}
}
}
GUI.EndGroup();
}
}
И когда пользователь нажал - ничего не случилось, за исключением печати правильные значения dialogueMsg и сообщения [dialogueMsg]. Что я делаю не так? Кто-нибудь знаком с этой проблемой?
Когда ваш оператор if, внутри цикла for, вы хотите, чтобы он вышел из цикла for при первом запуске? в операторе if и else у вас есть ключевое слово break, которое выведет вас из цикла for независимо от того, превышено ли счет (i
CalebB
О, я понимаю. Мне нужно было просто установить новую переменную String, которая хранит сообщения [dialogMsg] значение и стоит GUI.Label вне for-loop. Thx для ответа! – Supo
@CalebB Может захотеть опубликовать его в качестве ответа, чтобы OP мог его принять –