如何从jslib插件Unity webgl调用外部javascript函数

2023-12-12

我现在正在开发一个 webgl 项目,我正在尝试从plugin.jslib 调用index.html 中的javascript 函数

我用谷歌搜索了一些方法,似乎它们不起作用。
有没有正确且简单的方法来做到这一点?

下面的代码是我尝试过的。

索引.html

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>%UNITY_WEB_NAME%</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.javascript"></script>
    <script src="%UNITY_WEBGL_LOADER_URL%"></script>
    <script type="text/javascript">
        window.CheckLoad = function(){ window.alert('It is working!!'); };
    </script>
    <script>
        var gameInstance = UnityLoader.instantiate("gameContainer", "%UNITY_WEBGL_BUILD_URL%", {onProgress: UnityProgress});
    </script>
</head>
<body>
 ...
</body>
</html>

插件.jslib

mergeInto(LibraryManager.library {
    Loaded: function()
    {
        window.CheckLoad();
    },
}); 

Unity C# 脚本

public class blablabla : MonoBehaviour
{
    [DllImport("__Internal")]
    private static extern void Loaded();

    public static void IsLoaded()
    {
#if !UNITY_EDITOR && UNITY_WEBGL
        Loaded();
#endif
    }

    void Start()
    {
        IsLoaded();
    }
}

嗯..我很傻。
事实证明这是我的错误,而且做这些事情的方法很简单。

对于那些可能有同样问题的人,请检查以下代码。

索引.html

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>%UNITY_WEB_NAME%</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.javascript"></script>
    <script src="%UNITY_WEBGL_LOADER_URL%"></script>
    <script>
        var gameInstance = UnityLoader.instantiate("gameContainer", "%UNITY_WEBGL_BUILD_URL%", {onProgress: UnityProgress});

        function CheckLoad(){
           window.alert("WORKING~!");
        }
    </script>
</head>
<body>
 ...
</body>
</html>

插件.jslib

var plugin = {
    Loaded: function()
    {
        CheckLoad();
    }
};

mergeInto(LibraryManager.library, plugin);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从jslib插件Unity webgl调用外部javascript函数 的相关文章

