首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重发为空的2D数组

重发为空的2D数组
EN

Stack Overflow用户
提问于 2013-03-15 14:54:27
回答 1查看 146关注 0票数 2

我正在进行一个项目,它要求我访问多个不同的2D数组,以便进行会话映射。我有两个不同的类,talkinterface是调用另一个对话类的代码的主类。但是,当我调用它并显示string[]时,它将被返回为Null。有人能帮我解决这个问题吗?我用C#用MonoDevelop编写,使用统一游戏引擎,代码如下所示。

主类talkinterface部分代码:

代码语言:javascript
复制
...public class talkinterface : MonoBehaviour {



....ai = new string[,]{
      {"",""}   
    };  



public static void eOption(bool eval, string response){
    if(response == "bus"){
        Debug.Log (ai); //DISPLAYS string[]
        responses = busstationconvo.responses;
        ai = busstationconvo.ai;
        Debug.Log (busstationconvo.responses); //DISPLAYS null
        Debug.Log (ai); //DISPLAYS null
    }
 }

第二类busstationconvo完整代码:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;

public class busstationconvo : MonoBehaviour {
public static string[,] ai;
public static string[,] responses;
// Use this for initialization
void Start () {
    ai = new string[,]{
        {"Hola, bienvenido al estacion del autobus." , "0"},
        {"Estoy bien y tu?", "1"},
        {"Esta es el estation de autobuses.","2"},
        {"Que necesitas?","3"},
        {"Si, tengo un boleto, cuesta dos dolares.","4"},
        {"Para usar el autobus, necesitas un boleto.","5"},
        {"Gracias, aqui esta tu boleto.","6"}   

    };
    responses = new string[,]{
        //HOLA 0
        {"Hola, como estas? ","1"},
        {"Que es este lugar?","2"},
        {"Necesito ayuda por favor.","3"},
        {"Adios.","999"},
        //ESTOY BIEN Y TU? 1 
        {"Estoy bien, adios ","999"},
        {"Bien, pero que es este lugar?","2"},
        {"Bien pero, necesito ayuda por favor.","3"},
        {"Adios.","999"},
        //THIS IS THE BUS STATION 2
        {"Claro, adios.","999"},
        {"Gracias, pero necesito ayuda por favor","3"},
        {"Adios.","999"},
        {"","2"},
        //WHAT HELP DO YOU NEED 3
        {"Nada, adios.","999"},
        {"Necesito un boleto.", "4"},
        {"Necesito un autobus.","5"},
        {"Adios.","999"},
        //IT COSTS 2 DOLLARS 4
        {"Que caro, no gracias.","999"},
        {"Que ganga! Tengo dos dolares.", "6"},
        {"Por su puesto, tengo dos dolares.","6"},
        {"Adios.","999"},
        //YOU NEED A TICKET 5
        {"Tienes un boleto?","4"},
        {"","5"},
        {"","5"},
        {"","5"},
        //HERE’S YOUR TICKET 6
        {"Gracias, adios.","999"},
        {"","6"},
        {"","6"},
        {"","6"}
    };
}

// Update is called once per frame
void Update () {

}

}

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2013-03-15 15:02:29

Unity中的Monobehaviors运行在Unity自己的初始化方案中--使用构造函数或静态方法将数据填充到它们中是不可靠的,因为团结是在膨胀对象和连接已经填充在团结检查器视图中的关系。您希望在代码中完成的初始化需要在Start()函数中触发(正如注释所述)。

您正在通过第一个对象上的一个静态方法访问代码,因此这很可能会在Unity对第二个行为运行之前运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15435487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档