Как я могу держать ручки всегда видимыми в сцене, выделяя при выборе?

Я хотел бы, чтобы все ручки в моем редакторе отображались даже тогда, когда данный игровой объект не был выбран, таким образом, что когда точка мыши наводится на определенный дескриптор, он становится выбираемым. Как я могу это сделать?

Ответ 1

См. здесь, как сделать пользовательские дескрипторы?

Рекомендуется JetBrains DotPeek.

Наиболее важными для понимания являются (A) использование HandleUtility.nearestControl и HandleUtility.hotControl для управления фокусом ввода, с идентификаторами, сгенерированными GUIUtility.GetControlID() и (B), как OnSceneGUI вызывается несколько раз для разных события, требующие очень различной обработки.

Используйте его как:

void OnSceneGui()
{
   MyHandles.DragHandleResult dhResult;
   Vector3 newPosition = MyHandles.DragHandle(position, size, Handles.SphereCap, Color.red, out dhResult);

   switch (dhResult)
   {
   case MyHandles.DragHandleResult.LMBDoubleClick:
       // do something
       break;
   }
}