您的位置:首页 > 移动开发 > Unity3D

小译UnityAPI-Awake,Start,Reset

2016-04-14 22:13 585 查看
MonoBehaviour.Awake 唤醒

官方描述:



译:

当一个脚本实例被载入时Awake被调用。

Awake被用于在游戏开始之前初始化变量或者游戏情景。在脚本整个生命周期内它仅被调用一次。Awake在所有对象被初始化之后调用,因此你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数访问它们。每个游戏物体上的Awke随机的顺序被调用。由于这些,你应该用Awake去设置脚本之间的引用,并用Start反复地传递任何信息。Awake在任何Start函数之前被调用。它不能用来执行协同程序。

给C#和Boo用户的注释:在物体被建造时,Awake不同于构造函数,没有定义组件的序列化状态。Awake只被调用一次,像构造函数一样。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
private GameObject target;
void Awake() {
//找到一个Tag为"Player"的实体,将其赋值给target
target = GameObject.FindWithTag("Player");
}
}


Awake不能用作协同程序。

MonoBehaviour.Start 开始

官方描述:



译:

Start被调用一次当脚本设置为enable=true且仅仅在Update类函数之前在工程中。

和Awake函数一样,整个脚本生命周期只被调用一次。然而,当脚本初始化时,Awake被调用,无论脚本的enable的值是false或者true。在脚本一次生命周期里,当脚本的enable的值是false,可能Start不被调用,而Awake被调用,在工程中。

当在场景里时,在所有实体的Start函数被调用之前,所有实体的Awake函数被调用。这个情况是有意义的,假设,当A初始化要B已经初始化完成,而B的初始化代码在A的Awake里,A的初始化可以放在自己的Start里。

实体初始化在游戏设置时,在场景实体的Start函数已经准备好之后,它们的Awake函数自然地被调用。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
private GameObject target;
void Start() {
//找到一个Tag为"Player"的实体,将其赋值给target
target = GameObject.FindWithTag("Player");
}
}


MonoBehaviour.Reset 重置

官方描述:



译:

重置为默认的值。

当用户点击检视快捷键的Reset按钮或者第一次添加该组件时,Reset被调用。Reset函数仅仅在编辑模式下被调用。Reset最常用于在检视快捷键中给一个最好的默认值。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
public GameObject target;
void Reset() {
//如果target为空,找到一个Tag为"Player"的实体,将其赋值给target
if (!target)
target = GameObject.FindWithTag("Player");

}
}


欢迎关注我的微信个人订阅号



每天多学一点0.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: