手电筒消失,但没有出现。 Unity3d C#

问题描述 投票:1回答:1

我想在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);
        }
    }
}
unity3d
1个回答
0
投票

该脚本与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);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.