unity!不存在dialogRows!对话框系统设计问题!

救命啊!是unity!

img

我服了 这要咋办啊 救命 我跟着步骤来的 可是我的dialogRows就是出错了!
不存在名称“dialogRows”怎么解决啊!

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您提供的代码,存在一些问题。

  1. 在 ReadText 方法中,定义了一个名为 dialogRows 的字符串变量,但是在这个方法中并没有使用这个变量,所以编译器会报警告 "The variable 'dialogRows' is assigned but its value is never used"。您可以通过在 ReadText 方法中使用 dialogRows 变量,或者将其删除来解决这个警告。
  2. 在 ShowDialogRow 方法中,dialogRows 变量并没有被定义,导致编译器会报错 "The name 'dialogRows' does not exist in the current context"。要解决这个问题,您需要将 dialogRows 定义在类的成员变量中,而不是在 ReadText 方法中。然后在 ReadText 方法中给它赋值,以便在 ShowDialogRow 方法中使用。
    ·
    另外,还存在一些其他问题,例如在 ShowDialogRow 方法中,row 变量没有定义,应该改为 rows。同时,在 UpdateText 方法和 UpdateImage 方法中,应该使用 cells[1] 和 cells[2] 来获取对话框文本和图片的路径,而不是 cells[2] 和 cells[3]。

以下是修改后的代码示例:

public class Dialog : MonoBehaviour
{
    private string[] dialogRows;

    public void ReadText(TextAsset textAsset)
    {
        dialogRows = textAsset.text.Split('\n');
        Debug.Log("成功读取");
    }

    public void ShowDialogRow(int dialogIndex)
    {
        foreach (var rows in dialogRows)
        {
            string[] cells = rows.Split(',');
            if (cells[0] == "#" && int.Parse(cells[1]) == dialogIndex)
            {
                UpdateText(cells[3]);
                UpdateImage(cells[1], cells[2]);
                dialogIndex = int.Parse(cells[4]);
                break;
            }
        }
    }

    private void UpdateText(string text)
    {
        // 更新对话框文本
    }

    private void UpdateImage(string path1, string path2)
    {
        // 更新对话框图片
    }
}


希望这些修改能够帮助您解决问题。

命名错误

dialogRows是个局部变量,在前面的函数里定义的
你后面的函数如果想用,要声明为全局变量啊
这跟unity没有关系,这就是c#语法

dialogRows没有定义啊,你怎么定义的