智能物品 - 基础
在你的场景中使用智能物品来增加交互性。
场景编辑器目录中的一些物品是 智能物品。玩家可以与它们互动,它们具有可配置属性,并且可以触发其他智能物品上的动作。例如:可以打开和关闭的门、上下移动的平台,或者可以激活其他物品的按钮和拉杆。
你可以在资源包浏览器中认出这些物品,因为它们有闪电图标和不同颜色的背景。

你可以在实体树中认出场景里的哪些物品是智能物品,因为它们旁边有闪电图标。
使用物品
要使用智能物品,只需像其他物品一样把它拖入场景中。所有物品都包含默认行为,运行场景预览即可试用。
以下是一些常见物品及其默认行为:
门:门在被点击时会打开或关闭。你可以修改此行为,使它们由按钮、触发区域等打开。
按钮:点击时,它们会播放声音和动画作为反馈。向它们的触发事件添加更多动作,以激活其他智能物品。
拉杆:点击时,它们会在两种状态之间切换。让拉杆的每个位置在其他智能物品上执行不同动作。
宝箱:它们的行为类似门,默认在点击时打开或关闭。你可以把较小的物品放在里面。
平台:它们在两个位置之间移动。使用它们的补间动作来控制移动到哪里、速度等。
触发区域:一个看不见的物品,当玩家走进其区域时,可以触发其他智能物品。参见 关于触发区域.
头像修饰区域:一个看不见的区域,会改变头像在其中的行为或外观,例如隐藏头像或禁用护照弹窗。参见 修饰区域.
摄像机修饰区域:一个看不见的区域,会在玩家进入时强制其摄像机切换为第一人称或第三人称。参见 修饰区域.
视频播放器:用于显示视频或直播流的屏幕。参见 播放视频.
音频流:从直播流播放音频。参见 播放音频流
NFT:将 NFT 图片以肖像形式显示。参见 显示 NFT
所有智能物品都可以配置为以自定义方式运行。例如平台移动多远,或者按钮激活什么。
配置物品
在场景编辑器中选中一个物品,就能在右侧查看它的所有属性。
大多数智能物品将其行为保存在 脚本组件中。它们的设置会显示在 脚本 面板中,每个参数一个字段,每个字段都有一个提示说明其作用。使用它们不需要编写任何代码。
你会在许多物品中找到的一些典型字段有:
悬停文本:当玩家把光标移到物品上方时,界面上显示的提示文本。例如门可能显示“打开”
交互:使用哪个按钮来激活物品?在典型键盘上:
主 是 E
次 是 F
指针 是 鼠标左键
动作3 是按键 1
动作4 是按键 2
动作5 是按键 3
动作6 是按键 4
响应物品的钩子:你可以在特定时刻选择要运行的动作的参数。一个物品有哪些钩子取决于它的功能。按钮有 onClick,拉杆有 onActivate 和 onDeactivate,移动平台有 onReachStart 和 onReachEnd,铃铛有 onRing。将某个钩子留空,那么在那个时刻就不会发生任何事情。
每个物品都有其自己的特定设置,这些设置可能因物品而异。
有少数物品仍然使用较旧的 配置 面板。例如,灯光仍然在这里设置颜色和强度。
所有物品都有一个 高级模式 ,它能让你几乎配置它们的任何内容。这包括播放什么声音,或者平台朝哪个方向移动。你还可以添加自定义动作,其中包括各种内容,例如传送玩家、播放头像动画、将物品附着到玩家手中等。你还可以添加条件逻辑,只在某些场景下激活某些内容。参见 智能物品 - 高级.

在另一个物品上调用动作
智能物品可以在其他智能物品上触发动作,因此每次该物品被激活时都会发生。只需从场景中所有物品的列表里选择你想要调用的物品,然后选择一个动作。不同的物品会提供不同的动作。
例如,这里有一个按钮,它会打开或关闭一扇门。每次按下按钮时,门要么打开,要么关闭。

这里有一个拉杆,它在激活时打开门,在停用时关闭那扇门。

你可以添加任意多个来自不同物品的动作,让它们一起触发。只需点击 + 分配动作.
通过点击动作旁边的三点并选择 移除动作.
即可移除动作。一个物品提供的动作仍然保持其熟悉的名称,例如 打开, 关闭, 坐在这里, 开启,或者 传送,因此物品之间的连线方式依然和以前一样。
你也可以把动作串联起来。例如,如果某个拉杆的 onActivate 打开一扇门,而那扇门自己的钩子又触发了别的东西,那么拉杆就会间接触发整个链条。
如果你使用 高级模式 ,你也可以为这些动作添加条件逻辑。
特殊智能物品
有些智能物品具有独特特性,使它们在常见场景中非常实用:
触发区域
使用触发区域智能物品,在玩家走入某个区域时触发一个动作。

使用 玩家进入区域 和 玩家离开区域 类型作为该物品 触发器 组件中的触发类型。每当玩家进入或离开该区域时,这些触发事件上的动作都会被激活。

参见 触发区域 了解更多信息。
隐形墙
一组看不见的形状,可以阻挡玩家穿过某个区域或点击某个区域。
当导入一个没有碰撞器网格的 3D 模型时,这些隐形墙会很有用,或者当你想创建一个玩家看不见的墙时也很有用。
参见 碰撞器 了解更多信息。
点击区域
一个看不见的立方体,玩家可以点击它来触发其他智能物品上的动作。此物品可以被任何其他智能物品启用或禁用;禁用时它将无法点击。你还可以设置玩家将光标指向它时看到的文本。

