Итак, я работаю над окном Custom Editor и пытаюсь получить, когда пользователь нажал левую кнопку мыши. Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я нажимаю элемент GUI, который я разместил, в этом случае элемент EditorGUI.Foldout, Event.current не обновляется. Поэтому, когда я пытаюсь проверить, щелкнет ли пользователь левой кнопкой мыши, он ничего не делает, когда это должно быть. Но если я не щелкаю в этой области, он ее обнаруживает!Unity - Event.current в редакторе Окно не обновляется
Итак, мой вопрос к вам, что именно я делаю неправильно здесь? Я собираю Event.current в самой первой строке void OnGUI() и нет где-то еще. Я добавлю некоторые фрагменты кода, которые, надеюсь, помогут найти решение!
Где я называю Event.Current:
void OnGUI()
{
Event currentEvent = Event.current;
...
}
Когда я пытаюсь получить доступ к Event.Current:
void OnGUI()
{
...
Rect baseLabelRect = new Rect();
baseLabelRect.x = 0;
baseLabelRect.y = 21;
baseLabelRect.width = this.position.width;
baseLabelRect.height = 16;
if (selected)
EditorGUI.DrawRect(baseLabelRect, selectedItemColor);
EditorGUI.indentLevel = 1;
GUI.contentColor = Color.black;
GUI.backgroundColor = Color.grey;
itemListFoldout[0] = EditorGUI.Foldout(baseLabelRect, itemListFoldout[0], "Fouldout test");
GUI.contentColor = origContentColor;
GUI.backgroundColor = origBackgroundColor;
if (currentEvent.button == 0 && currentEvent.isMouse)
{
Debug.Log("left mouse button clicked");
if (baseLabelRect.Contains(currentEvent.mousePosition))
{
selected = true;
Debug.Log("rect clicked");
}
else
selected = false;
}
}
Это где я в настоящее время возникли проблемы. Всякий раз, когда я нажимаю на область, где находится EditorGUI.Foldout, она должна быть обнаружена и настроена для выбора. Но он не обновляет Event.current, когда я нажимаю в области Foldout. Но он будет обновляться, если я щелкнул в другом месте в окне редактора.
Если у вас есть идеи, почему это произойдет, я хотел бы услышать ваши идеи! Любая помощь будет оценена!