控制手柄-SphereBoundsHandle


# 和SphereBoundsHandle的主要区别是radius和size参数,其他基本一致

using UnityEditor;
using UnityEditor.IMGUI.Controls;
using UnityEngine;

public class TestWindow : EditorWindow
{

    [MenuItem("Window/TestWindow")]
    static void ShowWindow()
    {
        var window = GetWindow();
        window.titleContent = new GUIContent("TestWindow");
        window.Show();
    }

    private SphereBoundsHandle _handle;

    private void OnEnable()
    {
        if (null == _handle)
        {
            _handle = new SphereBoundsHandle();
            _handle.radius = 3;
            _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();
    }

}

相关