我正在做一个各种各样的台球游戏。为了创建一个表格,我使用立方体作为边。我想使用内置的物理引擎让这些边与球互动。可悲的是我无法让它工作。
这是我所做的。我创建了立方体作为侧面,并创建了一个球体作为球体。为了移动球体,我使用了刚体.MovePosition 函数。立方体和球体都附加了碰撞器和刚体,并关闭了重力。
球体运动很好,但是当它与立方体碰撞时,它会使立方体飞起来。由于立方体应该是一堵不可移动的墙,我限制了所有轴的旋转和移动。但是,使用约束会导致物理引擎变得疯狂。它没有停止球体或向相反方向移动,而是简单地穿过立方体。显然,出了点问题,我需要帮助找出问题所在。
提前致谢。
这是用于移动球体的代码。
public float movePower = 10.0f;
// Update is called once per frame
void Update ()
{
if(Input.GetKey(KeyCode.LeftArrow))
{
rigidbody.MovePosition(transform.position + Vector3.left* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow))
{
rigidbody.MovePosition(transform.position + Vector3.right* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow))
{
rigidbody.MovePosition(transform.position + Vector3.down* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.UpArrow))
{
rigidbody.MovePosition(transform.position + Vector3.up* movePower * Time.deltaTime);
}
}