找回密码
 注册帐号

扫一扫,访问微社区

抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 

入门教程 【AchorU3d学习笔记②】Unity脚本生命周期以及几个常用函数区别

22
回复
2363
查看
[ 复制链接 ]
6蛮牛粉丝
1317/1500
排名
3010
昨日变化

19

主题

92

帖子

1317

积分

Rank: 6Rank: 6Rank: 6

UID
111624
好友
13
蛮牛币
5993
威望
0
注册时间
2015-7-2
在线时间
364 小时
最后登录
2018-8-24

专栏作家蛮牛译员

QQ
2015-8-13 12:53:46 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 u75379946 于 2015-8-13 15:02 编辑

今天Achor给大家讲解一下中脚本生命周期,了解它的工作流程对于脚本编写起着至关重要的作用。我们先来看一张图:
41DEF221-DA2C-4965-AE8E-395AC0013902.jpg
           (点击图片放大)
这张流程图清楚的描绘了Unity中脚本的执行顺序,不过为了便于初学者理解我在这里还是详细的讲解一下:
总的来说unity的脚本生命周期分几个部分:编辑→初始化→游戏逻辑→渲染→GUI→Teardown
首先是Reset,顾名思义:重置。在什么情况下调用呢?1.用户第一次添加组件时。2用户点击见组件面板上的Reset按钮时。
接下来的几个比较重要:
Awake():当脚本实例被载入时调用,一般进行一些初始化赋值。
Start():Start只在Update第一次被调用前执行一次。
接下来是三个更新函数(比较重要这里我做了详细讲解):
Update(),FixedUpdate(),LateUpdate()三者的区别:
1.Update():每帧执行一次
2.FixedUpdate():以固定的时间间隔执行,不受帧率影响,默认0.02s,如果卡帧了Update就不会再执行,而FixedUpdate则继续执行。
时间间隔可以在Edit->ProjectSetting->time->Fixedtimestep中修改。主要用于处理物理逻辑,比如Rigidbody等。
3.LateUpdate():LateUpdate是在所有Update函数调用后被调用。比如相机跟随就可以用这个函数,即人物移动在Update中实现,相机
跟随在LateUpdate()中实现,Play后的效果是:角色移动发生在前,相机移动紧跟其后。

OnGUI 方法:  渲染和处理GUI事件时调用,用于渲染图形界面,同样很重要。

OnDisable 方法: 当对象变为不可用或非激活状态时此函数被调用。
OnDestroy 方法:当MonoBehaviour将被销毁时,这个函数被调用。
以上是单个脚本的生命周期执行顺序,大家知道Unity是不支持多线程的,但是Unity可以同时创建很多脚本,并且可以分别绑定在不同的游戏对
象上,他们分别执行各自生命周期时又如同多线程并行执行脚本的,那么当有多个脚本时Awake(),Update()等函数执行顺序是如何呢?
答案是与单个脚本执行顺序一样,什么意思?
例如:我建立两个脚本:Script1和Script2
在两个脚本中我都加入Awake()和Update()函数:
public class Script1 : MonoBehaviour                   public class Script2 : MonoBehaviour
{                                                                     {
             void Awake ()                                                    void Awake ()
            {                                                                       {
            Debug.Log("Script1  Awake");                              Debug.Log("Script2  Awake");
            }                                                                       }
           void Update ()                                                     void Update ()            
           {                                                                       {                                                                        
           Debug.Log("Script1  Update");                              Debug.Log("Script2  Update");
          }                                                                        }
}                                                                      }
我们看下执行结果:        Script1  Awake
                                     Script2  Awake
                                     Script1  Update
                                     Script2  Update
由此我们得出结论:每个脚本的Awake,Update方法在后台都汇集在一起。
如上两个脚本在后台:void Awake()
                                {   
                                     Script1中的Awake();
                                     Script2中的Awake();
                                }  
后台中Update函数汇总也是一样,这里就不列出了。
在实际的项目中脚本会非常多,那么如此多的脚本在后台脚本中的顺序可能不是我们预期那样,此时可以在脚本的Inspector面板下方Execution Order中修改脚本执行顺序,不过这样非常麻烦。建议一般在Awake中做一些初始化,在Start中获取游戏对象等,在实际项目中应灵活应对。
好了以上就是Achor今天为大家带来的经验分享。有什么不足欢迎大家指正~
我的新浪微博:Achor_Wang  微信公众平台:Achor游戏频道  定期为大家分享游戏开发经验和行业最新资讯,需要的朋友可以关注一下我们相互学习哦!
最后给大家送上一个能快速提高能力的官方案例+源码素材Stealth(如果自己完整学习并做下来相信会有很大的提高):


游客,如果您要查看本帖隐藏内容请回复
                                                         


unity的生命周期;unity 生命周期
回复

使用道具 举报

7日久生情
2877/5000
排名
379
昨日变化

0

主题

229

帖子

2877

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
31619
好友
0
蛮牛币
4233
威望
0
注册时间
2014-6-27
在线时间
944 小时
最后登录
2020-4-7
2015-8-13 15:08:04 显示全部楼层
谢谢大大的分享~~~~~~~~~~~~~~~
回复

使用道具 举报

5熟悉之中
994/1000
排名
2783
昨日变化

1

主题

275

帖子

994

积分

Rank: 5Rank: 5

