首页 > 代码库 > Unity 脚本系统

Unity 脚本系统

什么是脚本?脚本是一个 MonoBehavior, 继承关系是

MonoBehavior -> Behavior -> Component -> Object

GameObject 的行为是由附加到他们身上的组件控制的。

游戏事件

MonoBehavior

类名和脚本名必须要一样

public class MainPlayer : MonoBehaviour {

    public string myName;

    // Use this for initialization

    void Start () { }

    // Update is called once per frame

    void Update ()

    { }


不可以有构造函数。对象的创建是由编辑器创建的,并不是在游戏开始时创建的。

这个 My Name,是编辑器自动根据你的变量名生成的, 只是为了显示而已。

 

GetComponent 函数:脚本本身是一个组件,调用 GetComponent 函数是取同属本GameObject对象的另一个组件,就是取兄弟组件。

所以,在脚本中使用 transform 变量是什么意思呢?就是 transform = GetBelongGameObject().GetComponent<Transform>();

 

void Start () {

transform.position = Vector3.zero;//本来应该是通过 GetComponent() 函数来获取 transform 组件,但是因为这个组件太常用了,所以就用一个变量直接存起来了。

// 内置的脚本组件对象可以在 MonoBehavior 文档中查看。

}

 

public class Enemy : MonoBehaviour {

public GameObject player; // 在当前component存储其他对象的引用

public Transform strans; // 在当前component存储其他component类型的变量,在这种情况下,你可以在编辑器中把任何包含 Transform 这个组件的对象赋给这个变量!

   void Start() {

        // Start the enemy ten units behind the player character.

       // 仍然可以访问 player.GetComponent()

        transform.position = player.transform.position - Vector3.forward * 10f;

    }

}

查找子对象

Transform lst = new Transform[transform.childCount];

for (Transform t in transform) {

   lst[i++] = t;
}

Unity 脚本系统