1 public class EventFunction : MonoBehaviour 2 { 3 public float attackValue=10000; 4 public float currentHP; 5 6 //对变量赋值的顺序(左边最先赋值,右边最后赋值,以此类推): 7 //变量声明并直接赋值>检视面板赋值>Awake>OnEnable>Start>外部赋值 8 //我们一般对一个对象赋值,或者说想要从外部对一个对象的属性或者成员变量的值 9 //进行更改的前提是,这个对象已经有了(意味着start方法已经调用),所以外部赋值 10 //会后于Start方法进行调用 11 12 private void Reset() 13 { 14 //1.调用情况 15 //此函数只能在编辑器模式下(不运行)调用。 16 //2.调用时间,次数与作用 17 //当脚本第一次挂载到对象或者使用了Reset命令之后调用, 18 //来初始化脚本的各个属性,Reset最常用于在检视面板中提供良好的默认值。 19 //Debug.Log("调用了Reset方法"); 20 //Debug.Log("攻击值重置为默认值"); 21 } 22 23 private void Awake() 24 { 25 //1.调用情况 26 //a.在加载场景时初始化包含脚本的激活状态的GameObject时 27 //b.GameObject从非激活转变为激活状态 28 //c.在初始化使用Instantiate创建的GameObject之后 29 //2.调用时间,次数与作用 30 //在脚本实例的生存期内,Unity 仅调用 Awake 一次。脚本的生存期持续到包含它的场景被卸载为止。 31 //Unity 调用每个GameObject的Awake的顺序是不确定的,人为干涉(即设计)来保证程序的正确性和稳定性 32 // Awake 来代替构造函数进行初始化,在Unity这里,组件的初始化不使用构造函数 33 //Debug.Log("调用了Awake方法"); 34 //attackValue = 1; 35 } 36 37 private void OnEnable() 38 { 39 //1.调用情况 40 //a.游戏物体被激活 41 //b.脚本组件被激活 42 //2.调用时间,次数与作用 43 //每次游戏物体或者脚本被激活都会调用一次 44 //重复赋值 变为初始状态 45 //Debug.Log("调用了OnEnable方法"); 46 //currentHP = 100; 47 //Debug.Log("当前血量为:"+currentHP); 48 //attackValue = 2; 49 } 50 51 void Start() 52 { 53 //1.调用情况 54 //a.游戏物体被激活 55 //b.脚本组件被激活 56 //2.调用时间,次数与作用 57 //在脚本实例激活时在第一帧的Update之前被调用 58 //后于Awake执行,方便控制逻辑的前后调用顺序 59 //Debug.Log("调用了Start方法"); 60 attackValue = 3; 61 } 62 63 void Update() 64 { 65 //1.调用情况 66 //a.游戏物体被激活 67 //b.脚本组件被激活 68 //2.调用时间,次数与作用 69 //每帧调用,是最常用函数,每秒调用60次左右(根据当前电脑的的性能和状态) 70 //实时更新数据,接受输入数据 71 //Debug.Log("调用了Update方法"); 72 } 73 74 private void LateUpdate() 75 { 76 //1.调用情况 77 //a.游戏物体被激活 78 //b.脚本组件被激活 79 //2.调用时间,次数与作用 80 //LateUpdate在调用所有Update函数后调用,每秒调用60次左右,安排脚本的执行顺序 81 //比如摄像机跟随,一定是人物先移动了,摄像机才会跟随 82 //Debug.Log("调用了LateUpdate方法"); 83 } 84 85 private void OnDisable() 86 { 87 //1.调用情况 88 //a.游戏物体被禁用 89 //b.脚本组件被禁用 90 //c.游戏物体被销毁 91 //2.调用时间,次数与作用 92 //满足调用情况时即时调用一次,用于一些对象的状态重置,资源回收与清理 93 Debug.Log("调用了OnDisable方法"); 94 } 95 96 void OnApplicatoinQuit() 97 { 98 //1.调用情况 99 //a.在程序退出之前所有的游戏对象都会调用这个函数 100 //b.在编辑器中会在用户终止播放模式时调用 101 //c.在网页视图关闭时调用 102 //2.调用时间,次数与作用 103 //满足调用情况时即时调用一次,用于处理一些游戏退出后的逻辑 104 Debug.Log("OnApplicationQuit"); 105 } 106 107 108 void OnDestroy() 109 { 110 //1.调用情况 111 //a.场景或游戏结束 112 //b.停止播放模式将终止应用程序 113 //c.在网页视图关闭时调用 114 //d.当前脚本被移除 115 //e.当前脚本挂载到的游戏物体被删除 116 //2.调用时间,次数与作用 117 //满足调用情况时即时调用一次,用于一些游戏物体的销毁 118 Debug.Log("OnDestroy"); 119 } 120 }