private void Start()
{
connected = false;
}
private void OnCollisionEnter(Collision collision)
{
if (collision.transform.tag == "Player")
{
dronePlayer = collision;
offset = dronePlayer.transform.position - gameObject.transform.position;
connected = true;
}
}
private void Update()
{
if (connected)
{
transform.position = dronePlayer.transform.position - offset;
}
}
简单地说,我想做的就是在碰撞后从另一个物体中拾取一个物体然后四处移动。所以脚本只是改变了我用变换命中的对象的变换。
这里的问题是所有工作正常,除非我接近场景中的另一个对象。刚体的定律被忽略,并通过它通常会碰到的其他物体。
答案 0 :(得分:1)
这是因为你迫使它的位置相对于它“被卡住”的物体处于一个特定的位置:它不再是由物理引擎控制的刚体。它坚持的对象不知道它不能继续前进,这样做,并导致相互渗透。
您需要将此对象的碰撞体积添加到控制对象的层次结构中,以便物理引擎 了解它。
答案 1 :(得分:0)
某人表示使用哪种作品令人难以置信。
gameObject.AddComponent<FixedJoint>();
gameObject.GetComponent<FixedJoint>().connectedBody = collision.rigidbody;