unity webgl与 js 交互

Unity 2021 发布WebGL之后, 实现和网页(JS)进行交互 Unity WebGL JS 交互 阅读详情

前言

最近发布到 webgl 平台还是有很多坑 需要注意 。


一、发布webgl 方式

第一种方式:

1,点击 unity buildsetting 页面 build and run

第二种方式:

搭建一个springboot 服务器 然后把 build出来的 三个文件 放在
在这里插入图片描述
访问:
http://localhost:8080/Web/index.html

二、unity 与js 交互 架构

定义js 方法

var myPlugin = 
	{
	   **//加入自己的方法
	   // 这里写的方法 不要有lamda表达式 试过 编译不了
       //
     **
	   UpLoad: function()
	   {}
	}
mergeInto(LibraryManager.library, myPlugin );

c# : 调用

  [DllImport("__Internal")]
    private static extern void UpLoad();

JS 调用js

在myPlugin 中的方法是不能相互调用的 我测试调用会找不到,如果想写一个全局能调用的方法 或者全局变量 在 index.html 中写

在这里插入图片描述
或者写在另外一个 js 文件中 在index.html 中
<script src="Build/UnityLoader.js"></script> 像这样包含进来。

js调用c#

SendMessage('MyGameObject', 'MyFunction', 5);

//MyFunction 一定要定义成 public
//

string 如果是js返回值 是一个string

 StringReturnValueFunction: function () {
    var returnStr = "bla";
    var bufferSize = lengthBytesUTF8(returnStr) + 1;
    var buffer = _malloc(bufferSize);
    stringToUTF8(returnStr, buffer, bufferSize);
    return buffer;
  }

如果是参数 直接传值可以:

SendMessage('MyGameObject', 'MyFunction', "string");

//MyFunction 一定要定义成 public
//

js 全局变量:

myPlugin 中方法不能互相调用, 在多个C# 和 js方法 间 共享内存:

window.test ="123";
document.test= "123";

总结

参考文献:

https://docs.unity3d.com/cn/current/Manual/webgl-interactingwithbrowserscripting.html

Unity WebGL与JavaScript交互实战:从原理到.jslib与SendMessage应用 跨语言调用是Web开发中的基础技术概念,它允许不同编程环境下的代码模块进行通信与协作。其核心原理在于通过特定的接口或桥接机制,实现数据交换与函数调用。在游戏开发与Web应用融合的场景中,这项技术的价值尤为突出,它能够将高性能的游戏引擎能力与丰富的Web生态API相结合,从而拓展应用的功能边界与部署灵活性。具体到Unity引擎的WebGL平台,开发者常需实现C#逻辑与网页JavaScript的互操作,以接入支付、社交分享、DOM操作等浏览器原生功能。本文聚焦于Unity WebGL与JS交互的两种主流方案:通 阅读详情

相关推荐

unity三维图形如何跟vue前端页面做集成交互

Unity发布WebGL游戏或应用程序时,会将Unity项目编译成一个可以在网页浏览器中运行的JavaScript文件。这个文件通常包含游戏的全部逻辑和资源,可以通过HTML页面嵌入到网页中。要与前端Vue页面交互,你需要使用JavaScript来桥接Unity WebGL环境和Vue环境。

猿脑2.0的博客 1797

UnityWebgl和js通讯

使用unity开发webgl避免不了和web端进行通讯,废话不多说直接上代码。 1.unity向js通讯代码 c#代码: /// <summary> /// unity向js发送消息 /// </summary> public void UnityToJs() { Debug.LogError("Unity向...

weixin_33693070的博客 1133

树上柑橘检测实战:自制数据集与YOLO训练全流程复盘

目标检测模型的性能上限往往由训练数据决定,尤其在农业视觉这样的复杂场景中,公开数据集与真实环境的差异常导致模型漏检、误检频发。高质量的标注数据是模型泛化的基础,从采集、清洗到统一标注规范,每一步都直接影响最终效果。对于检测任务而言,VOC与YOLO两种主流标注格式的转换是工程落地的常见环节,理解坐标归一化原理并做好校验,能有效避免训练事故。在模型训练阶段,合理划分数据集、谨慎选择数据增强策略,并结合切片推理解决小目标漏检,是果园场景下提升精度的关键。这套基于2511张果树图像的单类别检测流程,不仅支撑了柑橘

weixin_29057163的博客 230

如何让Unity打包的WebGL与Js进行通信

使用Unity发布WebGL项目免不了要与Js进行通信,所以整理下相关知识。 一 Unity调用Js方法 1.弃用的方法 (1)在发布的WebGL项目的index.html添加Exit函数: function Exit() { alert("UnityToWeb") } (2)如果想在Unity中调用方法,添加代码: Application.ExternalCall("Exit");//调用...

白夜的博客 6985

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.csdn.net/download/che

chengbaola的博客 1365

企业微信群机器人配置全攻略:从零到消息推送的完整流程

