我遇到错误CS0136,但找不到解决方案

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

我有一个错误的说法:(错误CS0136:无法在此范围内声明名为'faceingRight'的本地或参数,因为该名称在封闭的本地范围内用于定义本地或参数)。我对此很陌生,所以我不知道它在说什么,也无法在网上找到有关它的任何信息。如果任何人都可以在这里帮助我,那就太好了

我正在尝试在Unity中制作动画翻转,但是我不特别记得我尝试过的内容

    bool facingRight = true;
    bool facingLeft = false;

    if (facingRight == true && facingLeft == false)
    {
        if (Input.GetKey("a"))
        {
            transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
            bool facingRight = true;
            bool facingLeft = false;
        }
    }

    if (facingLeft == true && facingRight == false)
    {
        if (Input.GetKey("a"))
        {
            transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
            bool facingLeft = true;
            bool facingRight = false;
        }
    }

预期的结果是,我的动画在按a键时会旋转,然后在按d键时会再次旋转。

c# scope variable-declaration
1个回答
3
投票

因为您已经声明了变量。

bool的内部范围中删除if

bool facingLeft = true;
bool facingRight = false;

并且在if之间添加else以避免冲突。

但是也许您最好根据目标使用不同的名称来获得更好的代码味道。

C# Variable Scopes

© www.soinside.com 2019 - 2024. All rights reserved.