Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打一个角色物理?_C#_Unity3d_Game Physics_Physics_Collision - Fatal编程技术网

C# 打一个角色物理?

C# 打一个角色物理?,c#,unity3d,game-physics,physics,collision,C#,Unity3d,Game Physics,Physics,Collision,好的,对于这项任务,我需要协调物理在某个点打击游戏对象和动画,以创建一个角色出击的幻觉,他蹒跚后退,就好像被那个接触点推动一样。 我在击中的物体和被击中的角色上都有刚体,并且可以判断击中的物体何时进入角色的框碰撞器。我想首先要做的是在接触点产生一个冲动,然后触发我预先制作的角色动画- Vector3 direction = (this.transform.position - collider.transform.position) / (this.transform.position - co

好的,对于这项任务,我需要协调物理在某个点打击游戏对象和动画,以创建一个角色出击的幻觉,他蹒跚后退,就好像被那个接触点推动一样。

我在击中的物体和被击中的角色上都有刚体,并且可以判断击中的物体何时进入角色的框碰撞器。我想首先要做的是在接触点产生一个冲动,然后触发我预先制作的角色动画-

Vector3 direction = (this.transform.position - collider.transform.position) / (this.transform.position - collider.transform.position).magnitude;
        this.transform.GetComponent<Rigidbody>().AddForce(direction, ForceMode.Impulse);
Vector3方向=(this.transform.position-collider.transform.position)/(this.transform.position-collider.transform.position)幅值;
this.transform.GetComponent().AddForce(方向,ForceMode.pulse);
问题是,这只会使角色在打击对象对面缓慢浮动(刚体已检查角色的重力),并且取决于角色面对的位置,动画看起来与冲头不协调


我想看看是否有一种简化的方法来做到这一点——我如何才能在Unity中创建一个真实的打孔/向后移动的情况?

在Unity中,没有简单的方法可以让这种行为脱离框框。您将需要编写一个混合了碎布玩偶物理和动画的脚本

您可能希望尝试的一种方法是使用一个系统将碎布玩偶“固定”到动画的骨骼上,如果发生碰撞,碎布玩偶会暂时(部分或完全)从骨骼上解除固定。当/如果它完成受物理影响时,您可能希望从基于碎布玩偶位置动态创建的关键帧到目标关键帧设置动画


也有类似于“资产存储”的工具用于执行类似操作,但它们通常不是免费的,因为它们很难制作好。

如果对象是角色,最好的方法是应用动画。Unity中没有任何内置的东西可以创建这些类型的“绊倒”动画,但是Unity商店中有很多罐装动画。@RonBeyer是的,我已经制作了绊倒动画,问题是如何确定绊倒的方向。角色可以面对任何方向远离击球手,因此如果我触发绊倒,他很可能不会绊倒远离hitUnity3D应该可以为您完成所有这些,而无需编写任何文字code@MickyD这是一个非常模糊的回答。解释?Unity3D有物理学;刚体;开箱即用。所有这些都不需要任何代码。问题不在于编码太多,而在于拥有合适的资源和使用Unity3D场景编辑器