在Unity中的Inspector窗口编辑变量(笔记)

目录

前言

修饰符对显示的影响

显示私有和被保护对象

隐藏公共对象

不同类型在Inspector中的显示

不用特性就可以显示的类型

显示自定义的类型

无法被显示的类型

锦上添花的辅助特性

Header

Tooltip

Space()

Range

Multiline

TestArea

ContextMenuItem

ContextMenu

总结


前言

        本篇笔记用于记录唐老狮视频课程的学习心得。

        Inspector窗口在Unity工作中占据了一个非常重要的地位,这篇笔记主要用来记录这个窗口与变量相关的内容与知识。

        除了Unity软件本身运用的c#的反射原理,我们要在Inspector窗口中查看与编辑变量还运用到了c#中关于特性的知识。

        在Inspector窗口中修改的意义,我认为主要是更加方便的修改和保存变量,利于我们调试项目。

修饰符对显示的影响

        首先,在正常情况下,我们不使用任何特性,那么只有修饰符是public的成员变量可以被显示,用private和protected修饰的变量都不能被显示。如果你使用任何修饰符,那么默认会使用private修饰,所以也不能被显示。

public class Study : MonoBehaviour
{
    int commonInt = 1;
    public int publicInt = 2;
    private int privateInt = 3;
    protected int protectedInt = 4;
}

        上面我创建了一个Study的脚本,代码是里面的主要内容,并且挂载到了一个GameObject上,下图是在Untiy里面的显示效果。

        可以很清楚的看到,只有publicInt,也就是加了public修饰符的成员变量被显示了。

显示私有和被保护对象

        对于使用了private和protected修饰符的成员变量,我们还可以使用特性[serializeField]来让它们在Inspector中显示出来。

public class Study : MonoBehaviour
{
    [SerializeField]
    int commonInt = 1;
    public int publicInt = 2;
    [SerializeField]
    private int privateInt = 3;
    [SerializeField]
    protected int protectedInt = 4;
}

        我们在变量前面加上这个特性就可以让它们显示出来啦,如下图所示。

隐藏公共对象

        不想让公共对象被显示出来,我们可以使用特性[HideInInspector]来隐藏我们的公共对象。

public class Study : MonoBehaviour
{
    [SerializeField]
    int commonInt = 1;
    [HideInInspector]
    public int publicInt = 2;
    [SerializeField]
    private int privateInt = 3;
    [SerializeField]
    protected int protectedInt = 4;
}

        在public前面加上了这个特性,效果如下图所示。