微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法双击

如何解决无法双击

我有一个问题,我很长一段时间无法弄清楚自己。如果我在Unity中有一个多维数据集游戏对象,并且想在按空格键时将其颜色更改为红色,那么我所要做的就是编写脚本并编写:

void Update()
{

if (Input.GetKeyDown(KeyCode.Space))
    {
    GameObject Cube = GameObject.FindWithTag("Cube");

    Cube.GetComponent<Renderer>().material.color = Color.red;
    }
}

但是如果我想再次按空格键时将其颜色更改为蓝色怎么办?

解决方法

如果要在第二次单击时更改颜色,则只需添加一个If语句,即可检查该颜色是否已经与所需颜色相等,以及是否已将其更改为另一种颜色。

示例:

if (Input.GetKeyDown(KeyCode.Space)) {
    // Get Cube GameObject
    GameObject Cube = GameObject.FindWithTag("Cube");
    // Get the Cube Renderer
    Renderer rd = Cube.GetComponent<Renderer>();

    // Is the color equal to red if it already is,// change it to blue instead
    if (rd.material.color = Color.red) {
        rd.material.color = Color.blue;
    }
    else {
        rd.material.color = Color.red;
    }
}

不相关:

如果具有多维数据集标签的GameObject在游戏中保持相同的GameObject,我建议您在游戏开始时宁愿“获取” GameObject及其渲染器组件,而不必每次按空格键,以提高性能。

private GameObject cubeGO;
private Renderer cubeRD;

private void Start {
    // Get Cube GameObject
    cubeGO = GameObject.FindWithTag("Cube");
    // Get the Cube Renderer
    cubeRD = Cube.GetComponent<Renderer>();
}

您现在可以在Input.GetKeyDown(){}

中使用这些变量
if (Input.GetKeyDown(KeyCode.Space)) {
    // Is the color equal to red if it already is,// change it to blue instead
    if (cubeRD.material.color = Color.red) {
        cubeRD.material.color = Color.blue;
    }
    else {
        cubeRD.material.color = Color.red;
    }
}
,

例如,您可以使用变量is_red并在更新中检查其值。也许我不明白问题所在

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。