在选择时突出显示时,如何在场景中始终显示句柄?

Ban*_*ane 13 unity-game-engine unity3d-editor

我想让编辑器中的所有句柄显示,即使未选择给定的游戏对象,这样当鼠标点悬停在给定的句柄上时,它变得可选.我怎样才能做到这一点?

小智 1

看到这里,如何制作自定义手柄?

这里推荐JetBrains DotPeek

要理解的最重要的事情是 (A) 使用 HandleUtility.nearestControl 和 HandleUtility.hotControl 来管理输入焦点,并通过 GUIUtility.GetControlID() 生成 ID 和 (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;
   }
}
Run Code Online (Sandbox Code Playgroud)