数据共享网站建设,代做网站关键词,百度关键词优化首选667seo,西安seo王1.添加分组标题
用于在Unity的Inspector视图中为属性或变量组创建一个自定义的标题或头部#xff0c;有助于在Inspector中组织和分类不同的属性#xff0c;使其更易于阅读和管理。 [Header(Common Properties)]
public float MouseSensitivity 5;
public float…1.添加分组标题
用于在Unity的Inspector视图中为属性或变量组创建一个自定义的标题或头部有助于在Inspector中组织和分类不同的属性使其更易于阅读和管理。 [Header(Common Properties)]
public float MouseSensitivity 5;
public float SmothTime 0.1f;void Start()
{//Header应用于属性和字段上
} 2.Assets创建功能添加菜单
用于在Unity的Project视图的右键菜单中创建一个新的自定义资源Asset。这个属性通常用于脚本这些脚本定义了可以在Unity项目中被实例化为Asset的自定义数据类型。
[CreateAssetMenu(menuName MyCustomMenu/CustomData)]
public class MyCustomData : ScriptableObject
{//CreateAssetMenu主要应用于类上
} 3.工具栏添加菜单
用于在Unity编辑器的菜单栏中创建自定义菜单项。这个属性是UnityEditor命名空间中的一部分并且它要求与之关联的方法必须是静态的。
[MenuItem(CustomMenu/CustomFunc)]
public static void MenuCommand()
{//MenuItem应用于静态方法static上
} 4.添加组件菜单
用于自定义Unity编辑器中“Component”菜单下的显示选项当你尝试向场景中的GameObject添加组件时。这个特性通常与继承自 MonoBehaviour的类一起使用以便在Inspector窗口中提供自定义的添加方式。
[AddComponentMenu(MyCustomMenu/CustomComponent)]
public class MyCustomData : MonoBehaviour
{//与继承自MonoBehaviour的类一起使用
} 5.添加字段右键菜单
用于在对象的上下文菜单中添加一个自定义菜单项。当用户在Unity编辑器中选择一个具有这个特性附加的组件或资源并右键点击时该菜单项就会出现。
[ContextMenuItem(CustomOption, FuncA)]
public int customValue;public void FuncA()
{//第一个参数为选项名称第二个参数为被调用的函数的名称
} 6. 组件自定义编辑器
用于指定一个自定义的编辑器类来编辑某个特定的Unity组件通常是继承自MonoBehaviour的类。
using System.Collections;
using UnityEngine;
using UnityEditor;// 这是你要为其创建自定义编辑器的组件
[AddComponentMenu(MyComponent)]
public class MyComponent : MonoBehaviour
{public int someValue 0;public bool isBool;// ... 其他组件字段 ...
}// 自定义编辑器类用于编辑MyComponent
[CustomEditor(typeof(MyComponent))]
public class MyComponentEditor : Editor
{// 获取当前被编辑的MyComponent实例 private MyComponent myTarget;// 当编辑器被创建时调用 void OnEnable(){// 获取当前编辑的对象 myTarget (MyComponent)target;}// 在Inspector窗口中绘制自定义UI public override void OnInspectorGUI(){// 绘制默认的组件字段 DrawDefaultInspector();// 添加自定义的编辑器GUI GUILayout.Space(10); // 添加一些间距 EditorGUILayout.LabelField(自定义编辑器扩展, EditorStyles.boldLabel);// 添加一个字段的自定义编辑器 myTarget.someValue EditorGUILayout.IntField(自定义值, myTarget.someValue);// 确保更改被应用 if (GUI.changed){EditorUtility.SetDirty(myTarget); // 标记目标为已更改 }}
}