LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 【介绍SDK 6.6.6版本】含故障排除、重新设计预览及其它更新的最新版本

【介绍SDK 6.6.6版本】含故障排除、重新设计预览及其它更新的最新版本

2021-09-02 Decentraland 来源:区块链网络


这个新 SDK 版本专注于创作者的体验,并消除了 SDK 用户一直在努力解决的一些痛点。在这方面仍然有很长的路要走,以及接下来还有一长串的构想需解决,但希望此版本将使内容创建体验变得更加愉快。

随着新版本的临近,大家一致认为该版本对于内容创作者来说必须是特别的,并且也是时候从头开始重建一些东西了。请查看新增功能以及如何善用这些更新……

如何更新

您应该运行这两个安装:

更新您的 CLI 版本,于任何地方运行:
npm i -g decentraland@latest

通过在场景文件夹中运行它来更新每个场景项目的依赖项:
npm i decentraland-ecs@latest

到目前为止,CLI 和 SDK 都会在您尝试运行场景时进行检查,以确保您使用的是每个场景的兼容版本,以确保您在尝试运行使用新 SDK 的场景时不会卡住旧的 CLI,反之亦然。

提示:如果出于某种原因,您想将未一起发布的 CLI 和 SDK 版本合并,您可以运行 dcl start --skip-version-checks。

新预览

此版本中最大的变化发生在场景预览中。预览版经过了大量重新设计,因此当您进入 play.decentraland.org 时,它现在可以共享更多生产中使用的实际代码。由于预览旨在预测场景中玩家的情况,因此越接近实境对内容创建者越好。



当您打开场景预览时,您可能会注意到的第一件事是屏幕上的完整 Decentraland UI。这包括地图、聊天、底部栏、背包……玩家在世界中看到的一切都在那里。当您定位自己的 UI 元素以确保它们不会被 UI 的其它部分覆盖时,这当然很有用。但它也提供了一种切换到夜间模式或更改其它设置的简单方法,例如关闭环境光遮蔽、在高分辨率或低分辨率设置下体验场景、关闭声音,甚至更改您的虚拟化身可穿戴设备。多亏了这一点,您可以确保您在任何情况下都能看见不错的场景。对可穿戴设备玩家所戴的设备做出反应的场景的故障排除,也使您可更轻松地更换可穿戴设备。


您会注意到的另一件事是,周围的地块不再是空网格,而是显示默认的空地块内容,带有一些随机的树木和灌木丛。这让事情更接近真实情况,浏览器的部分内存忙于渲染其它场景,就像你的场景实时一样。它还可以帮助您查看场景周围默认地面高度的确切高度,从而使您可以根据该高度微调地面。

如果您跳转到第三人视角,您还会注意到您的虚拟化身不再是相同的默认虚拟化身,而是随机生成的,每次重新加载时都会发生变化。如果您希望在世界里保持一致性,您可以通过向 URL 添加一个 PLAYER 参数并为其分配任何字符串值来存储虚拟化身配置文件。使用此选项时,预览会将您虚拟化身的设置存储在浏览器本地,以便在您在 PLAYER 参数上使用相同字符串时检索它们。例如,每次使用 URL http://127.0.0.1:8000/?PLAYER=ringo 打开预览时,您将拥有相同的虚拟化身。

您还可使用 MetaMask 连接到预览并使用您的实际虚拟头像加载场景,然后将您的可穿戴设备切换到该帐户拥有的任何设备。 SDK 老手会熟悉手动添加 &ENABLE_WEB3 到预览 URL 以连接到 MetaMask 的技巧。最新 CLI 版本则不需要这样。您可以运行 dcl start --web3 并立即启动连接到 MetaMask 的预览。

完全沙盒化的代码

即使从未记录或鼓励,旧版本的 SDK 也可以访问一些浏览器原生功能,例如 setTimeout 函数。棘手的是,尽管今天的 Decentraland 总是在浏览器中运行,但并非总是如此。所以在未来,比如 Decentraland 原生桌面版本存在时,浏览器资源将不存在,直接使用浏览器的场景将无法加载。

