Unity Scene場景自定義座標軸

多看看別人的代碼是沒有壞處的,即便學不了人家的大框架,偶爾拾起一些小東西也是能夠的。node

最近扒了一下DoTween(聲明一下源碼是本身反編譯的,只爲學習),看見了如何在Scene場景中添加標註和座標軸,具體作法是,在你的腳本Editor中,好比你重定義某個mono腳本的Inspector顯示中,加入OnSceneGUI函數,使用Handles進行操做。框架

 

void OnSceneGUI()
    {
        if (_target.nodes.Count > 0)
        {
            //allow path adjustment undo:
            Undo.RecordObject(_target, "Adjust Path");

            //path begin and end labels:
            Handles.Label(_target.nodes[0], "'" + _target.name + "' Begin");
            Handles.Label(_target.nodes[_target.nodes.Count - 1], "'" + _target.name + "' End");

            //node handle display:
            for (int i = 0; i < _target.nodes.Count; i++)
            {
                _target.nodes[i] = Handles.PositionHandle(_target.nodes[i], Quaternion.identity);
                if (i != 0 || i != _target.nodes.Count - 1)
                    Handles.Label(_target.nodes[i], i.ToString());
            }
            if (GUI.changed)
            {
                EditorUtility.SetDirty(_target);
            }
        }
        
    }

代碼很簡單,只是記錄方法而已,具體的效果:ide

 


給開始和結束點添加了一個label, 每一個節點添加了一個座標軸和一個序號。其中藍色的線使用Gizmos畫的,可自行度娘。函數

相關文章
相關標籤/搜索