Unity3d 如何在选中时使控制柄在场景中始终可见,同时高亮显示?

Unity3d 如何在选中时使控制柄在场景中始终可见,同时高亮显示?,unity3d,unity3d-editor,Unity3d,Unity3d Editor,我想让我的编辑器中的所有控制柄都显示出来,即使给定的游戏对象没有被选中,这样当鼠标点悬停在给定的控制柄上时,它就成为可选择的。我该怎么做 请参见,如何创建自定义句柄? 这是推荐的 需要了解的最重要的事情是:(A)使用HandleUtility.nearestControl和HandleUtility.hotControl来管理输入焦点,ID由GUIUtility.GetControlID()生成;(B)对于需要非常不同处理的不同事件多次调用SceneGUI的方式 像这样使用它: GameObje

我想让我的编辑器中的所有控制柄都显示出来,即使给定的游戏对象没有被选中,这样当鼠标点悬停在给定的控制柄上时,它就成为可选择的。我该怎么做

请参见,如何创建自定义句柄? 这是推荐的

需要了解的最重要的事情是:(A)使用HandleUtility.nearestControl和HandleUtility.hotControl来管理输入焦点,ID由GUIUtility.GetControlID()生成;(B)对于需要非常不同处理的不同事件多次调用SceneGUI的方式

像这样使用它:


GameObject SelectedObject=Selection.activeTransform.GameObject你可以使用它来获取当前游戏对象。在此之后,您可以在其位置实例化多维数据集(或任何内容)。这将让你随时看到游戏对象的位置。此外,您还可以检查鼠标是否位于实例化对象上,并使其可选择。
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;
   }
}