搜索
您的当前位置:首页正文

Unity编辑器拓展

来源:榕意旅游网

一、脚本标签

1.常用的脚本标签:调整脚本组件的数据编辑以及编辑器上的一些功能菜单的拓展

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.Serialization;

[RequireComponent(typeof(AudioSource))] //给类添加。在给物体添加该标签标记的脚本类后,如果物体没有typeof中的组件则会自动给物体添加
[AddComponentMenu("Test/ComponentTest")] //给类添加。会出现在Component菜单中,点击后可以为物体添加对应的脚本类
[HelpURL("https://www.baidu.com")]//给类添加。将标记的脚本组件的右上角的小问号链接到给定的URL(那个小问号本身是链接到官方脚本文档的,相当于这里的标签修改了它的链接地址)
[DisallowMultipleComponent]//给类添加。标记的脚本只能对同一个物体添加一个该标记脚本,而不能添加多个该脚本
[ExecuteInEditMode]//给类添加。使脚本在编辑模式下也能执行生命周期函数,如Start、Update等。但是使用起来效果并不好。
public class Test : MonoBehaviour
{
    private void Start()
    {
        Debug.Log("Start");
    }
    [HideInInspector]//隐藏公有变量在Inspector面板上显示
    public int num;
    [NonSerialized]//序列化属性,并可以隐藏公有属性
    public int Nonnum;
    [SerializeField]//使非公有属性序列化,并显示在面板上
    private string playerName;
    public Student stu;
    [Header("文章标题")]//给变量加个标题
    public string title;
    [Space(30)]//设置上边距
    public int edgeDistance;
    [Tooltip("鼠标悬停在属性名上")]//鼠标悬停在属性名上显示的信息
    public int hover;
    [Range(0, 10)]//限制int、float、double类型变量的大小范围
    public int hitDamage;
    [Multiline(3)]//给string类型变量设置行数
    public string text;
    [TextArea]//给string类型变量设置成文本区域的形式显示
    public string area;
    [ColorUsage(true)]//调用颜色复选框,其中的true表示显示透明度设置
    //注:如果要调节3D物体的透明度,需要将3D物体的材质的渲染模式改为Fade
    public Color color;
    [FormerlySerializedAs("obj")]//防止GameObject类型变量在拖拽赋值后,因改变了变量名而使引用丢失的情况,里面的参数是最初拖拽赋值时的变量名
    public GameObject obj;
    [MenuItem("菜单/菜单项 &%Q", priority =1)]//给unity菜单栏加功能菜单,该标签下可以加静态方法,表示功能按钮调用的方法,&%Q表示快捷键,%:Ctrl #:Shift &:Alt。存在多个菜单项时priority可以控制菜单项的显示优先级
    static void ShowMenuItem()
    {
        Debug.Log("MenuItem");
    }
    [MenuItem("CONTEXT/Test/buttonl")]//Test表示脚本名,button1表示功能按钮名。在对应的脚本组件右上角的三个小点或齿轮的那里,点击button1,就会调用下面的静态方法
    static void ShowInpectorInfo()
    {
        Debug.Log("InpectorInfo");
    }
    [ContextMenuItem("Test", "MyTest")]//给属性添加右键菜单功能按钮,Test表示右键菜单的功能按钮名,MyTest表示该功能对应得触发方法
    public string printMyTest;
    void MyTest()
    {
        Debug.Log("MyTest");
    }
}
[System.Serializable]//使序列化的类中的公有变量可以在Inspector上显示
public class Student
{
    public int id;
    public string name;
    private int age;
}

2.CreateAssetMenu标签:在Project的Create菜单中可以看到该标签表现得功能

(1)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top