Unity学习笔记

2018.6.10

Update、FixedUpdate、LateUpdate个人理解:

Update游戏的每一帧调用,和机器有关,比如有的机器性能不好还能20多帧每秒,有的性能好的机器可以60帧

FixedUpdate和机器无关,固定的频率。处理物理逻辑的时候要把代码放在这里。

LateUpdate在Update之后调用。处理相机相关代码放在这里。


roll a ball笔记:

官网的roll a ball视频教程前几节基本是介绍Unity基础操作。

教程的文本内容,可以参考:

https://www.jianshu.com/p/6e4b0435e30e

https://www.jianshu.com/p/97b630a23234

总结得还不错,但是有一些问题没有说清楚,记录一下个人的理解:

写好代码后,Player(球)滚动时触碰到方块,方块并没有消失,而是像墙一样碰撞,是因为Unity物理系统不允许两个Collider(碰撞体)重合(除非已经重合的物体),所以需要设置方块为trigger。

设置完trigger后运行游戏,Player可以收集球了,看起来很完美,但是这样做会有个性能问题:

Unity的优化算法会将所有static collider(静态碰撞体)计算数据缓存,如果static collider移动、旋转、缩放的话,Unity会重新计算所有static collider数据并更新缓存。游戏中方块是static collider,而且每一帧都在旋转,所以会影响性能。

rigid body(刚体)是dynamic collider,不参与碰撞数据缓存。所以解决方案是将方块设置成rigid body。但是设置完之后,发现方块掉下去了,因为方块是trigger。

解决方法是将方块设置成kinematic rigid body。

kinematic rigid body不受物理影响,只受transform影响(移动、旋转、缩放),可以用于移动平台、带有动画的trigger。


总结起来就是:

static collider不会移动,像是墙、地板;

dynamic collider可以移动,且有rigid body。

standard rigid body通过physics forces移动;

kinematic rigid body通过transform移动。



2018.7.8

关于prefab个人理解

在project里创建一个PreFabs的文件夹。将Hierarchy里的Object拖到PreFabs里,就创建了这个Object的prefab。

如果拖到其他文件夹,也会创建prefab。猜测只要是将Hierarchy里的Object拖到Project里,就会创建他的prefab。

选择Object,ctrl + D可以Duplicate,复制粘贴。

选择其中的一个Object修改,再点击Inspector里的Prefab的Apply,则会修改prefab。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值