在首次调用任何 Update 方法之前启用脚本时,在帧上调用 Start。
类似于 Awake 函数,Start 在脚本生命周期内仅调用一次。但是,不管是否启用脚本,初始化脚本对象时都会调用 Awake。如果在初始化时未启用脚本,则可以在与 Awake 不同的帧上调用 Start。
在调用任何对象的 Start 函数之前,将在场景中的所有对象上调用 Awake 函数。如果对象 A 的初始化代码需要依赖于已经初始化的对象 B,则这一点会非常有用;此时,B 的初始化应在 Awake 中完成,A 则应在 Start 中完成。
在游戏过程中实例化对象时,Awake 函数在 Scene 对象的 Start 函数完成后调用。
The Start function can be defined as a Coroutine, which allows Start to suspend its execution (yield).
// Initializes the target variable. // target is private and thus not editable in the Inspector
// The ExampleClass starts with Awake. The GameObject class has activeSelf // set to false. When activeSelf is set to true the Start() and Update() // functions will be called causing the ExampleClass to run. // Note that ExampleClass (Script) in the Inspector is turned off. It // needs to be ticked to make script call Start.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { private float update;
void Awake() { Debug.Log("Awake"); update = 0.0f; }
IEnumerator Start() { Debug.Log("Start1"); yield return new WaitForSeconds(2.5f); Debug.Log("Start2"); }
void Update() { update += Time.deltaTime; if (update > 1.0f) { update = 0.0f; Debug.Log("Update"); } } }
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.