You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity脚本:Update方法无法访问Start内定义的List<string>问题求助

解决Unity中Update无法访问Start内定义List的问题

问题核心是变量作用域:你在Start()方法里声明的Questions是局部变量,它的作用范围仅限Start方法内部,Update方法根本无法访问到这个变量。

解决方法很简单,把Questions提升为类的成员变量:

  • 在类的内部、所有方法之外声明List<string> Questions;
  • 在Start方法里只做初始化和添加元素操作,不需要重复声明变量类型

修改后的完整代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class QController : MonoBehaviour
{
    [SerializeField] string Qstring;
    [SerializeField] Text Qtext;
    [SerializeField] PlayerController PlayerController;
    
    // 将Questions声明为类的成员变量
    List<string> Questions;

    void Start()
    {
        string q1 = "Selimiye caminin mimarı bu camiyi ne olarak adlandırmıştır?";
        string q2 ="Selimiye Camiyi kim yapmıştır?";
        // ...
       
        // 仅初始化并添加元素
        Questions = new List<string>();
        Questions.Add(q2);
        // 可继续添加其他问题,比如 Questions.Add(q1);
        // ...
    }

    void Update()
    {
        // 现在可以正常访问Questions了
        Qstring=Questions[PlayerController.randomQnumber];
        Qtext.text=Qstring;
    }
}

额外提醒:要确保PlayerController.randomQnumber的取值在0到Questions.Count-1之间,避免触发索引越界错误。

内容的提问来源于stack exchange,提问作者bulletproofspirit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:20:48