手电筒消失,但不出现

时间:2019-12-22 16:31:45

标签: c# 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);
        }
    }
}

1 个答案:

答案 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);
        }
    }
}