当前位置: 首页 > news >正文

Unity微信小游戏接入开放数据域

demo地址:https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/Ranking
官方说明: https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/OpenData.md

  1. 准备一个Canvas,保证其渲染模式为:Overlay
    在这里插入图片描述

  2. Canvas中创建一个RawImage,用于确定开放数据域渲染的范围。rotation x = 180
    在这里插入图片描述

  3. 初始化数据域

    private static WeChatWASM.WXOpenDataContext _openDataContext = null;
    public static void InitOpenDataContext()
    {// 初始化开放数据域openDataContext??= WeChatWASM.WX.GetOpenDataContext(new WeChatWASM.OpenDataContextOption{sharedCanvasMode = WeChatWASM.CanvasType.ScreenCanvas});
    }
    
  4. 打开数据域渲染

    void ShowOpenData()
    {RankMask.SetActive(true);RankingBox.SetActive(true);// // 注意这里传x,y,width,height是为了点击区域能正确点击,x,y 是距离屏幕左上角的距离,宽度传 (int)RankBody.rectTransform.rect.width是在canvas的UI Scale Mode为 Constant Pixel Size的情况下设置的。/*** 如果父元素占满整个窗口的话,pivot 设置为(0,0),rotation设置为180,则左上角就是离屏幕的距离* 注意这里传x,y,width,height是为了点击区域能正确点击,因为开放数据域并不是使用 Unity 进行渲染而是可以选择任意第三方渲染引擎* 所以开放数据域名要正确处理好事件处理,就需要明确告诉开放数据域,排行榜所在的纹理绘制在屏幕中的物理坐标系* 比如 iPhone Xs Max 的物理尺寸是 414 * 896,如果排行榜被绘制在屏幕中央且物理尺寸为 200 * 200,那么这里的 x,y,width,height应当是 107,348,200,200* x,y 是距离屏幕左上角的距离,宽度传 (int)RankBody.rectTransform.rect.width是在canvas的UI Scale Mode为 Constant Pixel Size的情况下设置的* 如果是Scale With Screen Size,且设置为以宽度作为缩放,则要这要做一下换算,比如canavs宽度为960,rawImage设置为200 则需要根据 referenceResolution 做一些换算* 不过不管是什么屏幕适配模式,这里的目的就是为了算出 RawImage 在屏幕中绝对的位置和尺寸*/CanvasScaler scaler = gameObject.GetComponent<CanvasScaler>();var referenceResolution = scaler.referenceResolution;var p = RankBody.transform.position;WX.ShowOpenData(RankBody.texture, (int)p.x, Screen.height - (int)p.y, (int)((Screen.width / referenceResolution.x) * RankBody.rectTransform.rect.width), (int)((Screen.width / referenceResolution.x) * RankBody.rectTransform.rect.height));
    }
    
  5. 向数据域发送消息

    OpenDataMessage msgData = new OpenDataMessage();
    msgData.type = "showFriendsRank";string msg = JsonUtility.ToJson(msgData);
    openDataContext.PostMessage(msg);
    
  6. 开放数据域解析并处理消息

    	function main() {wx.onMessage((data) => {console.log('[WX OpenData] onMessage', data);if (typeof data === 'string') {try {// eslint-disable-next-line no-param-reassigndata = JSON.parse(data);}catch (e) {console.error('[WX OpenData] onMessage data is not a object');return;}}switch (data.type) {// 来自 WX Unity SDK 的信息case 'WXRender':initOpenDataCanvas(data);break;// 来自 WX Unity SDK 的信息case 'WXDestroy':Layout.clearAll();break;// 下面为业务自定义消息case 'showFriendsRank':renderFriendsRank(data.rankKey, data.strTag);break;case 'showGroupFriendsRank':renderGroupFriendsRank(data.shareTicket, data.rankKey, data.strTag);break;default:console.error(`[WX OpenData] onMessage type 「${data.type}」 is not supported`);break;}});
    }
    
  7. 修改HTML格式,渲染开放数据域UI

相关文章:

Unity微信小游戏接入开放数据域

demo地址&#xff1a;https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/Ranking 官方说明&#xff1a; https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/OpenData.md 准备一个Canvas&#xff0c…...

Spring Boot的开发工具(DevTools)模块中的热更新特性导致的问题

问题&#xff1a; java.lang.ClassCastException: class cn.best.scholarflow.framework.system.domain.entity.SysUser cannot be cast to class cn.best.scholarflow.framework.system.domain.entity.SysUser (cn.best.scholarflow.framework.system.domain.…...

Elasticsearch安装和数据迁移

Elasticsearch安装和数据迁移 Elasticsearch安装 下载并解压Elasticsearch 首先下载Elasticsearch的tar.gz文件&#xff0c;并将其解压&#xff1a; wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz tar -xzf elastics…...

Numpy指南:解锁Python多维数组与矩阵运算(下)

文章一览 前言一、排序1.1 numpy.sort1.2 numpy.argsort1.3 numpy.lexsort 二、数组操作2.1 数组元素迭代2.2 数值舍入计算2.3数值取整2.4 数组去重2.5 数组拼接2.6 数组行列交换 三、文件读写3.1 np.fromfile() 读文件3.2 np.loadtxt() 读文件3.3 用 csv 模块逐行处理 CSV 格式…...

路由器刷机TP-Link tp-link-WDR5660 路由器升级宽带速度

何在路由器上设置代理服务器&#xff1f; 如何在路由器上设置代理服务器&#xff1f; 让所有连接到该路由器的设备都能够享受代理服务器的好处是一个不错的选择&#xff0c;特别是当需要访问特定的网站或加速网络连接的时候。下面是一些您可以跟随的步骤&#xff0c;使用路由器…...

VB.NET在 Excel 二次开发中的全面应用

摘要&#xff1a; 本文详细阐述了如何运用VB.NET进行 Excel 的二次开发。首先介绍了开发环境的搭建&#xff0c;包括安装 Visual Studio 及引用 Excel 对象库。接着深入探讨了各种基础操作&#xff0c;如创建 Excel 应用程序对象、打开与操作工作簿、处理工作表与单元格数据等。…...

uni-app使用组件button遇到的问题

在HBuilder X工具中新建一个空白项目&#xff0c; 1、新建一个about页 然后在pages.json文件里加上路由 2、然后看下导航的方法&#xff0c;发现找不到navigateTo方法 参考&#xff1a;button | uni-app官网 第3行和第4行的代码倒是没问题的&#xff0c;第5行的代码有问题执行…...

如何在Express.js中处理异常情况?

在 Express.js 中处理异常情况是确保应用程序稳定性和安全性的重要方面。未处理的错误可能会导致应用崩溃或暴露敏感信息给用户。以下是几种常见的处理异常的方法&#xff1a; 1. 使用 try...catch 和 async/await 对于异步操作&#xff0c;如数据库查询、文件系统访问等&…...

CKA认证 | Day7 K8s存储

第七章 Kubernetes存储 1、数据卷与数据持久卷 为什么需要数据卷&#xff1f; 容器中的文件在磁盘上是临时存放的&#xff0c;这给容器中运行比较重要的应用程序带来一些问题。 问题1&#xff1a;当容器升级或者崩溃时&#xff0c;kubelet会重建容器&#xff0c;容器内文件会…...

ArcGIS Pro地形图四至角图经纬度标注与格网标注

今天来看看ArcGIS Pro 如何在地形图上设置四至角点的经纬度。方里网标注。如下图的地形图左下角经纬度标注。 如下图方里网的标注 如下为本期要介绍的例图&#xff0c;如下&#xff1a; 图片可点击放大 接下来我们来介绍一下 推荐学习&#xff1a;GIS入门模型构建器Arcpy批量…...

策略模式以及优化

使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略&#xff0c;而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{O…...

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口&#xff0c;各位可以关其它的或者打开其它端口测试&#xff0c;谨慎关闭22端口&#xff01;不然就会像我下面一样握手超时&#x1f62d;&#x1f62d;&…...

Vue3入门(9)

1. 【 replace属性】 作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式。 浏览器的历史记录有两种写入方式&#xff1a;分别为push和replace&#xff1a; - push是追加历史记录&#xff08;默认值&#xff09;。 - replace是替换当前记录。 . 开启replace模式&#xff…...

《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》

在当今医药领域&#xff0c;药物研发的复杂性和高成本使得新药的推出面临诸多挑战。而人工智能&#xff08;AI&#xff09;正以其强大的能力为药物研发带来新的契机&#xff0c;助力加速新药发现和临床试验过程。 新药发现阶段 靶点识别与筛选 药物研发的第一步是确定药物作…...

“鼎和财险一体化数据安全管控实践”入选信通院金融领域优秀案例

近日&#xff0c;由中国信通院举办的深度观察报告会系列论坛在京召开。在数字生态治理分论坛上&#xff0c;2024年度首期“磐安”优秀案例——六大行业应用优秀案例遴选结果发布&#xff0c;由北京原点数安科技有限公司与鼎和财产保险股份有限公司联合申报的“鼎和财险一体化数…...

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型&#xff08;MLLMs&#xff09;的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文&#xff1a;Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…...

72 mysql 的客户端和服务器交互 returnGeneratedKeys

前言 这里主要是针对如下 情况的讨论 比如我们 tz_zone 表有一个自增长的主键 id, 然后 客户端这边可以通过 PreparedStatement 相关的 api 来获取 服务端这边生成的自增长的 id 我们这里 来看一下 这个流程, 整体的 客户端 和 服务器的交互上面来看 问题来自于 主题&…...

【连续学习之SSL算法】2018年论文Selfless sequential learning

1 介绍 年份&#xff1a;2018 期刊&#xff1a; arXiv preprint Aljundi R, Rohrbach M, Tuytelaars T. Selfless sequential learning[J]. arXiv preprint arXiv:1806.05421, 2018. 本文提出了一种名为SLNID&#xff08;Sparse coding through Local Neural Inhibition and…...

【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

目录 一、光敏/热释电模块 &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;AS312 &#x1f319;简介 &#x1f319;特性 &#x1f505;LDR &#xff08;2&#xff09;STM32CubeMX 软件配置 &#xff08;3&#xff09;代码编写 &#xff08;4&#x…...

数字IC后端设计实现十大精华主题分享

今天小编给大家分享下吾爱IC社区星球上周十大后端精华主题。 Q1:星主&#xff0c;请教个问题&#xff0c;长tree的时候发现这个scan的tree 的skew差不多400p&#xff0c;我高亮了整个tree的schematic&#xff0c;我在想是不是我在这一系列mux前边打断&#xff0c;设置ignore p…...

像素语言传送门效果实测:Hunyuan-MT-7B对中文网络新词(如‘绝绝子‘)的跨语种意译能力

像素语言传送门效果实测&#xff1a;Hunyuan-MT-7B对中文网络新词&#xff08;如绝绝子&#xff09;的跨语种意译能力 1. 测试背景与工具介绍 像素语言跨维传送门是基于腾讯Hunyuan-MT-7B翻译引擎构建的创新翻译工具。与传统翻译软件不同&#xff0c;它将语言转换过程设计成一…...

Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统

Wan2.2-I2V-A14B企业应用&#xff1a;法律文书解读AI动画视频生成系统 1. 系统概述与核心价值 法律行业每天需要处理大量文书材料&#xff0c;传统的人工解读和可视化呈现方式效率低下且成本高昂。Wan2.2-I2V-A14B法律文书解读AI动画视频生成系统正是为解决这一痛点而生。 这…...

嵌入式 - shell 常用语法简单总结

初步使用#!bin/bashecho "Hello world!"echo# shellvim helloworld.shchmod ux helloworld.sh# 在当前bash运行. helloworld.shsource helloworld.sh# 在子bash中运行&#xff0c;无法修改当前shell的变量./helloworld.shLinux中工具链的配置​ ~/.bashrc用于定义当前…...

Qwen3.5-2B入门指南:WebUI中Clear Image按钮对多轮图文对话的影响

Qwen3.5-2B入门指南&#xff1a;WebUI中Clear Image按钮对多轮图文对话的影响 1. 认识Qwen3.5-2B轻量化多模态模型 Qwen3.5-2B是Qwen3.5系列中的轻量级版本&#xff0c;仅有20亿参数规模。这个模型特别适合在资源有限的设备上运行&#xff0c;比如个人电脑、边缘计算设备等。…...

Qwen3-ASR-0.6B作品集:Qwen3-ForcedAligner-0.6B时间戳精度图谱

Qwen3-ASR-0.6B作品集&#xff1a;Qwen3-ForcedAligner-0.6B时间戳精度图谱 你有没有想过&#xff0c;一段语音里的每个字、每个词&#xff0c;甚至每个音节&#xff0c;是在哪个精确的时间点被说出来的&#xff1f;这听起来像是电影后期制作里的黑科技&#xff0c;但现在&…...

Kindle Comic Converter:漫画电子书制作的专业工具

Kindle Comic Converter&#xff1a;漫画电子书制作的专业工具 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc Kindle Comic Converter&#xff08;简…...

GUI-Guider工具:LVGL嵌入式GUI开发实战指南

1. GUI-Guider工具概述GUI-Guider是恩智浦公司专为LVGL图形库开发的一款可视化设计工具。作为一名长期从事嵌入式GUI开发的工程师&#xff0c;我亲身体验到这款工具如何彻底改变了传统的手写代码开发模式。它通过拖拽式操作界面&#xff0c;让开发者能够快速构建出精美的用户界…...

手把手教你用PyTorch 2.0复现风源AI气象模型(附GitHub源码解读)

手把手教你用PyTorch 2.0复现风源AI气象模型&#xff08;附GitHub源码解读&#xff09; 气象预测正经历从传统数值模拟到AI驱动的范式转移。本文将带您深入风源模型的技术内核——一个融合卫星遥感与深度学习的混合架构&#xff0c;通过PyTorch 2.0实现从数据预处理到模型推理的…...

DMA传输效率翻倍秘籍:深入解析Burst/Transfer模式在TMS320系列DSP中的配置陷阱

DMA传输效率翻倍秘籍&#xff1a;深入解析Burst/Transfer模式在TMS320系列DSP中的配置陷阱 实时信号处理系统的性能瓶颈往往出现在数据传输环节。当工程师面对高速ADC采集的海量数据时&#xff0c;DMA控制器的高效配置直接决定了系统能否实现理论上的吞吐量。本文将深入剖析TMS…...

xiaomusic启动故障终极解决指南:设备认证配置与开源智能家居集成方案

xiaomusic启动故障终极解决指南&#xff1a;设备认证配置与开源智能家居集成方案 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 问题定位&#xff1a;识别xiaomusi…...