Awake()
Unity calls Awake when loading an instance of a script component.
Read time 2 minutesLast updated 7 days ago
Definition
- Type: Method
- Namespace: UnityEngine
public void Awake()
Remarks
Unity calls on script components in the following scenarios: * The GameObject the script is attached to is active in the Hierarchy (GameObject.activeInHierarchy == ) and initializes on scene load. * The GameObject the script is attached to goes from inactive (GameObject.activeInHierarchy == ) to active (GameObject.activeInHierarchy == ). * After initialization of a parent GameObject created with Object.Instantiate. Unity calls regardless of the value of Behaviour.enabled for the script component itself, as long as the other conditions are met. Use to initialize variables or states before the application starts. Unity calls only once during the lifetime of the script instance. A script's lifetime lasts until the Scene that contains it is unloaded. If the scene is loaded again, Unity loads the script instance again and calls again. If the scene is loaded multiple times additively, Unity loads several script instances, and is called once for each instance. For active GameObjects in a scene, Unity calls after all active GameObjects in the scene are initialized, so you can safely use methods such as GameObject.FindWithTag to query other GameObjects. The order in which Unity calls each GameObject's is not deterministic and you can't rely on being called on one GameObject before or after another. For example, don't assume that a reference set up by one GameObject's will be usable in another GameObject's . Instead, you should use to set up references between scripts, and use Start, which is called after all calls are finished, to pass any information back and forth. is always called before any Start functions. This allows you to order initialization of scripts. is called even if the script is a disabled component of an active GameObject. If a script component's throws an exception, Unity disables the component. cannot act as a coroutine. Use instead of the constructor for initialization, as the serialized state of the component is undefined at construction time. is called once, just like the constructor.
AwakeMonoBehaviourtruefalsetrueAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeAwakeExamples
using UnityEngine;public class ExampleClass : MonoBehaviour{ private GameObject target; void Awake() { target = GameObject.FindWithTag("Player"); }}