Unity中的预制件在变换后“丢失”碰撞检测

时间:2016-04-07 04:37:07

标签: c# unity3d

我有一个基本的立方体预制件,碰撞检测效果很好。

void OnCollisionEnter(Collision collision) {

        Debug.Log ("Diram...");
        //onplatform = true;

    }

然而,当我复制预制件并改变位置/旋转时, 对撞机停止工作,没有发生碰撞事件。

我不想使用触发器,因为对象会丢失所有碰撞并且游戏停止工作。

这里有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

1 更改:

Rigidbody obj1 = ....
Rigidbody rb1 = obj1.GetComponent<Rigidbody> ();
obj1.transform.position = newPos;

Rigidbody obj1 = ....
Rigidbody rb1 = obj1.GetComponent<Rigidbody> ();
obj1.transform.position = newPos;
rb1.MovePosition(newPos+transform.forward);

2 确保在实例化预制件后isKinematic设置为false

rb1.isKinematic = false;