问题标签 [playcanvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
786 浏览

javascript - 有没有办法在应用程序中切换前后摄像头

我正在尝试开发一种 web-ar 体验,允许用户在整个体验中在前后摄像头之间切换,同时在使用后置摄像头时使用 SLAM/6dof。理想情况下,我想使用 PlayCanvas,但无法让前置摄像头工作。我在框架中实现了这一点取得了一些轻微的成功,但很多事情都在打破。

我找不到任何有关启用前置摄像头和使用 XR.stop() 的 PlayCanvas 特定文档,然后是 XR.run({canvas: document.getElementById('camerafeed'), cameraConfig: {direction: XR.XrConfig. camera().FRONT}}) 没有任何效果。

在一个框架内,我正在执行类似的事件序列,但我看到了一些结果。前置摄像头被激活,但日志中有错误,3D 对象不渲染(当我们在前置摄像头模式下启动时它们渲染),并且尝试再次切换摄像头显示“糟糕,出了点问题!” 屏幕。

至于切换 SLAM/6dof,我不断收到一个错误,即在 XR.run 执行后我无法更改 disableWorldTracking。即使我已经运行了 XR.stop 函数并监听了 stopxr 事件。

应该切换到前置摄像头的 A 帧功能(只是重要的部分):

在场景运行时更改 disableWorldTracking 参数的正确方法是什么?场景运行时在前后摄像头之间切换的正确方法是什么?

0 投票
1 回答
102 浏览

javascript - 画布、iframe 和 HTML 页面之间的 Javascript 函数

我目前正在开发一个 PlayCanvas 项目,该项目将嵌入到幻灯片中的 iFrame 中(Articulate Storyline)。幻灯片应用程序允许我通过以下方式使用 Javascript:

player.SetVar("Result",score);

玩家在哪里:

parent.getPlayer();

该结构最终成为,每个都是前者的孩子:

  • 主 html 文件(幻灯片)
  • iFrame(与同一域上的源)
  • 帆布
  • PlayCanvas 应用程序中的 JS 脚本

我的主要问题是我无法在不访问 iFrame 的情况下调用 getPlayer(),但 parent.document.getElementById('') 返回 null。我觉得我忽略了一些非常明显的东西,但我无法让它发挥作用。

提前致谢,如果我的格式/问题不正确,请告诉我,以便我更新帖子!

0 投票
0 回答
205 浏览

google-chrome - net::ERR_HTTP2_PROTOCOL_ERROR 用于限制/慢速连接的大型 png 文件

当连接不良时,我在为 playcanvas 应用程序加载大 png 纹理文件时遇到问题。由于某种原因,铬浏览器说请求因 net::ERR_HTTP2_PROTOCOL_ERROR 而失败。我已经使用 Google Chrome(版本 92.0.4515.131)和 Microsoft Edge(版本 92.0.902.67)对此进行了测试。Firefox 没有这个问题并且可以正确加载文件。

我已经搜索了很长一段时间的解决方案,但找不到任何东西。在我看来,这实际上是铬的正常行为。

以下是网络分析选项卡的摘录:

网络标签摘录

编辑: 经过进一步调查,chrome://net-export我得到了这个错误:

编辑 2:我为这个错误创建了一个铬问题:https ://bugs.chromium.org/p/chromium/issues/detail?id=1237907

0 投票
0 回答
30 浏览

javascript - Firebase 错误帮助(firebase.database 未定义)

我正在使用 playcanvas 引擎制作我的游戏,我想添加登录和拥有的功能,但由于某些奇怪的原因我无法使用实时数据库。我似乎也找不到我正在使用的教程。这是我的代码以及我的参考资料的链接(并非所有参考资料都在主题上。)。

代码(全部在文件夹中):https ://playcanvas.com/editor/code/719734?tabs=50532679,50538154,50532682,50532714,50532717,50532848,50537478,56029264

参考1:https ://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.1/socket.io.min.js

参考 2:https ://www.gstatic.com/firebasejs/8.6.8/firebase-app.js

参考 3:https ://www.gstatic.com/firebasejs/8.6.8/firebase-analytics.js

参考 4:https ://www.gstatic.com/firebasejs/7.2.3/firebase-database.js

0 投票
1 回答
54 浏览

webrtc - WebRTC 数据通道类型不匹配

我正在尝试在 playCanvas 中实现 WebRTC 通信,但在建立 Peers 之间的连接时遇到了麻烦。

从本地环境开始,我使用的是 Brave Browser 和 Ubuntu OS,连接已建立,我可以在对等点之间发送消息。以下是使用正确的协议 RTP 创建的正确报价。

这是有效的报价,在本地 PC 上,我可以在对等方之间连接和发送消息。但这仅适用于 Brave 浏览器,如果我打开 Chrome 或另一台带有 Brave 浏览器的 PC,它将无法工作,而且如果我在 playcanvas 上实现 WebRTC,它也将无法工作。

以下是我从报价中获得的数据,我认为这是不工作的主要原因。因为它使用SCTP协议。

这是我在 playcanvas 上收到的错误。

下面是 playcanvas 内部的实现。

我将不胜感激。

0 投票
0 回答
22 浏览

javascript - 光标图像在不同分辨率屏幕中的画布位置

我正在尝试制作一个多人游戏,其中用户将在桌面屏幕上玩游戏,并且相同的游戏将显示在多个屏幕中。我已经给出了一个光标图像来显示光标在移动设备中的位置。

我遇到了匹配光标位置的问题,即将出现一个偏移量,在当前屏幕和其他屏幕中无法正确显示。任何帮助都可以让我的生活变得轻松。

这是代码:

提前致谢。