控制手柄-BoxBoundsHandle
public class TestWindow : EditorWindow { [MenuItem("Window/TestWindow")] static void ShowWindow() { var window = GetWindow<TestWindow>(); window.titleContent = new GUIContent("TestWindow"); window.Show(); } private BoxBoundsHandle _handle; private void OnEnable() { if (null == _handle) { _handle = new BoxBoundsHandle(); _handle.size = new Vector3(5, 5, 5); _handle.center = new Vector3(6, 0, 0); _handle.handleColor = Color.red; _handle.wireframeColor = Color.blue; _handle.midpointHandleSizeFunction = (pos) => { return 0.2f; }; //_handle.axes = PrimitiveBoundsHandle.Axes.X | PrimitiveBoundsHandle.Axes.Z; } SceneView.duringSceneGui += OnSceneGUI; } private void OnDisable() { SceneView.duringSceneGui -= OnSceneGUI; } void OnSceneGUI(SceneView view) { _handle.DrawHandle(); } }
【关于midpointHandleSizeFunction】
# 就是那个6个面上的红色控制点的大小
# 默认是会根据参数position和相机的距离,调整控制点的大小
(#) 相机拉很远时
(#) 相机拉很近时
# 如果我们像上面的代码那样返回一个固定大小0.2
(#) 相机拉很远,控制点会变很小
(#) 相机拉很近时,控制点会变大
【关于BoxBoundsHandle.axes】
# x,y,z的控制手柄都显示(默认)
# 只显示x, z轴的控制手柄
_handle.axes = PrimitiveBoundsHandle.Axes.X | PrimitiveBoundsHandle.Axes.Z;
# 只显示x轴的控制手柄
_handle.axes = PrimitiveBoundsHandle.Axes.X;
【关于BoxBoundsHandle中文怎么翻译】
# 盒子外框手柄?
# 盒子边框手柄?
挺难翻译的,仅作参考
【参考】
IMGUI.Controls.BoxBoundsHandle - Unity 脚本 API