如何通过 Unity 使用 WebGL/C# 在新选项卡上打开 link?

How to open a link on a new tab using WebGL/C# through Unity?

当前通过我的游戏打开 link 会在同一界面中打开 link。我希望它在新选项卡上打开。我尝试研究插件和诸如此类的东西,以便 .jslib 文件与 Unity 项目交互,但我也遇到了问题。我是这种交互的新手,所以我在查找插件检查器本身时也遇到了问题。

目前,我的代码是这样做的:

private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            Application.OpenURL("www.google.com");
        }
    }

所以这会在同一个浏览器上打开 link。我试图做到这一点,当用户点击 return 键时,他们会在新浏览器上打开 link。

感谢任何帮助!

一种正确的方法是使用 .jslib 文件

Assets/plugins/plugin.jslib

var plugin = {
    OpenNewTab : function(url)
    {
        url = Pointer_stringify(url);
        window.open(url,'_blank');
    },
};
mergeInto(LibraryManager.library, plugin);

您的 C# 脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class OpenURL : MonoBehaviour
{
    [DllImport("__Internal")]
    private static extern void OpenNewTab(string url);

    public void openIt(string url)
    {
#if !UNITY_EDITOR && UNITY_WEBGL
             OpenNewTab(url);
#endif
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            openIt("www.wateverurluwant.com");
        }
    }
}

统一的另一种解决方案。您仍然可以使用 ExternalEval,即使它已被弃用:

Application.ExternalEval("window.open('" + YourLink + "', '_blank')");

当前的解决方案(从 Unity 2019 左右开始)是 Alienator5000 最初尝试的解决方案,带有“Application.OpenURL”。
它现在会在新标签页中打开您的 URL。您可以在我对 .

的回复中看到更多详细信息

祝你有愉快的一天:)