ZERO_BEYOND

博客园 首页 联系 订阅 管理
  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 }

 

posted on 2023-05-07 22:19  ZERO_BEYOND  阅读(37)  评论(0编辑  收藏  举报