我正在使用Parse进行我正在开发的游戏。 一切都没问题,直到我尝试uplad一个文件,无论他的扩展我总是得到这个错误:“get_version只能从主线程调用”
URL = http://www.hostingpics.net/viewer.php?id=764075parseError.png
这是我的剧本:
byte[] data = System.Text.Encoding.UTF8.GetBytes("Working at Parse is great!");
ParseFile file = new ParseFile("resume.txt", data);
Task saveTask = file.SaveAsync();
var player = new ParseObject ("FilesLibrary");
player ["Number"] = 155;
player ["Files"] = file;
saveTask = player.SaveAsync();
我试图将此脚本放在不同的地方,但我总是遇到同样的问题。
答案 0 :(得分:0)
我猜你需要强制你的Parse查询在Main Thread
上执行。
public readonly static Queue<Action> ExecuteOnMainThread = new Queue<Action> ();
在此队列中添加查询方法。像
ExecuteOnMainThread.Enqueue (() => {
StartCoroutine (SaveData (ID, playerName)); });
在SaveData() Coroutine
中,您需要执行Parse查询。
最后:
void Update()
{
while (ExecuteOnMainThread != null && ExecuteOnMainThread.Count > 0)
{
Action currentAction = ExecuteOnMainThread.Dequeue();
if (currentAction != null)
{
currentAction.Invoke ();
}
}
}
答案 1 :(得分:0)
很奇怪,相同的脚本可以使用unity 4.6但不是5.1!
答案 2 :(得分:0)
在尝试将文件保存到db对象之前,需要先确保将文件上载到Parse。
Parse Unity文档不是很好,因为它不适合Unity的线程模型。我建议使用协同例程来完成所有Parse调用。
我也在Unity Answers上发布了这个,但你明白了......
[id="areabarchart2"] {
# CSS goes here
}
[id="areabarchart1"] {
# CSS goes here
}