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

时间:2017-12-22 13:05:05

标签: c# unity3d unity5

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它会显示Droid,当我移动相机(变换)时,机器人将跟随相机。

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

1 个答案:

答案 0 :(得分:1)

要切换对象,您应该使用类似的东西。伪

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

            droid.enabled = !droid.enabled;
        }

每次按下按钮D时,您都可以切换游戏对象。

在KeyDown中

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

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

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

        }

希望这会有所帮助。干杯!