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

By [Decentraland 中文社区](https://paragraph.com/@decentraland-2) · 2022-04-02

---

![](https://storage.googleapis.com/papyrus_images/1c458ab0bfd76e9a1f05c49364b80187cc064f4de1c52cb5c24f3c96107f60d1.png)

_2021-9-1文章_

这个新 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 时，它现在可以共享更多生产中使用的实际代码。由于预览旨在预测场景中玩家的情况，因此越接近实境对内容创建者越好。

![](https://storage.googleapis.com/papyrus_images/e7b72c1e47f48d03bb707ec8bba15e74eafb6acd02cd2a0bad8b9580232da11d.jpg)

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

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

如果您跳转到第三人视角，您还会注意到您的虚拟化身不再是相同的默认虚拟化身，而是随机生成的，每次重新加载时都会发生变化。如果您希望在世界里保持一致性，您可以通过向 URL 添加一个 PLAYER 参数并为其分配任何字符串值来存储虚拟化身配置文件。使用此选项时，预览会将您虚拟化身的设置存储在浏览器本地，以便在您在 PLAYER 参数上使用相同字符串时检索它们。例如，每次使用 URL [_http://127.0.0.1:8000/?PLAYER=ringo_](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 库](https://github.com/decentraland/decentraland-ecs-utils#delay-a-function)中的 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](https://github.com/decentraland/js-sdk-toolchain)

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

[https://github.com/decentraland/sdk](https://github.com/decentraland/sdk)

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

**与往常一样，如果您有任何疑问或问题（或者只是想加入一些表情符号），请随时与** [**Discord**](https://discord.com/invite/BJZHAWS7JU) **上的基金会团队联系。现在就来尽情享受更新版本吧！**

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

**DCL基金会全球社区： 【**[**Official Website**](https://decentraland.org)】 【[**Telegram**](https://t.me/decentralandTG)】 【[**Blog**](https://blog.decentraland.org)】 【[**Twitter**](https://twitter.com/decentraland)】 【[**Discord**](https://decentraland.org/discord/)】

**DCL中文社区： 【**[**电报群**](https://t.me/+BtB90_SKDeQ4OGQ1)**】 【**[**推特**](https://twitter.com/decentralandcn)】 【[**微博**](https://weibo.com/decentralandcn)】 【**微信群**】请加微信ID ChinWaan 【**微信公众号**】manalandcn

---

*Originally published on [Decentraland 中文社区](https://paragraph.com/@decentraland-2/sdk-6-6-6)*
