我是 Unity 和 C# 的初学者。我尝试构建一个基本游戏,当按下一个键时,游戏对象在场景中的存在会被切换。当我按下“Space”时,GameObject 确实消失了,但当我再次按下同一个键时,它再也不会出现。以下是代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
private GameObject aj;
private bool flag = true;
void Start () {
aj = GameObject.FindGameObjectWithTag("robo");
}
void Update () {
if (Input.GetKey(KeyCode.Space))
{
flag = !flag;
aj.SetActive(flag);
}
}
}
请告诉我错误在哪里。
最佳答案
将此作为答案发布给 future 的观众:
游戏对象没有重新出现的主要原因是当您关闭该对象时,附加到它的脚本也会被禁用。为了解决这个问题,您必须在不同的对象上使用脚本来禁用它。我通常使用一个管理器对象,它只是一个带有脚本的空游戏对象。
您的代码中的第二个问题是您在更新中使用 if(Input.GetKey(KeyCode.Space))
,这将尝试在每一帧更改它。将其更改为 if(Input.GetKeyDown(KeyCode.Space))
以使其仅在按下的第一帧上为真。
关于c# - GameObject在Unity中消失后不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49884583/