Android上的Unity WWW类不起作用

时间:2014-10-13 15:34:31

标签: android mobile unity3d

我有这个简单的gui脚本,点击时打开一个url。我不需要在浏览器中实际打开url,因为它只是一个php文件的地址。我在PC上试用时代码运行正常,但是当我在Android设备上运行时没有任何反应。

以下是代码:

#pragma strict

var one = "192.168.0.125:8888/one";
var two = "192.168.0.125:8888/two";
Var three = "192.168.0.125:8888/three";
Var all = "192.168.0.125:8888/all";
function Start () {

}

function Update () {
Screen.orientation = ScreenOrientation.Portrait;
}

function OnGUI () {

if (GUI.Button (Rect (20,20,300, 75), "ONE")) {
   var ONE_ : WWW = new WWW(one);
}

else if(GUI.Button  (Rect(20,200,300, 75), "TWO")){
    var TWO_ : WWW = new WWW(two);
    }

else if(GUI.Button  (Rect(20,380,300, 75), "THREE")){
    var THREE_ : WWW = new WWW(three);
    }

else if(GUI.Button  (Rect(20,560,300, 75), "ALL")){
    var ALL_ : WWW = new WWW(all);
    }

}

任何想法?感谢

1 个答案:

答案 0 :(得分:0)

您不是在等WWW类完成请求。

您需要使用不同的方法声明WWW类(或使其成为类var)并使用yield语法等待它。

您的代码应如下所示:

#pragma strict

var one = "192.168.0.125:8888/one";
var two = "192.168.0.125:8888/two";
var three = "192.168.0.125:8888/three";
var all = "192.168.0.125:8888/all";
function Start () {

}

function Update () {
 Screen.orientation = ScreenOrientation.Portrait;
}

function CreateWWW(address)
{
  var wwwAccess : WWW = new WWW(address);
  yield wwwAccess;
}

function OnGUI () {

 if (GUI.Button (Rect (20,20,300, 75), "ONE")) {
  CreateWWW(one);
}

else if(GUI.Button  (Rect(20,200,300, 75), "TWO")){
 CreateWWW(two);
 }

 else if(GUI.Button  (Rect(20,380,300, 75), "THREE")){
 CreateWWW(three);
 }

 else if(GUI.Button  (Rect(20,560,300, 75), "ALL")){
  CreateWWW(all);
 }

}

这是指向Unity docs

的链接

此外,您不需要在每次更新时指定方向,您可以从PlayerSettings-> Resolution and Presentation-> Allowed orientation for Auto Rotation设置它。