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

uniapp+vue3+vite+ts+xr-frame实现ar+vr渲染踩坑记

这个坑真的好深,如果有产品经理给你提这个需求,能把他打一顿就打一顿吧,反正这玩意真的挺费事的,而且这玩意在实际应用中没有太大的用处,只会拉垮小程序的性能,我个人认为是画蛇添足,但是又能怎么办呢,现在还没有实现财富自由

如果像参考的,可以看我的开源地址:https://github.com/Sjj1024/uniapp-vue3

注意:如果只是安装依赖后,还不一定能正常使用,因为需要修改一下uniapp底层的编译代码

就是这个路径下的customElements这个数组里面,要添加上你的xr组件!!!!!很重要

创建XR组件和配置

在pages同级目录创建一个wxcomponents目录,里面创建微信原生的xr组件:

然后在pages.json中将这些组件添加到你要展示的页面中:

这里的路径要注意一定是:../../开头的,因为这个组件最终编译后,要在微信小程序中引入的,而不是根据pages.json文件的路径来说的

还要在manifest.json中配置上usingComponents和lazyCodeLoading为true:

还有特别注意的是,这些xr组件中的index.json里面要配置:

添加展示页面和渲染

因为渲染的时候,需要用到容器的宽高和渲染的宽高,所以需要先在全局App.vue中获取到手机屏幕尺寸信息:

获取到这些信息后,存储到本地缓存中,然后在别的组建中就可以使用了,这里比较重要的就是:

创建一个vue页面来展示并渲染这些场景,并引入刚才获取到的屏幕宽高:

这里拿到宽高之后,要给到xr-ar-tracker这个组件,但是需要注意:一定要先修改uniapp底层的编译代码,修改的文件/node_modules/@dcloudio/uni-mp-weixin/dist/uni.compiler.js里面的customElements变量:

然后你通过属性设置的宽高才会生效!这是uniapp的回答,所以一定要注意!

整体的vue组件内容如下:

<template><view class="content"><xr-ar-tracker:width="renderWidth":height="renderHeight":style="'width:' + screenWidth + 'px;height:' + screenHeight + 'px;'"></xr-ar-tracker></view>
</template><script>
import {screenWidth,screenHeight,renderWidth,renderHeight,windowWidth,windowHeight,
} from '@/utils/comm'export default {data() {return {width: windowWidth,height: windowHeight,renderWidth: renderWidth,renderHeight: renderHeight,screenWidth: screenWidth,screenHeight: screenHeight,}},onLoad() {console.log('windowWidth', windowWidth)console.log('windowHeight', windowHeight)console.log('renderWidth', renderWidth)console.log('renderHeight', renderHeight)},methods: {},
}
</script><style>
.content {display: flex;flex-direction: column;align-items: center;justify-content: center;
}
</style>

使用Vue3的setup也可以

换成使用vue3的setup函数也可以正常使用,代码简洁了不少:

<template><xr-ar-tracker:width="renderWidth":height="renderHeight":style="'width:' + screenWidth + 'px;height:' + screenHeight + 'px;'"></xr-ar-tracker>
</template><script setup lang="ts">
import {screenWidth,screenHeight,renderWidth,renderHeight,
} from '@/utils/comm'
</script><style>
.content {display: flex;flex-direction: column;align-items: center;justify-content: center;
}
</style>

其他的组件也可以正常使用,这应该算是第一个讲解怎么在uniapp的vue3种正常使用xr-frame的教程了,希望能帮到大家少走弯路

http://www.dtcms.com/a/477595.html

相关文章:

  • 如何选择适合的加密方法来保护云计算中的数据
  • Linux 云计算核心技术:原理、组件与 K8s 实战部署
  • aws docker安装,ec2安装docker-compose
  • 2025上海国际数据中心及云计算产业展览会影响力如何?有啥亮点?
  • 关于网站建设的意义亚马逊计划裁员1万人
  • 南宁做网站培训网页游戏排行榜前十2023
  • Windows ACL 原理详解与使用示例
  • Rider下Avalonia 项目启动问题完整解决方案
  • MySQL默认端口为何是3306?修改后如何管理?
  • 中间件常用组件的原理和设计
  • Java EE初阶启程记13---JUC(java.util.concurrent) 的常见类
  • 25.负载均衡-Nginx、HAProxy、LVS 全解析
  • ubantu的adb命令(首次安装adb)
  • 辽宁平台网站建设哪里好电商网站怎样优化
  • 万商惠网站建设系统开发人才网站建设经费用途
  • 欧普建站做网站需要apache
  • 天津做网站企业天津定制网站建设商店设计
  • 天猫网站设计大连市那里做网站宣传的好
  • Linux curl 与 wget 区别
  • Centos7详细安装过程
  • SpringBoot 集成 LangChain4j RAG PostgreSQL 搜索
  • 扫地机器人算法分析
  • C语言——深入解析C语言指针:从基础到实践从入门到精通(二)
  • JSAR 空间小程序开发全指南:从环境搭建到跨场景应用落地
  • 驻马店网站建设价格上海人才市场招聘网
  • http 长链接和短链接
  • Java:将 Word 文档转换为密码保护的 PDF 文件
  • 267-基于Django的携程酒店数据分析推荐系统
  • Redis中Geospatial 实际应用指南
  • React水合技术:优化SSR和CSR的完美结合