【发布时间】:2018-04-18 02:13:46
【问题描述】:
我是 Unity 和 C# 的初学者。我尝试构建一个基本游戏,当按下一个键时,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);
}
}
}
请告诉我错误在哪里。
【问题讨论】:
-
假设此脚本在游戏对象上,您在停用游戏对象时禁用正在运行的脚本。你应该把这个脚本放在某种管理器上,这样它就不会在游戏对象被禁用时被禁用。
-
它有效。我创建了一个父游戏对象并将当前游戏对象添加到它。但是我注意到 GameObject 闪烁,并且它并不总是在我按下键后立即消失并出现,关于为什么会发生这种情况的任何建议?
-
因为您正在检查每一帧要按下的空间,所以它试图每帧翻转它。请改用
Input.GetKeyDown(KeyCode.Space))。这只会检查它被推送的第一帧。 -
它帮助我解决了这个问题。我可以将您的评论作为我发布的问题的答案吗?
-
我会把它作为答案发布,给我几分钟 :) 编辑:作为答案发布