这个邪恶版本是开始阻止在预览中使用这些浏览器功能的最佳时机。请注意,使用旧版 SDK 构建的场景仍然可以使用这些浏览器资源,因此现有内容不会中断。

提示:如果你离不开 setTimeout 函数,请查看Decentraland Utils 库中的 setTimeout 函数。它的行为就像您熟悉和喜爱的功能一样,但完全建立在 Decentraland ECS 之上。

更佳的故障排除

故障排除已越来越好。较早版本的 SDK 已经在编译场景时在命令行控制台上显示了详细的错误消息,指示带有违规的代码文件和代码行。浏览器控制台上的错误消息现在变得越来越有用,包括指向 .ts 文件和行的链接,您可以在浏览器的“sources”选项卡中阅读这些链接。

这非常有用,因为它不仅会向您显示错误所在,一旦您进入“sources”选项卡,您甚至可以在场景中动态添加断点,并暂停您的代码。

故障排除最佳实践的完整视频教程应该很快就会推出。

当您在本地构建场景并预览它时,可以在浏览器的“sources”选项卡中找到该场景的完整源代码。当您部署场景时,场景被重建而不包含它,以确保您的源代码在 Decentraland 的服务器中找不到,并且不能被轻易复制或利用。

这还有一个额外的好处:由于现在运行 dcl deploy 会在部署之前运行场景的构建,因此已避免了过去无数次出现的典型错误。假设您更改了一个小东西,例如出站链接或 UI 文本,然后在没有先预览的情况下部署您的场景 - 更改不会上传,因为编译的场景从未使用最后的更改构建。到目前为止,这不应该发生,因为部署也会重建场景。

其它修复

此版本还实施了许多其它修复程序:

?当热重载时,经常会发生意想不到的事情,您必须手动重载才能看到正确渲染的场景。虽然一些边角的情况还需要修复,但是热重载的可靠性已经有了大跃进
?一些人在他们的场景中安装 Decentraland utils 库时遇到了问题,不得不在 tsconfig.json 文件中手动配置一些东西才能使它们运作。现在有了最新的 CLI 版本,这种情况应该不会再发生了。安装任何 utils 库都应该可以顺利进行
?当一个实体附加到玩家虚拟化身时,快速移动通常会导致对象相对于相机的位置出现一些轻微的滞后。现在已在所有场景中修复此问题,无论 SDK 版本如何,但您将在 6.6.6 版的预览版中看到它已修复
?在玩家上触发表情时,PredefinedEmote 枚举现在可以访问一些新的表情,如 HAMMER、SHRUG 或 HEAD_EXPLODE
?Teleport(传送)确认 UI 窗口现在可以预览
?调整浏览器窗口大小时,任何设置了相对于画布的位置或大小的 UI 元素现在都会重新调整为新的窗口大小
?使用虚拟化身修改器区域隐藏虚拟化身时,现在可以在预览中很好地隐藏了

新储存库

Decentraland 的大部分核心代码过去都存在于一个大型的单个储存库中,现在已迁移到几个单独的储存库中。

SDK 本身现在位于它自己的全新存储库中:

https://github.com/decentraland/js-sdk-toolchain

此外,如果您想回报 SDK 的任何问题,请将问题添加到此存储库,尽可能详细地描述问题:

https://github.com/decentraland/sdk

Decentraland 的所有存储库都是开源的,并且鼓励社区做出贡献,因此如果您觉得 SDK 可以实现您的愿望,请随时向 js-sdk-toolchain 存储库发出拉取请求。

与往常一样,如果您有任何疑问或问题(或者只是想加入一些表情符号),请随时与Discord上的基金会团队联系。现在就来尽情享受更新版本吧!

选择您常用的频道加入与我们联系,关注Decentraland(MANA)的最新动态

官方中文社区:

官网

电报

微博

视频

QQ群:817651399

官方全球社区:

Official Website

Telegram

Medium

Twitter

Discord

Global Developers

Get Started with SDK

DCL微信群-请加ID

ChinWaan

DCL公众号

manalandcn

DCL微博

—-

编译者/作者:Decentraland

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...