UID
13134
好友
1
蛮牛币
3422
威望
0
注册时间
2014-1-22
在线时间
180 小时
最后登录
2016-4-30
QQ
2015-8-13 23:47:43 显示全部楼层

谢谢LZ的分享~~ 很好的 贴纸 。。可以转载吗?。。
回复

使用道具 举报

7日久生情
4575/5000
排名
144
昨日变化

1

主题

437

帖子

4575

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
39981
好友
2
蛮牛币
10587
威望
0
注册时间
2014-8-15
在线时间
1781 小时
最后登录
2020-4-7

七夕浪漫情人

2015-8-14 08:57:53 显示全部楼层
莱特米碎碎~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

6蛮牛粉丝
1317/1500
排名
3010
昨日变化

19

主题

92

帖子

1317

积分

Rank: 6Rank: 6Rank: 6

UID
111624
好友
13
蛮牛币
5993
威望
0
注册时间
2015-7-2
在线时间
364 小时
最后登录
2018-8-24

专栏作家蛮牛译员

QQ
楼主 2015-8-14 10:07:57 显示全部楼层
ingingpk 发表于 2015-8-13 23:47
谢谢LZ的分享~~ 很好的 贴纸 。。可以转载吗?。。

可以啊~没有问题~
回复

使用道具 举报

5熟悉之中
994/1000
排名
2783
昨日变化

1

主题

275

帖子

994

积分

Rank: 5Rank: 5

UID
13134
好友
1
蛮牛币
3422
威望
0
注册时间
2014-1-22
在线时间
180 小时
最后登录
2016-4-30
QQ
2015-8-14 17:37:50 显示全部楼层
u75379946 发表于 2015-8-14 10:07
可以啊~没有问题~

多谢了 !!   !      15字
回复

使用道具 举报

5熟悉之中
765/1000
排名
3972
昨日变化

1

主题

163

帖子

765

积分

Rank: 5Rank: 5

UID
95892
好友
0
蛮牛币
1203
威望
0
注册时间
2015-4-27
在线时间
221 小时
最后登录
2018-4-9
2015-8-14 19:50:10 显示全部楼层
看过1好像,看看写的怎么样,呀咿呀咿呀!
回复

使用道具 举报

4四处流浪
492/500
排名
5293
昨日变化

0

主题

93

帖子

492

积分

Rank: 4

UID
47741
好友
0
蛮牛币
638
威望
0
注册时间
2014-10-5
在线时间
130 小时
最后登录
2015-10-26
2015-8-14 21:02:20 显示全部楼层
看起来不错的样子!!!!!!!!!!!!!!!!
回复

使用道具 举报

3偶尔光临
181/300
排名
11820
昨日变化

0

主题

28

帖子

181

积分

Rank: 3Rank: 3Rank: 3

UID
115335
好友
0
蛮牛币
479
威望
0
注册时间
2015-7-27
在线时间
71 小时
最后登录
2019-12-4
2015-8-17 17:24:04 显示全部楼层
~\(≧▽≦)/~ 楼主辛苦,多多学习
回复

使用道具 举报

0

主题

2

帖子

10

积分

Rank: 1

UID
118421
好友
0
蛮牛币
9
威望
0
注册时间
2015-8-17
在线时间
8 小时
最后登录
2019-8-20
2015-8-18 20:39:05 显示全部楼层
谢谢分享 谢谢分享 希望继续更新
回复

使用道具 举报

3偶尔光临
210/300
排名
10596
昨日变化

0

主题

25

帖子

210

积分

Rank: 3Rank: 3Rank: 3

UID
40705
好友
1
蛮牛币
278
威望
0
注册时间
2014-8-19
在线时间
85 小时
最后登录
2019-3-31
2015-8-21 18:02:44 显示全部楼层
学习学习。。。。。。。
回复

使用道具 举报

4四处流浪
492/500
排名
5581
昨日变化

3

主题

38

帖子

492

积分

Rank: 4

UID
47920
好友
0
蛮牛币
187
威望
0
注册时间
2014-10-8
在线时间
197 小时
最后登录
2019-4-3
2015-8-23 00:20:30 显示全部楼层
666666666666666666666666666666666666666666666
回复

使用道具 举报

2初来乍到
113/150
排名
12145
昨日变化

0

主题

8

帖子

113

积分

Rank: 2Rank: 2

UID
120776
好友
0
蛮牛币
294
威望
0
注册时间
2015-9-2
在线时间
27 小时
最后登录
2015-10-17
2015-9-3 15:39:49 来自Mobile--- 显示全部楼层
刚好自己在学习,感谢前辈提供的方向
回复

使用道具 举报

排名
48141
昨日变化

0

主题

2

帖子

5

积分

Rank: 1

UID
119525
好友
0
蛮牛币
11
威望
0
注册时间
2015-8-24
在线时间
1 小时
最后登录
2015-9-23
2015-9-23 00:34:47 显示全部楼层
感谢楼主无私分享!感谢楼主无私分享!
回复

使用道具 举报

排名
28932
昨日变化

0

主题

7

帖子

35

积分

Rank: 1

UID
118108
好友
0
蛮牛币
15
威望
0
注册时间
2015-8-14
在线时间
15 小时
最后登录
2015-12-2
2015-9-28 17:32:23 显示全部楼层
想看看想看看想看看想看看想看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则