随机推荐

  • Firebase 与 Swift 3 计算儿童数量

    我有一个字符串数组 我正在尝试通过 firebase 填充它 它是一个聊天应用程序 当用户创建房间时 他或她会为该房间命名 当用户登录并进入登陆页面时 它会查询他或她正在参与的所有房间 我希望它填充表格视图 在 firebase 文档中 我
  • javascript onclick create(element) div viz 弹出框

    我正在尝试制作一个弹出框 单击按钮即可调用该弹出框 这就是我到目前为止所得到的 http jsfiddle net WGPhG 2 这是一个真正可以做你想做的事情的小提琴 http jsfiddle net WGPhG 6 JS funct
  • PrimeFaces 验证器未触发

    由于 fileLimit 不再存在于 primefaces 3 4 中 我正在尝试解决实现验证器的问题 问题是方法 validate 从未被调用 这是我的验证器 FacesValidator value fileLimitValidator
  • 需要帮助使用 C++ 在 Linux 环境中的现有应用程序中生成击键

    我需要帮助在 LINUX 环境中的现有应用程序中生成击键 我完全知道 Dev C 中有一些库可以完全满足我的需求 但在 Windows 中 我需要在 Linux 中实现类似的功能 我用谷歌搜索了很多 但找不到任何解决方案 下面是 Dev C
  • .htaccess 重写 url 并删除 .php

    我想通过 htaccess 文件从 url 中删除 php 例如home php to home我在 htaccess 文件中使用以下重写规则 RewriteRule 1 php L 我还想重写网址 例如 detail php ca 38
  • C++为类成员函数分配一个lambda函数以提高计算效率[重复]

    这个问题在这里已经有答案了 更新 改写 我希望通过将类成员函数的运行时分配给以其他类成员为条件的许多函数之一来提高代码的计算效率 一种推荐的解决方案使用 include
  • 如何正确地将 Angular 2 (npm) 升级到最新版本?

    最近我开始了 Angular 2 教程https angular io docs ts latest tutorial 并停止了 Angular 2 beta 8 现在我恢复了教程 最新的测试版是测试版 14 如果我只是这样做npm 更新一
  • C# 中的 SafeFileHandle 是什么?何时应该使用它?

    当我还在学习 System IO 时 File Streamclass 的构造函数 我发现存在类型名为的重载构造函数SafeFileHandle 我尝试在互联网和MSDN文档上搜索 但我什么都看不懂 我发现even stranger这样的词
  • Android 小部件在 x 时间后更新

    我刚刚开始学习 Android 我正在尝试编写一个小部件 它每秒更新一次计数器 但在某个地方它缺少一些东西 我在屏幕上看到 1 我正在使用 Android 4 模拟器 package com ibluekey import java tex
  • 扩展 WP_List_Table / 处理插件管理中的复选框选项

    我正在开发一个 WordPress 插件 该插件的一部分需要扩展 WP List Table 并将该表中签入的任何项目存储到选项中 我已经设法弄清楚如何正确设置和显示所需的表格 但如何处理存储选中的选项 这是我到目前为止所得到的 class
  • 用于验证 dd-Mmm-yyyy 格式日期的正则表达式

    我有一个需要验证的文本输入框 用户应该只能输入 dd Mmm yyyy 格式的日期 例如 2013 年 6 月 1 日 2015 年 8 月 31 日等 或者他们应该能够输入 T 1 T 2 T 99 我可以使用什么样的正则表达式模式来验证
  • Cypher zip 集合

    如果我有两个集合 我如何将它们压缩在一起 with 1 2 3 as nums a b c as letters wat do return zipped a 1 b 2 c 3 可能无法动态分配映射键 例如 使用letters 但此查询将
  • 我可以在运行时以编程方式设置“android:layout_below”吗?

    创建时是否可以相对布局在运行时设置相当于android layout below以编程方式 Yes RelativeLayout LayoutParams params new RelativeLayout LayoutParams Vie
  • 如何在Python中从补丁中恢复3D图像?

    我有一个带有形状的 3D 图像DxHxW 我成功地将图像提取成补丁pdxphxpw 重叠的补丁 对于每个补丁 我都会进行一些处理 现在 我想从处理后的补丁生成图像 以便新图像必须与原始图像具有相同的形状 你能帮我做一下吗 这是我提取补丁的代
  • C# 编译器是否足够智能来优化这段代码?

    请忽略此问题中的代码可读性 从性能上来说 下面的代码是否应该这样写 int maxResults criteria MaxResults if maxResults gt 0 while accounts Count gt maxResul
  • 应用 tm 方法“stemCompletion”时一个变量的多个结果

    我有一个语料库 其中包含 3 个变量 ID 标题 摘要 的 15 个观察结果的期刊数据 我使用 R Studio 从 csv 文件中读取数据 每个观察一行 在执行一些文本挖掘操作时 我在使用 StemCompletion 方法时遇到了一些麻
  • 如何使用共享库运行 LLVM 解释器?

    I have mylib c具有某些功能的文件 我想使用我的这些功能 c文件作为已编译的 llvm 代码中的外部文件 我正在使用 LLVM 解释器 lli 4 0 我想知道我怎么知道lli使用我的函数 c file lli has a lo
  • 如何在delphi10中使用IdHTTP登录Instagram网站

    我正在尝试在 Delphi 中使用 idhttp 登录 Instagram 网站 我使用谷歌浏览器开发者工具来获取数据 这是我到目前为止所尝试过的 procedure TForm1 Button1Click Sender TObject v
  • 如何从数组中删除元素

    您好 我正在编写一些遗留代码 其内容类似于 for int i results Count 1 i gt 0 i if someCondition results Remove results i 对我来说 在仍然迭代循环的同时删除元素似乎
  • 如何从jslib插件Unity webgl调用外部javascript函数

    我现在正在开发一个 webgl 项目 我正在尝试从plugin jslib 调用index html 中的javascript 函数 我用谷歌搜索了一些方法 似乎它们不起作用 有没有正确且简单的方法来做到这一点 下面的代码是我尝试过的 索引