开发项目种遇到的挑战
1.汽车碰撞
2、Sprite图片始终面向屏幕并且和模型的相对位置从视觉上保持一致
首先在初始化的时候:得到摄像机的位置,Sprinte这Vector.up的高度的偏移向量,计算摄像机和和Sprite方向和Sprite的位置的角度,计算出角度的cos只等,当移动的使用计算出新的位置,
其中用到了点到线的算法。
3、固定帧率
4、摄像机跟随角色移动,并且不能超出地形边界
Camera.CalculateFrustumCorners:给定视口坐标,计算指向指定相机深度的四个视锥角的视图空间向量。 这可以用来有效地计算图像效果着色器中的像素的世界空间位置。见标准资产实施全球雾。
利用上面的方法得到摄像机锥体指定深度四个角位置的向量,在利用射线(射线发射方向是以Camera位置向四个角发射射线)如果射到地面上就存地面上的点,如果没有就存Corner然后计算出上、下、左、右边界的中心点,
从中心点发射Box类型的射线如果发射到地面上就跟随没有责不跟随。
5、不倒翁效果
利用ChararcterJoint + SprintJoint
CharaterJoint和碰撞产生的碰撞总脉冲+移动方向决定了不倒翁的移动方向
CharaterJoint 种的ConnectedBody赋值SpriteRigiboy以达到恢复时有弹簧的效果