Unity脚本生命周期常用方法

来源:互联网 发布:java web面试题 编辑:程序博客网 时间:2024/06/01 11:17

在编辑状态下脚本被挂在到游戏对象上的时候被调用 是声明周期函数中最早执行的

void Reset()    {        transform.position = Vector3.zero;    }

在运行的时候开始执行 不管脚本是否被激活都可以被调用

void Awake()    {        Debug.Log("唤醒了");    }

脚本被激活的时候被调用

void OnEnable()    {        Debug.Log("激活了");    }

脚本失活的时候被调用

void OnDisable()    {        Debug.Log("失活了");    }

Start 方法在整个声明周期中只被调用一次,即使让脚本失活后在激活脚本,Start方法不再执行

void Start () {        Debug.Log("Start");        Destroy(gameObject);    }

固定更新void FixedUpdate()处理基于物理游戏行为一般用该方法,处理Rigidbody时,需要用FixedUpdate代替Update。当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。

void FixedUpdate()    {        Debug.Log("FixedUpdate");        Debug.Log(Time.deltaTime);    }

当鼠标进入到Collider(碰撞体)中时调用

    void OnMouseEnter()    {        transform.localScale = new Vector3(2,2,2);    }

当鼠标移出Collider(碰撞体)上时调用

    void OnMouseExit()    {        transform.localScale = new Vector3(1, 1, 1);    }

当鼠标悬浮在Collider(碰撞体)上时调用

void OnMouseOver()    {        transform.Rotate(Vector3.up * 30 * Time.deltaTime);    }

当用户释放鼠标按钮时调用,只调用在按下的同一物体上。此函数在iPhone上无效。

void OnMouseUp()    {        transform.localScale /= 2;    }

当鼠标在Collider(碰撞体)上点击时调

    void OnMouseDown()    {        transform.localScale *= 2;    }

当MonoBehaviour将被销毁时,这个函数被调用。只会在预先已经被激活的游戏物体上被调用

  void OnDestroy()    {                Debug.Log("游戏对象销毁了");    }