Unity编辑器扩展笔记
你提供的代码示例展示了如何在Unity中创建各种自定义工具和窗口。以下是对每个部分的简要解释:
1. 自定义选择工具
- 代码示例:
[MenuItem("Tool/CreateSelfDialog")] public static void Create() { ScriptableWizard.DisplayWizard<SelfDialog>("helloword", "Change And Close", "Change"); } - 解释:这个方法创建了一个自定义的对话框,用户可以输入值并保存。
2. 自定义进度条
- 代码示例:
using UnityEngine; using System.Collections; using UnityEditor; public class SelfProgressBar : MonoBehaviour { float timer = 0; int count = 0; void Start() { EditorUtility.DisplayProgressBar("进度", "0/10 完成修改值", 0); } void Update() { timer += Time.deltaTime; if (timer >= 1.0f) { timer = 0.0f; count++; EditorUtility.DisplayProgressBar("进度", count + "/10 完成修改值", (float)count / 10); } if (count >= 10) { EditorUtility.ClearProgressBar(); } } } - 解释:这个脚本模拟了一个简单的进度条,每秒增加一个单位的进度。
3. 自定义窗口
- 代码示例:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class MyWindow : EditorWindow { [MenuItem("Window/show mywindow")] static void ShowMyWindow() { MyWindow window = EditorWindow.GetWindow<MyWindow>(); window.Show(); } private string name = ""; void OnGUI() { GUILayout.Label("这是我的窗口"); name = GUILayout.TextField(name); if (GUILayout.Button("创建")) { GameObject go = new GameObject(name); Undo.RegisterCreatedObjectUndo(go, "create gameobject"); } } } - 解释:这个脚本创建了一个自定义的编辑器窗口,用户可以在其中输入名称并创建一个新的GameObject。
总结
这些代码示例展示了如何在Unity中创建自定义工具和窗口,包括对话框、进度条和自定义编辑器窗口。你可以根据需要进一步扩展和修改这些示例。