如何统一切换切换 Input.GetKeyDown ?

How can I switch toggle Input.GetKeyDown in unity?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DroidMove : MonoBehaviour
{
    public GameObject droid;

    private void Start()
    {
        droid.SetActive(false);
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.D))
        {
            droid.transform.position = droid.transform.position - transform.forward;
            droid.SetActive(true);
        }
    }
}

我希望一旦我点击 D 它就会显示机器人,而且当我移动相机(变换)时机器人会跟随相机。

当我再次点击 D 时,将 droid active 设置为 false,这样每次我点击 D 时,它都会在 SetActive false 和 true 之间切换。

要切换对象,您应该使用类似这样的方法。伪

if (Input.GetKeyDown(KeyCode.D))
        {

            droid.enabled = !droid.enabled;
        }

这将允许您在每次按下按钮 D 时切换游戏对象。

在 KeyDown 中

droid.transform.position = droid.transform.position - transform.forward;

这只会工作一次(一帧)。因此,您可以使用 bool 或检查您的游戏对象是否处于活动状态以跟随您的相机。在更新中您可以使用以下

if (droid.activeInHierarchy == true) // or you can use a bool here
        {
            droid.transform.position = droid.transform.position - transform.forward;

        }

希望这对您有所帮助。干杯!