触及角色物理学吗?

时间:2018-10-22 02:09:41

标签: c# unity3d game-physics physics collision

好吧,对于这个任务,我需要协调物理性在某个点击中游戏对象并制作动画,以产生打出角色的错觉,然后他偶然跌倒,好像受到那个接触点的推动一样。

我在击中物体和被击中的角色上都具有刚体,并且可以告诉击中对象何时进入角色的盒子对撞机。我首先想到的是在接触点产生冲动,然后触发我的预制角色动画-

Vector3 direction = (this.transform.position - collider.transform.position) / (this.transform.position - collider.transform.position).magnitude;
        this.transform.GetComponent<Rigidbody>().AddForce(direction, ForceMode.Impulse);

问题在于,这只会使角色缓慢地朝击中对象漂浮(刚体已对角色进行重力检查),并且根据角色所面对的位置,动画看起来与打孔器不协调。

我想看看是否有一种简化的方法-如何在Unity中创建逼真的打孔/向后移动情况?

1 个答案:

答案 0 :(得分:0)

没有简单的方法可以使用Unity来立即解决此问题。您将需要编写布娃娃物理与动画的混合脚本。

您可能想尝试的一种方法是将布娃娃固定到动画骨骼上的系统,如果发生碰撞,布娃娃会暂时(部分或完全)将自己从骨骼上松开。当/如果它完全受物理影响,您可能希望从基于布娃娃的位置动态创建的关键帧到目标关键帧进行动画处理。

资产商店上还有诸如PuppetMaster之类的工具,它们打算做这样的事情,但它们往往不是免费的,因为它们很难做好。