我在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)

c# - 在Unity中构建可旋转的升降机-LMLPHP



c# - 在Unity中构建可旋转的升降机-LMLPHP

那么,如何使我的升降机在所有“旋转”中工作?

最佳答案

您可以使用transform.up来获取电梯的向上方向,然后乘以电梯速度。

objectRigid.velocity = transform.up * liftSpeed;


transform.up随对象旋转的方式而变化,因此,如果将电梯向左旋转,则电梯将向左携带对象。

10-02 01:40
查看更多