我想在游戏中添加手电筒。当我按下按钮使其消失时,它消失了,但是当我按下按钮试图使其再次出现时,它没有消失。在过去的一个半小时里,我一直在寻找解决方案,并且也研究了文档,但没有找到任何东西。
using System.Collections.Generic;
using UnityEngine;
public class flashlight : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
gameObject.SetActive(true);
}
if (Input.GetKeyUp(KeyCode.Alpha2))
{
gameObject.SetActive(false);
}
}
}
答案 0 :(得分:2)
该脚本与gameObject
一起被停用,因此它没有监听Input.GetKeyUp(KeyCode.Alpha2)
。
要解决此问题,请创建一个空的GameObject来容纳脚本并使该灯光成为该GameObject的子代,然后在禁用该灯光时,脚本仍处于活动状态并监听Input
。
像这样更新脚本以分配轻子级
public class flashlight : MonoBehaviour
{
public GameObject light;//Assign this is the inspector
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
light.SetActive(true);
}
if (Input.GetKeyUp(KeyCode.Alpha2))
{
light.SetActive(false);
}
}
}