我在Unity中得到了一个“立方体”。这个立方体有一个触发器,当移入它时,物体会被抓住到空中。这是一部电梯,您可以在此处看到我的意思的示例。这是从Spyro 2拍摄的一个小场景。
https://youtu.be/f8wWMa4N5mE?t=643
我现在使用的代码真的很小
private float liftSpeed = 10; // the speed, the object is flying up
private void OnTriggerStay(Collider col)
{
Rigidbody objectRigid = col.gameObject.GetComponent<Rigidbody>(); // get the rigidbody from the object in the trigger
if (objectRigid != null) // does it have a rigidbody?
objectRigid.velocity = new Vector3(objectRigid.velocity.x, liftSpeed, objectRigid.velocity.z); // make it fly in the air
}
所以我乘电梯,完全可以正常工作。但是我在旋转电梯时也希望它也能正常工作。
一些示例(我的游戏是3D)
那么,如何使我的升降机在所有“旋转”中工作?
最佳答案
您可以使用transform.up来获取电梯的向上方向,然后乘以电梯速度。
objectRigid.velocity = transform.up * liftSpeed;
transform.up随对象旋转的方式而变化,因此,如果将电梯向左旋转,则电梯将向左携带对象。