Ситуация:
1. Имеем загруженный из .xml уровень, состоящий из объектов
2. Для редактирования уровня необходимо ловить нажатие ключевых клавиш при выбранном объекте в SceneView
3. По нажатию на клавишу производить описанные в коде манипуляции с объектом.
Попробовал так:
Синтаксис:
Используется csharp
class DummyObj: MonoBehaviour
{
}
public class TestKeyCodePressInSceneView : Editor {
[CustomEditor(typeof(DummyObj)]
void OnSceneGUI()
{
if (Input.GetKey(KeyCode.Keypad8) && Input.GetKeyDown(KeyCode.Return))
{
Debug.Log("@@@@@@@@@@");
}
Event e = Event.current;
switch (e.type)
{
case EventType.keyDown:
{
if (Event.current.keyCode == (KeyCode.Return))
{
Debug.Log("##############");
}
break;
}
}
}
}
Создаю в сцене DummyObj, пока он поселекчен - все работает, как только селект отваливается, инпут тоже не ловится, что в принципе очевидно.
Внимание вопрос - как ловить нажатие клавиши без вот этих вот танцев с бубнами, тем более что для моей задачи такое решение не подходит совсем. Мне надо двигать поселекченный объект по нажатию клавиши, а я не могу его поселектить, так как должен быть селект DummyObj, чтобы все работало.
P.S.
Один мой достаточно авторитетный товарищ ответил, что никак, но может все таки есть способ а?