座位
椅子、长凳和其他座位可以让玩家通过点击坐下。
一个座位只有在占用它的玩家 离开 它,超过 1.5 米时,才会空出来。
在像长凳这样有多个座位点的物品上,点击它会让你坐到 最近的空位.
当所有座位点都被占用时,悬停文本会显示 座位已被占用 ,点击则没有任何作用。
传送点
这个 传送 物品会在玩家与之交互时把玩家传送到别的地方。
设置 x 和 y 参数,就可以把他们送到 Genesis City 中的某个地块。若要把他们送到 世界 ,则填写 world 参数并输入世界名称,例如 myname.dcl.eth,并将坐标留空。
📔 注意:以前有一个单独的 世界传送 物品。它已被移除。请改用 传送 物品及其 world 参数。
移动设置
这个 移动设置 物品会改变玩家在你的场景中移动的速度以及跳跃的高度。你可以用它来让场景感觉更轻飘,或在博物馆里减慢玩家速度,或者在大地图中加快他们的移动。
把它拖到场景中的任何地方。它会在场景开始时应用其数值,而它的占位立方体只会在编辑器中可见,玩家永远看不到。
每个字段都是一个滑块,预设为 Decentraland 的默认值:
walkSpeed
1.5 米/秒
0 到 10
jogSpeed
8 米/秒
0 到 30
runSpeed
10 米/秒
0 到 50
jumpHeight
1 米
0 到 10
runJumpHeight
1.5 米
0 到 10
doubleJumpHeight
2 米
0 到 15
glidingSpeed
6 米/秒
0 到 30
glidingFallingSpeed
1 米/秒
0 到 10
hardLandingCooldown
0.75 秒
0 到 5
慢跑是玩家默认的移动速度。行走和奔跑则是按住控制键或 Shift 键时获得的速度。
这个物品还提供两个可供其他智能物品调用的动作:
apply:再次将当前字段值写入玩家,例如在触发区域或按钮之后。restoreDefaults:清除你的数值,让玩家恢复为 Decentraland 的默认值。
参见 移动设置和限制 详细说明每个设置的作用,以及如何从代码中更改这些数值。
播放视频
播放视频的来源可以是:
本地文件
从 URL 直播
直播来源于 Decentraland Cast
直播来源于 RTMP 软件 (OBS、XSplit、StreamYard 等)
📔 注意:播放视频对性能要求很高,因此请尽量减少同时播放的视频数量。引擎会根据每位玩家的质量设置限制可同时播放的视频数量(低画质为 1,中画质为 5,高画质为 10),并暂停超过该限制的任何视频。参见 播放视频.
参见 播放视频 了解更多信息。
播放音频流
使用 音频流 智能物品从 URL 播放音频流。
你可以调节流的音量。请注意,流中的音频不是有空间位置的,它会以均匀的音量在整个场景中被听到。
显示 NFT
要在相框中显示 NFT,请使用 NFT 智能物品。你必须提供以下字段:
网络
NFT 收藏合约:该 NFT 收藏的智能合约。
Token ID:这个特定 NFT 收藏品的代币 ID。

你可以通过 OpenSea获取这些信息,只需查看 NFT 图片下方的 详情 标签页。

你还可以配置背景颜色,这对于透明背景的 NFT 特别有用。
你还可以选择一个 边框样式,以多种不同风格为 NFT 加上边框,包括经典和现代风格。
参见 NFT 了解更多细节。
生命条

这个 生命条 智能物品是多种游戏机制的极佳构建模块。它可以通过多种方式使用:
将它嵌套在 玩家 下方,在头像上方显示玩家生命值

将它嵌套在 摄像机 下方,将其固定显示在 UI 上

把它嵌套在场景中的任何物品下方,以跟踪该物品的生命值

其他物品可以与生命条互动,对其增加或减少生命值。
像 尖刺 或 机器人敌人 这样的物品可以降低生命值

像 急救 或 治疗垫 这样的物品可以恢复它。

你必须配置生命条,定义当生命值等于 0 时会发生什么。你可以把玩家重生到一个 重生垫 智能物品的位置、重置其得分计数器、重生任何敌人、显示 UI 文本,或者任何适合你游戏逻辑的内容。
你也可以在生命值低于某个数值时触发动作,例如当生命值低于 3 时播放特殊音乐或显示 UI 提示。
生命条也可以配置为影响任何东西!例如,在 木门 智能物品下方添加一个生命条。玩家可以使用 剑 智能物品来降低这个生命条的生命值,也可以来自 桶 的爆炸或 机器人敌人的攻击。要实现这一点,请将生命条配置为在其数值为 0 时对其父物品执行一个动作。

像 剑 这样的武器可以被玩家拾取,然后在执行动作时,用来对玩家附近任何其他带有生命条的物品造成伤害。
多人模式
几乎所有智能物品都有多人行为,因此当物品改变状态时,场景中的所有玩家共享相同的体验。如果玩家 A 打开一扇门,玩家 B 也会看到那扇门打开。如果玩家 C 在其他玩家仍在场景中时走进来,她也会看到门已经打开。
不过,如果场景附近没有玩家,那么场景会恢复为默认状态。因此,如果所有玩家都离开了,然后玩家 A 再回来,她会看到门是关闭的(如果这原本就是门的默认状态)。
请确保你设计场景时,一个玩家的动作不会把场景状态破坏给后来进入的其他人。例如,如果场景是一个解谜游戏,你可以使用一个 延迟 动作在一个 工具 智能物品上,让场景中的所有物品在谜题解开几秒后重置为初始状态。
你也可以禁用物品的多人行为,参见 智能物品 - 高级.
故障排查
我场景中的某个物品应该可以点击,但却无法被点击.
请确保它没有被其他东西遮挡。你不能穿过其他物品进行点击。有些物品有一个 碰撞器网格 ,它具有简化的几何体,即使其可见形状看起来没有遮挡,也可能在阻挡你的物品。试着移动这个物品看看会发生什么。
另请参见
最后更新于