我目前正在制作一个简单的“足球”游戏,两个玩家互相对战。他们有一个目标,他们必须把球放到另一个球的目标。他们的动作用Kinect跟踪。
不幸的是,我遇到了碰撞的一些困难。我已经将一个刚体附着在每个角色的脚和手上,这样他们就可以踢球并击球,但它或多或少都有效。问题是脚和手都在转动自己,我无法弄清楚原因。此外,我想在角色踢球(或击球)时添加一个力量。为此,我使用http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.OnControllerColliderHit.html但它不起作用。我添加了一个Debug.Log(“foobar”),但它没有记录任何内容。
答案 0 :(得分:1)
耶!我用触发器解决了这个问题。我检查了脚和手的“Is Trigger”并使用以下代码处理了触发器:
public float speed;
void OnTriggerEnter(Collider other) {
Rigidbody body = hit.collider.attachedRigidbody;
if (body == null || body.isKinematic)
return;
body.AddForce(Vector3.forward * speed);
}
它立即解决了所有问题!