Unity3D中关于动态加载的问题:到底是全局变量的问题还是程序执行顺序的问题还是迭代器的问题呢?

是这样的,我有一个下载JSON数据的脚本,称为脚本1吧,从服务器上面下载的JSON数据我保存在了一个data的全局变量中,然后我想将这个data变量被使用到另外的一个脚本... 是这样的,我有一个下载JSON数据的脚本,称为脚本1吧,从服务器上面下载的JSON数据我保存在了一个data的全局变量中,然后我想将这个data变量被使用到另外的一个脚本(脚本2)中去,但是我打印出来的内容,在脚本1中的data内容是正确的,但是在脚本2中的内容却是空的,是不是程序执行的顺序的问题而导致了这种结果呢?或是什么其他的问题呢?
----------------------------------------------------------------------------------------------------------------
脚本1的截图,获取网上的JSON数据保存在data中

------------------------------------------------------------------------------------------
---------------------------------
这是脚本2的截图,需要使用脚本1中的data的数据

--------------------------------------------------------------------
--------------------------------------------------------------
这是另外一个脚本,是由MainMonoBehavior.cs来调用的,这边也有一个问题,就是当我将服务器的IP地址写正确的时候,我的Unity3D软件就会自动退出了,如果写错的话反而就不会自动退出。。。。

---------------------------------------------------------------------------------------------------------------------
---------------------------------------
---------------------------------------
希望能够得到大神们的指点!感激不尽!
展开
 我来答
hjs19871126
2013-01-03 · TA获得超过579个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:221万
展开全部
很明显啊!你脚本1中先读取,还没读取到的时候脚本2就直接调用了啊。
你应该先等待脚本1的先读取完再调用啊!
因为你的1当中yield return www了。所以这里会有一个等待时间。应该是一帧。
你可以把脚本2的Start函数改成Ienumerator的。等待1的读取完。
给个建议写法就是。脚本1添加一个静态变量,监控读取进度。
public static bool isGotData = false;//读取完直接变成true
脚本2中Ienumerator Start()
{
while(!脚本1.isGotData)

{yield return 0;}
//执行到这里就说明Data赋值完毕了。往下就执行你的操作吧!
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式