我想在unity3d中向游戏添加手电筒。当我按下按钮使其消失时,它消失了,但是当我按下按钮试图使其再次出现时,它没有消失。在过去的一个半小时里,我一直在寻找解决方案,并且也研究了文档,但没有发现任何问题。帮助。
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);
}
}
}
该脚本与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);
}
}
}