本文详细介绍了企业微信群机器人的配置与使用全流程,从零开始指导如何创建机器人、获取Webhook地址,到通过HTTP请求发送文本、Markdown、图片及模板卡片等多种消息类型。内容涵盖核心的接口配置、安全实践及实战应用场景,帮助开发与运维团队快速构建自动化消息推送中枢,提升协作效率。

weixin_29231725的博客 839

Unity中WEBGL平台下【Unity中调用JS上的方法】【JS调用Unity中的方法】

官方文档:【传送门】 WEBGL平台下【调用JS上的方法】 最近开发WEBGL平台上的项目,很多时候我们需要在Unity中调用网页端的方法而不是在Unity内部调用,比如场景中点击音效(为了减少打包包体大小采取了在网页上播放音效),点击按钮跳转新的场景等等等等应用场景。 首先创建一个后缀为`.jslib`的文件测试代码如下,放置在Assets文件夹下的Plugins文件夹下。 mergeInto(LibraryManager.library, { UnityToJs_Simple: function

加加油! 5795

相控阵多功能雷达工作模式识别技术综述

本文综述了相控阵雷达工作模式识别技术的研究进展。首先介绍了相控阵雷达的典型工作模式分类及其信号特征参数,包括搜索模式(VS、RWS、TWS)、跟踪模式(STT、MTT、TAS)和其他模式(SAM、SAR)等。随后重点阐述了基于信号特征的识别方法,包括时域特征(PRI分析、脉冲幅度包络、数据率)、频域特征(载频变化、调制方式)和混合特征分析方法。最后讨论了当前技术面临的挑战与发展趋势,包括复杂信号环境下的识别难题、新型雷达技术的适应需求以及深度学习技术的应用前景。该领域的研究对电子侦察和威胁评估具有重要意义。

Grow into a more wonderful you 1795

Unity发布WebGL运行Js代码报错:‘Pointer_stringify‘ is obsoleted and will be removed in a future Unity version.

关于Unity发布WebGL运行Js下载文件的代码报错:The JavaScript function 'Pointer_stringify(ptrToSomeCString)' is obsoleted and will be removed in a future Unity version. Please call 'UTF8ToString(ptrToSomeCString)' instead。文章给出解决方法。

他在试图用代码书写这个世界,字里行间温柔尽显。勿忘初心,努力做有价值的技术文章。 3691

miniDP与DP管脚定义差异详解及设计避坑指南

本文详细解析了Mini DisplayPort与标准DisplayPort接口在管脚定义上的核心差异,通过对比表格直观展示了两者20针脚的不同排列方式,特别是高速差分信号线的分布。文章结合真实设计案例,为硬件工程师提供了从原理图设计、PCB布局到信号完整性考量及故障排查的完整避坑指南,强调绝不能将两者视为简单的物理缩小版。

weixin_29248653的博客 362

【DRAM存储器四十七】LPDDR5介绍--LPDDR5的低功耗技术之DVFS

讲述LPDDR5的DVFSC和DVFSQ的工作原理和要求

highman110的博客 899

Unity WebGL和JS通信

1. Unity调用JS方法1. Unity调用JS方法1.1 在Assets文件夹下新建Plugins文件夹并在该文件夹下新建.jslib扩展名文件(名称无所谓)1.2 在.jslib扩展名文件新增以下代码(标准格式)1.3 创建JS方法1.4 调用JS方法。

Test_Two的博客 2315

深度学习框架对比:AI开发如何选择

你是否遇到过这样的困惑:想做一个图像分类模型,朋友推荐PyTorch;公司要部署智能客服,同事说用TensorFlow;想快速验证想法,学长又提到Keras……深度学习框架种类繁多,功能重叠却各有侧重。本文将覆盖主流框架(PyTorch/TensorFlow/Keras/JAX/MXNet等),从开发者真实需求出发,总结选择框架的核心维度。本文将按照“认识框架→对比特性→实战选择”的逻辑展开:先通过生活比喻理解各框架特点,再用代码对比核心功能,最后结合真实场景给出选择建议。动态计算图。

AI 领航者的博客 1162

Unity3D开发之WebGL平台上 unity和js前端通信交互

一.老版方法 unity发布webplayer平台后会输出html和unity3d文件。我们的程序主要被打包在unity3d文件里,而html则是网页的界面显示。 1.Unity发送消息给JS unity想要和js交互,提供了一个函数:Application**.ExternalCall()**;此函数仅限于webplayer平台下。我们编辑发布的html文件,在里面加入我们的js脚本如下: fu...

weixin_43149049的博客 1万+

【车联网】Automotive 软件过程能力成熟度模型——ASPICE标准入门介绍

ASPICE标准详细定义了与汽车电子软件开发相关的各种术语和概念,包括软件组件、系统集成、测试和验证等。这些定义确保了所有开发团队在使用相同术语时具有一致的理解。

奶爸的编程之路,也就一周冷个三天 2677

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Unity-WebGL发布之C#与JS通信交互

版本:Unity2020.3.28 官方文档 最近项目要发布到WebGL,最近刚开始捣鼓。目前要实现Web端播放rtsp,看了很多文章都是在web端解决unity发布WebGL后如何播放rtsp。本人亲测了UMP2.0.3插件,可以在window下现实rtsp播放,但发布到Web端后会提示跨越错误,希望有大佬可以指点指点。 既然准备在web端解决unity发布WebGL后如何播放rtsp的问题,那么在发布WebGL后C#如何与JS通信交互呢? 直奔主题 1.在 Assets 文件夹中的“Plugi

NslCarry的博客 4417

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Unity WebGl平台用C#跟JS交互

Unity WebGl平台用C#跟JS交互Unity WebGL Unity WebGL 先贴上官方文档入口 https://docs.unity3d.com/2018.4/Documentation/Manual/webgl-interactingwithbrowserscripting.html链接 在你的项目里定义js前端响应事件(特性、关键词、返回值、函数名、参数) // 定义JS函数 [DllImport("__Internal")] private static extern void

sun5271的博客 2301

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Unity WebGL、js发布交互

Unity WebGL、js发布交互

chenwenlong72的博客 1299

Unity发布WebGL使用JavaScript交互

本文介绍了Unity WebGL与HTML页面交互的方法。主要内容包括:1)通过jslib文件实现C#调用JavaScript方法,需要注意字符串转换;2)调用页面自带JavaScript函数的方法;3)修改HTML元素内容和样式的具体步骤。文章通过创建jslib插件、C#方法声明和调用示例,详细说明了如何实现Unity与HTML的双向通信,并提供了测试按钮来验证交互效果。特别强调了WebGL项目必须通过服务器访问,以及字符串参数需要UTF8ToString转换等注意事项。

阿赵的博客 1565

Unity Webgl与JS相互交互 Unity 2021.2之后的版本

后边直接看官方文档里边的里边就可以了。

charlsdm的博客 1290

Unity 发布WebGL并与JS进行传参交互

    Unity发布WebGL后&lt;head&gt;标签中脚本内容为:var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebGlTest.json", { onProgress: UnityProgress });    在其后添加交互方法GetName:var gameInstance = UnityLo...

Loong的博客 1万+

Unity 发布WebGL平台,C#与JavaScript交互

(JavaScript Library)是Unity的一种机制,允许你在C#中通过JavaScript代码来执行一些操作。这是一种高级的技巧,主要用于一些特殊情况,比如在WebGL项目中使用JavaScript来实现与Web页面的互操作。3.利用Assets/Plugins/WebGL/jslib桥接。发布H5平台,接入SDK,比如微信等,涉及到C#与JS的交互。2.javascript层实现逻辑。

yhhwatl的专栏 1346

Unity WebGL与JavaScript交互终极指南:从Unity杂货铺项目掌握跨语言调用

Unity WebGL作为Unity引擎的重要发布平台,让开发者能够将3D游戏和应用轻松部署到浏览器环境中。而实现Unity与JavaScript的高效交互,是开发复杂WebGL应用的关键技能。本文将从基础到进阶,全面解析Unity WebGL与JavaScript的双向通信技术,帮助开发者快速掌握跨语言调用的核心方法与最佳实践。 ## 为什么Unity WebGL与JavaScript交互至关

gitblog_00029的博客 451

Unity WebGL(一)Unity和JS交互

UNITY与JavaScript交互前言一、从 Unity 脚本调用 JavaScript 函数1.在工程文件夹里新建“Plugins”文件夹,在内部创建一个.jslib扩展名的文件2.打开.jslib文件,插入代码3.使用方法:在脚本中需要使用的地方按照下图代码调用即可4.在Unity中调用JS方法和以上相似,可以在JS里写上方法,在.jslib里直接调用方法名函数二、从 JavaScript 调用 Unity 脚本函数1.在wbg的html或者js中写代码调用unity脚本函数 前言 本文主要是实现w

一条闲の鱼的博客 4649

探索未来Web交互:Unity与Vue的梦幻联动

在这个数字化的时代,身临其境的用户体验已经成为网页应用的关键。今天,我们将揭秘一款令人兴奋的开源项目——《Unity 打包成WebGL与Vue交互Demo》,这是一把解锁3D互动世界的钥匙,让Unity的强大游戏制作能力和Vue.js的灵动前端设计无缝对接。 ## 项目介绍 此项目为勇敢的开发者们搭建了一座桥梁,让Unity开发的精美3D内容能够流畅地游走在Web的海洋之中。通过将Unity项

gitblog_09765的博客 1269

从NodeMCU到浏览器:手把手教你用Unity WebGL和Node.js搭建一个能实时交互的数字孪生小系统

本文详细介绍了如何利用NodeMCU、Node.js和Unity WebGL构建一个实时交互的数字孪生系统。从硬件数据采集到Web端3D可视化,涵盖系统架构设计、数据传输实现、服务端开发及前端集成等关键步骤,帮助开发者快速掌握数字孪生技术的核心实现方法。

weixin_30345577的博客 462
上一篇: Unity CPU 中使用深度
下一篇: Unity制作安装程序并写入注册表
ithinking110
博客等级 码龄14年 54粉丝 52原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值