1. 屏幕四周建四个Box Collider
2. 给准星建一个Sphere Collider,并添加Rigidbody
其中,Rigidbody里的 Mass调到最小,Drag阻力调到最大, Angular Drag适当调大。Drag为零时,准星与边界的盒碰撞器碰撞后会受到反作用力一直后退,并旋转,Drag的力相当于摩擦力,阻碍后退, Angular Drag阻碍旋转。其实在Constraints里的Freeze可以冻结准星,不许移动,但是选择它的话与盒子碰撞就失去阻碍准星去到边界外的作用了。
第二种方法是,判断准星的位置,Transform.x> 右边界,Transform.x < 左边界,Transform.y > 上边界, Transform.y <下边界, 使得准星只可距离枪口距离缩小。
3. 准星沿着屏幕边缘移动时如果发生抖动
可以修改 Rigidbody里的Interpolate插值方法,有Interpolate 根据前一位置平滑 和 Extrapolate 根据预测的位置平滑。
也可以把之前写在update里关于准星的操作都写进 FixedUpdate()