游戏底层玩法问题:

1.常见的生命周期函数有哪些?不同函数的使用场景?

2.什么是游戏帧率?几类时间?

3.事件与动画如何匹配?

4.帧同步与状态同步的优劣?

 

1.常见的生命周期函数有哪些?不同函数的使用场景?

Awake—>OnEnable–>Start—>Update—>FixedUpdate—>LateUpdate—>OnGUI—>OnDisable—>OnDestroy

Awake函数,最先执行,直到物体**才被调用,注意这里是物体**,脚本不**也会调用Awake,只会调用一次

OnEnable函数,当对象变为可用或者**状态时被调用一次

Start函数,函数仅在Update函数第一次被调用前调用。在整个生命周期中也只是被调用一次,但是和Awake不同的是,Start函数只在脚本实例被启动的时候调用

Update函数,当脚本启动之后,会在每一帧中都被调动,在这函数中可以更新游戏的状态,是游戏实现中非常常用的函数

FixedUpdate函数,该函数也是脚本启动后的每一帧都会被调用,但是与Update不同的是,FixedUpdate函数是专门用力处理Rigidbody,比如给刚体加一个力的作用。还有一个需要注意的是,FixedUpdate函数和Update函数的帧率是不一样的。受到fixedtimestep影响

LateUpdate函数,跟Update函数一样,也是每一帧都被调用。有一个特点就是,LateUpdate函数是在所有Update函数调用后才调用的,可以用于调整脚本的执行顺序。常用于摄像头

ONGUI函数,渲染和处理GUI事件的时候调用,这意味着你的OnGUI程序将会在每一帧被调用。要得到更多的GUI事件的信息查阅Event手册。如果Monobehaviour的enabled属性设为false,OnGUI()将不会被调用。

OnDisable函数,与OnEnable函数相反,OnDisable函数在对象变为不可用或者非**状态时被调用,可以在此函数中做相关资源的释放。

OnDestroy函数,当脚本被销毁的时候被调用。

2.什么是游戏帧率?几类时间?

帧率

游戏渲染一次的时间 60fps:1帧为1/60s

Time.realtimeSinceStartup:真实游戏时间线,以真实时间作为参考

TimeLine:游戏时间线,受间隔时间影响

Time.time

Time.timeScale:时间间隔为0.5则,真实时间过了2s,实际游戏中过了1s

所以我们开发中,常用timeScale*speed表达速度

注意:当你的scale调小,帧率不会改变,所以相同时间脚本会被调用多次

3.事件与动画如何匹配?

动画播放中伴随着其他需求,比如声音的播放,特效的创建等

在动画选项中有一项:event

02函数生命周期相关问题

注意这里的人物中要添加脚本,event function要添加对应的代码

当然了你也可以根据动画的播放时长在脚本中添加

 

4.帧同步与状态同步的优劣?

状态同步传递计算结果,帧同步传递计算数值

帧同步本地运算,所以需要注意值的精确,不同客户端之间的坐标偏移了0.01造成角色的扣血,那么不同客户端的结果也就不同

状态同步消耗的流量大,且延迟高于帧同步,不适用于moba游戏常见于mmo游戏

介绍一个概念锁帧:也就是客户端没有收到消息则不进行同步,反应的是画面不渲染

 

 

相关文章:

  • 2021-05-15
  • 2021-04-27
  • 2021-12-23
  • 2021-11-20
  • 2021-05-06
  • 2021-11-14
  • 2021-04-28
猜你喜欢
  • 2021-10-22
  • 2021-12-11
  • 2021-04-27
  • 2021-04-30
相关资源
相似解决方案