这几天做项目,一个FPS游戏,中间做武器时一个开枪后抛出弹壳,但是换个方向后弹壳抛出后的方向就不对,经过测试后发现是使用Rigibody.AddForce时添加力的坐标位置不对。
以弹壳抛出的位置作为弹壳刚体添加力的坐标点
GameObject _pistolShell = Instantiate(PistolShell,PistolShellPoint.transform.position,PistolShell.transform.rotation) as GameObject;
_pistolShell.GetComponent<Rigidbody>().AddForce(PistolShellPoint.transform.up * -8);
Destroy(_pistolShell,4.0f);
同时在贴出几种在修复这个bug时所使用到的方法给刚体物体是施加力的方法
Rigibody.AddForce 添加到刚体的力
Rigibody.AddRelativeForce 添加力到刚体,相对于它的系统坐标
Rigibody.AddExplosionForce 添加爆炸力
Rigibody.velocity 改变刚体的速度向量
其中Rigibody.AddRelativeForce没有太过仔细去看,Rigibody.velocity 使用的方法和AddForce相近,但是Rigibody.velocity更多的是改变刚体的移动速度,以米为单位;Rigibody.AddExplosionForce则是应用于爆炸效果中,设置一个点让物体造成一个给弹开的效果
Untiy使用的时间还不是很久,当中若有错误的地方欢迎提出,毕竟只有错误才能使人进步