小白_Unity引擎_MonoBehaver

 1 public class MonoTest : MonoBehaviour {
 2 
 3     /// <summary>
 4     /// 1.在用户点击Inspector检视面板的Reset或者首次添加组件时被调用
 5     /// 2.此函数只在编辑模式下(项目没有运行的时候)被调用。
 6     /// 3.Reset最常用于在检视面板中给定一个默认值。
 7     /// </summary>
 8     void Reset()
 9     {
10 
11     }
12 
13 
14     /// <summary>
15     /// 1.Awake在脚本整个生命周期内像构造函数一样仅被调用一次
16     /// 2.初始化函数,在项目运动时系统自动调用
17     /// 3.Awake 在所有对象被初始化之后调用,所以可以安全的与其它对象对话或使用诸如GameObject.FindWithTag()这样的函数搜索它们
18     /// 4.不论脚本是否激活状态,Awake都会被调用(但如果绑定的物体没有激活,将不会调用Awake函数)
19     /// 5.Awake 总是在Start之前被调用
20     /// 6.它不能用来执行协同程序
21     /// 
22     /// </summary>
23     void Awake()
24     {
25         //建议:一般在Awake方法中创建游戏对象或在Resources.Load(Prefab)对象。
26         //在start方法中去获取游戏对象或者游戏组件这样可以确保万无一失 了
27 
28     }
29 
30 
31     /// <summary>
32     /// 1.Start 在脚本整个生命周期内仅被调用一次
33     /// 2.Start总是在Awake之后被调用
34     /// 3.Start总是在Update前调用
35     /// 4.必须在脚本被激活时才能被调用
36     /// </summary>
37     void Start()
38     {
39 
40     }
41 
42 
43     /// <summary>
44     /// 1.Update是正常帧更新,会在每一帧调用一次
45     /// 2.帧长时时在改变Time.deltaTime
46     /// 3.一般用于非物理的运动(比如使一个物体匀速运动)
47     /// </summary>
48     void Update()
49     {
50         Debug.Log("Update时间间隔: " + Time.deltaTime);
51     }
52 
53 
54 
55 
56 
57     /// <summary>
58     /// 1.FixedUpdate 是固定帧更新,会在每个固定的时间频率调用一次函数
59     /// 2.帧长时固定的(默认为0.02),不是时时改变的。 Edit ---》 Project Setting --》Time ---》Fixed Timestep
60     /// 3.一般用于物理的运动(比如控制一些诸如RigidBody, Collider等物理相关组件)
61     /// (物理引擎中用于物理的行为运动都是根据固定的时间来计算的)
62     /// 
63     /// </summary>
64     void FixedUpdate()
65     {
66         Debug.Log("FixedUpdate时间间隔: " + Time.deltaTime);
67     }
68 
69     /***
70      * Update 和 FixedUpdate 区别:
71      * 1.两者帧长不同
72      * 2.FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数会跟着下降
73      * 3.Update 就比较适合做控制
74      * 4.LateUpdate 与 Update方式一样,唯一不同的是
75      * LateUpdate,在每帧Update执行完毕调用,他是在所有Update结束后才调用
76      * 举例:摄像机跟随,都是在所有Update 操作完才跟进摄像机
77      * 不然就有可能出现摄像机已经推进了,但是视角还未有角色的空帧出现
78      * 
79      */
80 
81 
82 
83 }

Cube1上有脚本Script1 给Cube2添加脚本Script2,

在Script1中start并调用中的Script2中的变量,这个变量在Script2中start中赋值,结果得到的是默认值,

要解决:在Awake中赋值。(添加脚本后,获取变量,这时候还没有执行start还没有调用)

 

 

如果两个脚本中在Awake方法里都做了事情,但是这样这两件事也有前后顺序怎么办?

   可以设置脚本的执行前后顺序

  Editor ---》 Project Setting  ----》  Script Execution Order

或者选中脚本

 

拖拽添加需要执行顺序的脚本

设置后边的数字,从小到大,从先到后执行

猜你喜欢

转载自www.cnblogs.com/CeasarH/p/9259247.html
今日推荐