我想让编辑器中的所有控制柄即使在未选择给定游戏对象时也能显示,这样当鼠标指针悬停在某个控制柄上时它就可以被选中。我该如何做到这一点?
请看这里,如何制作自定义手柄?
推荐使用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;
}
}