Editor

xiaoxiao2021-02-28  71

using UnityEditor; public class Edit_Tools { /*开始之路,1.有project中建立Editor文件,建立脚本 2.导入using UnityEditor; 3. 要使用到MenuItem这个类,引号里面的就菜单的目录 */ //把按钮添加到菜单栏[新的一个] [MenuItem("EditTools/ShowTest")] static void ShowTest() { Debug.LogError("show"); } [MenuItem("EditTools/ShowTestNew",false,15)] static void ShowTestNew() { Debug.LogWarning("MenuItem 最后一个参数是 显示的优先集,相差11 之后就会出一条线"); } //把按钮添加到菜单栏[系统内部] [MenuItem("Window/ShowWindowTool")] static void WindowTools() { Debug.LogWarning("系统内置那一栏的"); } [MenuItem("Assets/assetbuttonShow")] static void ShowAssetsButton() { Debug.LogWarning("Assest 内置那一栏的,在Project中右击可以出现"); } [MenuItem("GameObject/ShowMyGO",false,10)] static void ShowGameObjectButton() { Debug.LogWarning("GameObject 内置那一栏的,在Hierarch视图中右击可以出现,第三个参数在10左右才能出现"); } }

//------------------------------------------------ [MenuItem("CONTEXT/PlayerHealth/ModifyHealth")] static void ScriptAddComponent() { Debug.LogError("在属性面板针对某一脚本右键显示出ModifyHealth,进行操作"); }

//自己写的脚本,很多地方用到,很多值,一个个输入,麻烦,直接用Editor操作 [MenuItem("CONTEXT/PlayerHealth/ModifyHealthValue")] static void ScriptComponentHealth(MenuCommand cmd)//cmd当前操作的组件 { Debug.LogError("修改值啦,类型="+cmd.context.GetType().FullName);//得到名字,有些有命名空间的 CompleteProject.PlayerHealth helath = (CompleteProject.PlayerHealth)cmd.context; helath.startingHealth = 10;//修改健康值 helath.flashSpeed = 10; } [MenuItem("CONTEXT/Rigidbody/ClearMass")]//清除重力 static void CleartMassAndGravity(MenuCommand cmd) { Rigidbody rb = cmd.context as Rigidbody; rb.mass = 0; rb.useGravity = false; Debug.LogError("清除组件的重力"); }
转载请注明原文地址: https://www.6miu.com/read-49396.html

最新回复(0)