这两天一直在做一个漫游的东西,漫游的代码,网上各种各样,都有,但是在漫游的过程中出现一个问题,那就是碰到墙壁之后会穿墙,或者是会反弹,摄像机一直在抖动,这样看起来很不爽,
漫游的程序就不多少了,有好多,我这用了两种:
1.采用滑动的偏移量来控制移动,这包括三种,
第一一种是鼠标的Input.GetMouseButtonDown(0)和Input.GetMouseButton(0)计算偏移量;
第二种就是使用虚拟轴
float offetX = Input.GetAxis("Mouse X");//左右滑动
float offetY = Input.GetAxis("Mouse Y");//上下滑动
来控制移动和旋转;
第三种,采用就是移动平台下的手指滑动,这个也有好多,也可以用
FingerGestures插件;
这个可以看一看宣雨松的博客,讲的很详细,http://www.xuanyusong.com/archives/1869
也可以用Input.GetTouch(0)手指滑动;
总之一句话就是用的偏差量来控制移动和旋转;
2.防止摄像机穿墙:
相碰的两个物体都要添加Collider,运动的那个物体定要加刚体(给摄像机加一个Capsule子对象,将Collider和Rigidbody加载Capsule的父对象身上),但是防止穿墙就得靠Rigidbody组件的Constraints属性了,分别有Freeze Posi