版本:Unity 6 (6000.0)
语言:英语
命名脚本
基本 Unity 类型

检查脚本

当您在 项目窗口显示您的 Assets 文件夹内容的窗口(项目选项卡)更多信息
参见 词汇表
中选择脚本资源时,检查器一个 Unity 窗口,显示当前选定游戏对象的有关信息、资源或项目设置,允许您检查和编辑值。 更多信息
参见 词汇表
将显示有关该脚本的一些基本信息,包括其所属的 程序集 的名称,以及内容的预览。

注意:虽然检查器显示脚本的内容,但您无法在检查器窗口中编辑内容。

The script Inspector displaying an example script.
脚本检查器显示示例脚本。

脚本检查器还显示两个按钮,打开执行顺序

打开的功能与在项目窗口中双击脚本相同,在当前配置的外部脚本编辑器中打开脚本。您可以在 首选项窗口的外部工具部分 中配置 Unity 用于打开您的 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性,并以您喜欢的任何方式响应用户输入。 更多信息
参见 词汇表
的外部编辑器。

执行顺序按钮将打开 项目设置窗口的脚本执行顺序部分,您可以在其中配置 Unity 执行脚本的顺序。

检查器窗口中的脚本组件

任何 MonoBehaviour 脚本都可以用作 组件游戏对象的功能部分。一个游戏对象可以包含任意数量的组件。Unity 具有许多内置组件,您可以通过编写从 MonoBehaviour 继承的脚本创建自己的组件。 更多信息
参见 词汇表
,这意味着

  • 您可以将脚本附加到 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、航路点等。游戏对象的功能由附加到它的组件定义。 更多信息
    参见 词汇表
  • 您可以在 检查器窗口 中编辑脚本的属性和值

下面的示例代码声明了一个名为 myName 的公共字段。当您将此脚本添加到 场景一个场景包含您的游戏环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置您的环境、障碍物和装饰,从本质上讲是设计和构建您的游戏。 更多信息
参见 词汇表
中的游戏对象时,该字段将在检查器窗口中显示为一个名为我的名字的字段。在脚本中声明的 none 的默认值将成为检查器窗口中的默认值,然后您可以通过在字段中键入来更改它。

using UnityEngine;
using System.Collections;

public class MainPlayer : MonoBehaviour 
{
    public string myName = "none";
    
    // Use this for initialization
    void Start () 
    {
        Debug.Log("I am alive and my name is " + myName);
    }
}

您附加脚本组件的每个游戏对象都可以具有该字段的唯一值。

A public string field editable in the Inspector window.
在检查器窗口中可编辑的公共字符串字段。

字段名称根据 字段名称到标签转换 中描述的规则转换为检查器窗口标签。但是,这些更改纯粹是为了显示目的。您应该始终在代码中使用字段名称。

检查器窗口中,如果您编辑我的名字值并按下播放,控制台消息现在应该包含您输入的文本。

公共字段和私有字段

默认情况下,所有 public 字段都可以在检查器窗口中编辑。要阻止公共变量显示在检查器窗口中,请向其添加 HideInInspector 属性。要使 private 字段在检查器窗口中可编辑,请向其添加 SerializeField 属性。

注意:您可以在 播放模式 下运行时更改脚本字段的值。这使您无需停止和重新启动即可直接查看更改的效果。但是,当您退出播放模式时,字段的值将重置为进入播放模式之前的任何值。

对象引用字段

除了诸如 boolstringint 之类的简单 内置 C# 类型 之外,您还可以使任何类型继承自 UnityEngine.Object 的字段在检查器窗口中可编辑。这包括所有内置组件类型(例如 TransformAudioSourceCamera一个组件,它在您的场景中创建特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
参见 词汇表
Light),您自己的 MonoBehaviour 脚本类型,以及许多资源类型。

这使您能够在您自己的脚本组件中使用 Unity 编辑器的拖放系统。例如,如果您在脚本中创建一个公共 Transform 字段并将其添加到一个游戏对象,然后您可以在检查器窗口中将另一个游戏对象拖放到该字段中,以设置对该游戏对象的 Transform 组件Transform 组件确定场景中每个对象的 位置、旋转和缩放比例。每个游戏对象都具有 Transform。 更多信息
参见 词汇表
的引用,然后您可以在运行时在脚本中访问该引用。

例如,此 Follow 脚本使一个游戏对象跟随另一个游戏对象

using UnityEngine;

public class Follow : MonoBehaviour
{
    public Transform objectToFollow;
    public float followSpeed = 1;

    void Update()
    {
        // calculate the distance between this object and the target object
        // and move a small portion of that distance each frame:

        var delta = objectToFollow.position - transform.position;
        transform.position += delta * Time.deltaTime * followSpeed;
    }
}

该脚本具有一个类型为 Transform 的公共字段,它在编辑器中显示为可分配字段。您可以从层次结构窗口中拖放不同的游戏对象到此字段,编辑器将分配对附加到该拖放游戏对象的 Transform 组件的引用。

在下面的屏幕截图中,该脚本被放置在 Sphere 游戏对象上,并且 Cube 已从层次结构中拖放到要跟随的对象字段中。

A public Transform field with a GameObject assigned. Here the script is on the Sphere (currently selected), and the Cube was dragged and dropped from the Hierarchy into the Spheres Object To Follow field
一个带有分配的游戏对象的公共 Transform 字段。在这里,脚本位于 Sphere(当前选中)上,Cube 已从层次结构中拖放到 Sphere 的要跟随的对象字段中

默认对象引用

如果您在 MonoBehaviour 脚本中定义了可以 在编辑器中分配 的公共 Object 字段,您可以为这些字段设置默认引用。当您在项目窗口中选择脚本资源时,默认引用字段将在检查器中可见。

A MonoBehaviour script with three AudioClip fields. The default references for these fields are shown unset.
具有三个 AudioClip 字段的 MonoBehaviour 脚本。这些字段的默认引用显示为未设置。

在上面的示例中,有三个公共 音频剪辑Unity 中音频数据的容器。Unity 支持单声道、立体声和多声道音频资源(最多 8 个声道)。Unity 可以导入 .aif、.wav、.mp3 和 .ogg 音频文件格式,以及 .xm、.mod、.it 和 .s3m 跟踪模块格式。 更多信息
参见 词汇表
字段,没有分配默认引用。您可以将音频剪辑分配到每个 AudioClip 默认引用字段。

如果您分配默认引用,它们会在您将 MonoBehaviour 作为组件添加到游戏对象时或将游戏对象上 MonoBehaviour 的现有实例重置为其默认值时应用。

注意:游戏对象上的 MonoBehaviour 实例上的引用与默认引用之间没有持续的链接。这意味着如果您更改默认引用,它们不会自动更新到现有游戏对象上。

其他类型 在检查器中可编辑的字段 不继承自 UnityEngine.Object(例如,公共字符串或 int 字段)在检查器中没有默认字段。相反,它们从脚本本身获取其默认值。

字段名称到标签转换

Unity 根据一组规则将 C# 字段名称转换为检查器窗口中的标签。例如,上面示例中的变量名称已从 myName 转换为我的名字,从 objectToFollow 转换为要跟随的对象。规则如下

  • 将第一个字母大写
  • 在小写字母和大写字母之间添加空格
  • 在缩写词和下一个单词开头的第一个大写字母之间添加空格
  • 删除任何 m_ 前缀
  • 删除任何 k 前缀
  • 删除任何 _ 前缀

有些特殊情况,例如 iPadx64,不应用这些规则。

其他资源

命名脚本
基本 Unity 类型