如何在选择时突出显示对象并始终保持句柄可见?

12
我想让编辑器中的所有控制柄即使在未选择给定游戏对象时也能显示,这样当鼠标指针悬停在某个控制柄上时它就可以被选中。我该如何做到这一点?

GameObject SelectedObject = Selection.activeTransform.gameObject; 可以用来获取当前的gameObject。在此之后,您可以在其位置实例化一个立方体(或任何物体)。这将让您始终看到gameobject的位置。此外,您还可以检查鼠标是否悬停在实例化的对象上,并使其可选择。 - Rishi
1个回答

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;
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接