如何获得触发器来影响触发对象的刚体组件?

时间:2013-08-17 06:46:39

标签: unity3d unityscript

我编写了一个脚本来重置游戏对象通过触发器卷时的位置。这个脚本大部分都有效,所以非常棒。

然而,有问题的物体在重置到起始位置后仍保留其动力。

我添加了注释行,我认为在重置位置之前会从对象中移除任何速度。没有这样的运气。

注释行抛出一个错误,我试图控制没有刚体组件的对象的速度(触发器本身)。

我很茫然。我如何影响对象Ball的刚体?

    #pragma strict

var Ball : GameObject;
var getStartPosition;

function Start () {
    yield WaitForSeconds (0.25);
    Ball = GameObject.Find("Ball");
    getStartPosition = Ball.GetComponent(startPosition).setStartPosition;
    Debug.Log("getStartPosition is set to: "+getStartPosition);
}

function Update () {

}

function OnTriggerEnter (Ball : Collider) {
        //Ball.rigidbody.AddForce(-rigidbody.velocity, ForceMode.VelocityChange);
        Ball.transform.position = getStartPosition;
}

1 个答案:

答案 0 :(得分:0)

似乎RigidBody组件属于球。 使用-rigidbody.velocity,您正尝试访问触发器的速度。 请改为Ball.rigidbody.velocity

顺便说一下,我认为你可以简单地将velocity的{​​{1}}和angularVelocity设置为零,而不是向其施加力。