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

时间:2019-10-09 20:08:35

标签: c# scope variable-declaration

我有一个错误说:(错误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键时动画会再次旋转。

1 个答案:

答案 0 :(得分:3)

这是因为您已经声明了变量。

bool的内部范围中删除if

bool facingLeft = true;
bool facingRight = false;

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

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

C# Variable Scopes