***** update,fixedUpDate,lateUpdate的区别:
Update is called before rendering a frame.我们普通的代码应该放Update方法中
Fixed update is called before apply any physics calculations.有关于物理的代码应该放在fixed update中
LateUpdate 会确保在update中的代码都调用并更新完毕之后调用,例如本例中的摄像机跟随,我们在update或者fixedUpdate中移动player,在LateUpdate中调用摄像机跟随的代码,这样就能确保在玩家更新完位置之后才会更新摄像机的位置
***** 快速查询:
ctrl+ '
***** 物理 static/dynamic/kinematic
unity的优化:对于所有的static的物体都会进行一次优化,会缓存好它们的物理碰撞盒和其他信息,这样就不用每次都重新计算,因为static的物体我们约定好它们是不能移动的;如果场景中的任何static的物体发生移动/旋转/缩放等操作,那么unity会重新计算场景中所有static物体的碰撞盒等物理信息,并进行一次更新缓存;所以,设定好为static的物体一定不要随便修改它们的transform属性,如果要经常进行transform的操作,例如电梯和2d平台游戏中的移动平台,则最好把它们设置为kinematic的类型,这样它们既可以不受外力的作用,又可以自由移动。
dynamic的物体就是真实世界的物体,受力的作用
static的物体就是假定不会进行任何移动/旋转/缩放等操作的物体,是完全静止不动的物体
kinematic的物体可以进行移动/旋转/缩放,但是它们自身不会受到力的作用,你只能通过transform属性来对他们进行操作
dynamic物体:带有rigid body和collider
static物体:只有collider
kinematic物体:有rigid body和collider,但是rigid body组件的类型为kinematic
总结:
Static colliders should not move, like ground and walls.
Dynamic colliders can move, and have a rigid body attached, standard rigid bodies move using physics forces,kinematic bodies move using tranform.
复习实现要点:
(1)摄像机跟踪脚本
(2)黄色的自旋转方块 注意物理的static/kinematic/dynamic的区别
(3)主角的控制 通过施加力的方式 注意update/fixed update/late update的区别
(4)UI:得分和结束