Unity C#Application.OpenURL不使用变量输入

时间:2017-07-11 16:22:12

标签: c# unity3d coroutine

我正在Unity中构建一个应用程序,我有一个按钮,使用Application.OpenURL()在点击时将用户带到某个页面。到目前为止,我在双引号中使用完全类型化的url名称作为OpenURL函数的参数,并且它按照我的意图工作。当我按下按钮时,页面在浏览器中打开了。

为了合并多个可能的url,我已将参数更改为名为url_name的字符串变量。由于此更改,按下相同的按钮时没有任何反应。我的代码目前看起来像这样:

IEnumerator alertPopUp(string metaData_Content){

        if (alertDelay)
        {
            yield return new WaitForSeconds (alertDelayLength);
        }

        string[] tokens = metaData_Content.Split (',');
        string sign_name = tokens [0];
        string url_name = tokens [1];

        string template = "You discovered {0}";
        string data = sign_name;
        string message = string.Format(template, data);


        MNPopup popup = new MNPopup ("Honorary Chicago", message);
        popup.AddAction ("Find out more!", () => {Application.OpenURL(url_name);});
        popup.AddAction ("Not now", () => {Debug.Log("action 2 action callback");});
        popup.AddDismissListener (() => {Debug.Log("dismiss listener");});
        popup.Show ();
}

注意:

  • 以MNPopup开头的块利用了我从构建格式弹出窗口的资产商店获得的插件。我不相信它与问题有任何关系,特别是因为当我输入一个字符串时脚本按预期工作。
  • 我尝试使用Debug.Log(url_name)代替Application.OpenURL()进行测试。日志按预期显示了正确的URL,因此url_name似乎是我想要的值。

问题:

为什么Application.OpenURL()函数在键入字符串时有效,但在输入字符串变量时却无效?

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题。就我而言,它是由变量字符串末尾的换行符引起的。在类似情况下-尝试 url_name.Trim() 也许对您来说有点迟了,但它可能对其他人有帮助...