多个物体的刚体

时间:2019-04-24 12:18:22

标签: c# unity3d

我是团结的新手...我正在尝试解决一个逻辑...如果我单击空格,飞机上的三个多维数据集:第一个多维数据集将跳跃,第二个单击空格按钮,第二个多维数据集将跳跃,第三个单击第三个立方体多维数据集将在第四次单击中跳转。第一个多维数据集将进行跳转。

[RequireComponent(typeof(Rigidbody))]
public class Control : MonoBehaviour
{
    public bool isGrounded;
    private static int count = 0;
    Rigidbody rb;
    GameObject cube1, cube2, cube3;
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector3(0f, 10f, 0f);
            cube1 = GameObject.FindGameObjectWithTag("Player1");
            cube2 = GameObject.FindGameObjectWithTag("Player2");
            cube3 = GameObject.FindGameObjectWithTag("Player3");
            isGrounded = false;

        }
    }
    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.tag == ("Ground") && isGrounded == false)
        {
            isGrounded = true;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

在这种情况下,我将在List脚本中保存一个Control的GameObjects,然后使用对象的刚体设置其速度。

public class Control : MonoBehaviour
{
    private static int count = 0;
    public List<GameObject> cubes;
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            cubes[count].GetComponent<Rigidbody>().velocity = new Vector3(0f, 10f, 0f);
            count = (++count) % cubes.Count;
        }
    }
}

此脚本将需要添加到一个空的GameObject中;那么您可以通过在编辑器中拖动多维数据集来填充cubes列表。其他多维数据集不需要不需要Control脚本。 您的场景图将包含以下元素:

  

-控制(带有控制脚本的GameObject)

     

-多维数据集1

     

-多维数据集2

     

-多维数据集3