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