在编辑器中创建脚本时,Unity会自动提供一个模板脚本,该脚本继承自MonoBehaviour类。继承自MonoBehaviour类意味着您的脚本可以像组件一样行为,并且您可以将其附加到GameObjectUnity场景中的基本对象,可以代表角色、道具、场景、摄像机、航点等。GameObject的功能由附加到其上的组件定义。更多信息
查看《术语表》,就像其他任何组件一样。
当您的脚本继承自MonoBehaviour时,您可以在脚本中包含属性和值,然后您可以从编辑器检查器Unity窗口,显示当前所选GameObject、资产或项目设置的信息,允许您检查和编辑值。更多信息
查看《术语表》中进行编辑,就像可以编辑任何其他组件一样。
以下示例代码声明了一个名为myName
的公共变量。当您将此脚本放置在您的场景包含游戏的环境和菜单。每个独特的场景文件就像一个独特的关卡。在每个场景中,您放置您的环境、障碍和装饰,可以说是在按部分设计和构建游戏。更多信息
查看《术语表》中的GameObject上时,该变量在检查器中作为一个标签为“我的名字”的字段可见。脚本中声明的默认值“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);
}
}
您放置脚本组件的每个GameObject都可以有自己的唯一字段值。
为了创建检查器标签,Unity会在变量名的大小写字母之间插入空格,并应用其他一些规则(参见变量名到标签转换)。然而,这些更改仅用于显示目的。您应该在代码中始终使用变量名。
在检查器中,如果您编辑了我的名字值并按下播放,控制台信息现在应包括您输入的文本。
C#中让变量可编辑的最简单方法是将其声明为public
。如果您想使一个私有字段可编辑,您可以使用SerializeField属性。相反,您可以使用[HideInInspector]属性(../ScriptReference/HideInInspector.html)来阻止公共变量在检查器中显示。
注意:您可以在运行模式下修改脚本的变量值,这在直接看到更改效果而不必停止和重新启动时非常实用。然而,当您停止播放模式时,变量的值将重置为您进入播放模式之前的状态(这适用于所有脚本和组件)。
除了布尔型、字符串型和数值型字段外,您还可以使任何类型继承自 UnityEngine.Object
的字段在检查器中可编辑。这包括所有内置组件类型(如 Transform、AudioSource、Camera、Light),您自己的 MonoBehaviour 脚本类型以及许多资产类型。
这允许您在自己的脚本组件中使用 Unity 编辑器的强大拖放系统。例如,如果您在脚本中创建一个公共的 Transform
字段并将其添加到一个 GameObject 上,您可以在检查器中将另一个 GameObject 拖入该字段以设置对该 GameObject 的引用,您可以在运行时在脚本中访问该引用。
例如,这个“跟随”脚本来使一个 GameObject 跟随另一个
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
,在编辑器中显示为可分配字段。您可以从层次结构窗口中拖动不同的 GameObject 到这个字段,然后编辑器将为该拖动对象的 Transform 组件分配一个引用。
下面的屏幕截图中,脚本放在了 Sphere GameObject 上,Cube 已经从层次结构拖动并放入了“要跟随的对象”字段中。
注意:您还可以为 MonoBehaviour 脚本一段代码,允许您创建自己的组件,引发游戏事件,随时间修改组件属性以及以任何您喜欢的方式响应用户输入。 更多信息
在 术语表中 查看更多信息 中的公共对象引用字段设置默认对象引用。
检查器在将您的变量名转换为检查器中的标签时应用了几条规则。例如,上面的示例中的变量名已经从 myName
转换为“我的名字”,并且从 objectToFollow
转换为“要跟随的对象”。规则如下
存在一些特殊情况,如“iPad”或“x64”,在这些情况下,不应用这些规则。