在项目 (Project) 窗口中选择脚本资源时,检视面板 (Inspector) 会显示有关该脚本资源的一些基本信息,包括其所属的程序集的名称以及内容预览。
注意:虽然检视面板显示脚本的内容,但无法在检视面板窗口中直接编辑脚本内容。
脚本检视面板还显示两个按钮:打开 (Open) 和执行顺序 (Execution Order)。
打开 (Open) 按钮的功能与在项目窗口中双击脚本相同,会在当前配置的外部脚本编辑器中打开脚本。您可以在偏好设置 (Preferences) 窗口的外部工具 (External Tools) 部分中配置 Unity 使用哪个外部编辑器打开脚本。
执行顺序按钮将打开项目设置 (Project Settings) 窗口的脚本执行顺序 (Script Execution Order) 部分,您可以在其中配置 Unity 执行脚本的顺序。
任何 MonoBehaviour 脚本都可以用作组件,这意味着:
以下示例代码声明了一个名为 myName 的公共字段。将此脚本添加到场景中的游戏对象时,该字段将在检视面板窗口中显示为标记为 My Name 的字段。脚本中声明的默认 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);
}
}
每个附加了脚本组件的游戏对象都可以拥有自己独特的字段值。
字段名称会根据字段名称到标签转换中所描述的规则转换为检视面板窗口标签。但是,这些更改纯粹用于显示目的。您在代码中应始终使用字段名称。
在检视面板窗口中,如果编辑 My Name 的值并点击播放 (Play),控制台消息将包含您输入的文本。
默认情况下,所有 public 字段均可在检视面板窗口中编辑。如果您不希望公共变量在检视面板中显示,可以为其添加 HideInInspector 属性。如果您希望 private 字段在检视面板窗口中可编辑,可以为其添加 SerializeField 属性。
注意:在播放模式下,您可以在编辑器中更改脚本字段的值。这样可以直接查看更改的效果,而无需停止和重新启动。但退出播放模式时,字段值将恢复为进入播放模式之前的值。
除了简单的内置 C# 类型(例如 bool、string 和 int)之外,任何继承自 UnityEngine.Object 的任何字段的字段类型都可以在检视面板中编辑。这包括所有内置组件类型(例如 Transform、AudioSource、Camera、Light)、您自己的 MonoBehaviour 脚本类型以及许多资源类型。
这使得您可以在脚本组件中使用 Unity 编辑器的拖放功能。例如,如果在脚本中创建一个公共 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 类型的公共字段,该字段在编辑器中显示为可分配字段。您可以将不同的游戏对象从层级视图 (Hierarchy) 窗口中将另一个游戏对象拖入该字段,编辑器会自动为该字段分配目标游戏对象的变换组件引用。
在下面的截屏中,脚本放置在球体游戏对象上,并且已将立方体从层级视图拖放到 Object To Follow 字段中。
如果在 MonoBehaviour 脚本中定义了可在编辑器中分配的公共 Object 字段,您可以为这些字段设置默认引用。在项目窗口中选择脚本资源时,检视面板中会显示这些默认引用字段。
在上面的示例中,有三个公共音频剪辑字段,未分配默认引用。您可以为每个 AudioClip 字段分配默认音频剪辑。
如果设置了默认引用,那么在将 MonoBehaviour 作为组件添加到游戏对象时,或者将游戏对象上的 MonoBehaviour 实例重置为其默认值时,这些默认引用将被应用。
注意:游戏对象上的 MonoBehaviour 实例的引用与默认引用之间没有持续的关联。这意味着,如果您更改了默认引用,现有游戏对象上的引用不会自动更新。
此外,不继承自 UnityEngine.Object 的其他类型的检视面板可编辑字段(例如,公共字符串或 int 字段)在检视面板中没有默认字段。相反,它们直接从脚本中获取默认值。
Unity 据以下规则在检视面板窗口中将 C# 字段名称转换为标签。例如,以上示例中的变量名称已从 myName 转换为 My Name,并从 objectToFollow 转换为 Object To Follow。规则如下所示:
m_ 前缀k 前缀_ 前缀有一些特殊情况(例如 iPad 或 x64)不适用这些规则。