Unity Scene場景自定義座標軸
阿新 • • 發佈:2019-02-11
多看看別人的程式碼是沒有壞處的,即使學不了人家的大框架,偶爾拾起一些小東西也是可以的。
最近扒了一下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); } } }
給開始和結束點添加了一個label, 每個節點添加了一個座標軸和一個序號。其中藍色的線使用Gizmos畫的,可自行度娘。