gpt4 book ai didi

c# - 统一: Turn on one GameObject after the other with KeyPress

转载 作者:行者123 更新时间:2023-12-04 08:29:47 25 4
gpt4 key购买 nike

我有 7 个或更多游戏对象。我只想一个接一个地运行一个游戏对象。从 Gameobject 0 --> GameObject 1 --> GameObject 2 开始。目前,每次按下 Space 时,我的脚本都会激活一个新对象,并且不会停用旧对象。

感谢您的帮助!

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ToggleTest : MonoBehaviour
{
public GameObject[] objects;
public int objCount = 0;


void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{

objCount += 1;
objects[objCount].SetActive(true);

}

}
}

最佳答案

如果我正确理解你的问题,试试这个:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ToggleTest : MonoBehaviour
{
public GameObject[] objects;
public int objCount = 0;
private float smallDelay = 0.1f;


void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && smallDelay <= 0)
{
objCount += 1;
objects[objCount].SetActive(true);
objects[objCount-1].SetActive(false); // this is only if you want to deactivate the previous object.
smallDelay = 0.1f;
}
smallDelay -= Time.DeltaTime;

}
}

这不是一个完美的代码,但因为您的函数的 if 语句是 Update() 方法之一,我认为它需要一点延迟。您还可以将 smallDelay 更改为更大的数字。

编辑

这是对您的评论的回答:

if (objCount == objects.Length)
{
objCount = 0;
object[objCount].setActive(false);
object[0].setActive(true);

}

将其添加到 if 语句或 Update() 的其他地方。

关于c# - 统一: Turn on one GameObject after the other with KeyPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65080776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com