Javascript 如何从Unity内部检索页面信息?

Javascript 如何从Unity内部检索页面信息?,javascript,unity3d,dom,Javascript,Unity3d,Dom,我需要在两个方向上与页面进行统一Web组件通信 这是我从第页执行Unity函数的方式: <script> var gameInstance = UnityLoader.instantiate("gameContainer", "https://propper_url/Build/_Builds.json", {onProgress: UnityProgress}); function unityObjectFun(index) { gameI

我需要在两个方向上与页面进行统一Web组件通信

这是我从第页执行Unity函数的方式:

<script>
    var gameInstance = UnityLoader.instantiate("gameContainer", "https://propper_url/Build/_Builds.json", {onProgress: UnityProgress});

    function unityObjectFun(index)
    {
        gameInstance.SendMessage ("ObjectInstance", "objectFunctionName", index);
    }
</script>

<a onclick="unityObjectFun(1)">invoke</a>

<div class="webgl-content">
    <div id="gameContainer" myValue="need this to read from Unity"></div>
</div>

var gameInstance=UnityLoader.instantiate(“gameContainer”,”https://propper_url/Build/_Builds.json“,{onProgress:UnityProgress});
函数unityObjectFun(索引)
{
gameInstance.SendMessage(“ObjectInstance”、“objectFunctionName”、索引);
}
援引
但我怎么能反过来做呢。是否可以从Unity检索myValue


或者,是否可以通知页面Unity加载了场景并开始播放,以便我可以向其发送myValue?

要从Unity WebAssembly在页面上执行任何JavaScript代码,需要两件事:

  • 创建Javascript代码作为插件
  • 在Unity脚本中导入代码
  • 本指南介绍了整个过程:

    插件代码必须位于Assets/Plugins/pluginname.jslib路径中(扩展很重要),并且具有类似的结构:

    mergeInto(LibraryManager.library, {
        Hello: function () {
            window.alert("Hello, world!");
        },
        HelloReturn: function () {
            return "Hello, world!";
        }
    }
    
    要使用它,需要导入:

    using System.Runtime.InteropServices;
    
    public class NewBehaviourScript : MonoBehaviour {
    
        [DllImport("__Internal")]
        private static extern void Hello();
    
        [DllImport("__Internal")]
        private static extern string HelloReturn();
    
        void Start() {
            Hello();
            Debug.log(HelloReturn());
        }
    }
    

    你读过Unity3d资源吗?读过。我刚刚解决了这个问题。如果你不介意的话,你能为将来的搜索者发布一个你的问题的解决方案吗?我在从extern函数返回字符串时遇到了一些问题。我在返回前打印值,它是有效的,但在返回后,字符串显示为空。我该如何解决这个问题?你可能想把它写成一个新问题