行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

教程

7

阅读时间

在 ProtoPie 中创建可复用组件指南 - 第 1 部分

由 David Gilmore 编写的提升团队协作的分步教程。

大卫·吉尔摩, 用户体验设计顾问

最近有一些关于在 ProtoPie 中进行团队协作以及可能有哪些最佳实践的讨论。ProtoPie 的一个优点(也是缺点)与 Figma 很像,即通常有多种方式可以实现相同结果。虽然这有利于快速开发,但也会给团队协作带来挑战。

开发组件库是简化协作的关键一步。学习构建结构良好、可复用的组件,是高效团队协作的一项核心技能。本教程将演示在 ProtoPie 库中构建可复用组件的一些最佳实践。

在本指南中,我将使用本地 pie 内的组件。不过,对于团队协作来说,理想情况下这些组件应构建在共享库中。这样更新就可以在团队中共享,从而确保所有 pies 的一致性。

为保持简单并让核心概念更清晰,我将以朴素的单选按钮作为示例。设想一个游戏的初始界面,用户必须选择玩家(“Player 1”或“Player 2”)或难度级别(“Easy”或“Hard”)。

在这里下载起始 pie。

本教程的起始 Pie 已经有了完全相同的设置,但全部是硬编码,没有考虑复用性。如果你查看该文件,会立刻看到复用的潜力,因为四个单选按钮的代码本质上是相同的。

要真正理解组件的价值,试着在起始 pie 中添加第三个难度级别(“Moderate”)。你会发现这需要大量修改,而且很容易漏掉一个小改动并破坏原型。此外,随着你添加更多按钮,场景中的触发器和响应列表会越来越拥挤,而这还只是让单选按钮工作起来,更不用说那些对其输入作出反应的交互了。

一旦你认同这些好处,我们就可以继续以下步骤。

第 1 步:创建组件

选择名为“Name Buttons”的容器并选择 Create Component。将组件重命名为“Radio Buttons”,然后开始编辑它。确保容器图层设置为 Auto Layout(Hug 和 Hug)。最后,将文本变量“Name”的名称改为“Value”。


start image

创建组件

第 2 步:复制按钮

选择“Button 1”,复制它,然后使用五次“Paste with Linked Triggers”。现在你应该有六个单选按钮,图层名称从 Button 1 到 Button 6。


component screenshot

复制按钮

第 3 步:重命名图层

检查组件内所有图层,并将图层名称改为准确名称。例如,“Button 4”中的“Label”字段应重命名为“Label 4”,而不是“Label 1”。


rename  screenshot

重命名图层

第 4 步:更新触发器和响应

接下来,查看触发器和响应列表。修改描述,使其准确反映每一项需要执行的操作。最好在编辑响应之前先做这一步,因为这样更容易根据描述逐项检查每个动作。

第 5 步:编辑触发器和响应

现在,编辑实际的触发器和响应。将标签赋值给“value”变量这一部分需要调整以实现可复用性。不要使用“Player 1”,而应使用像‘Label 1’.text 这样的表达式。由于有六个按钮,你还需要确保当一个按钮打开时,另外五个按钮关闭。这意味着将“On 2”的不透明度设置为 0 的响应需要为其余按钮再复制四次。


Change responses screenshot

修改响应

第 6 步:预览组件

预览组件,确保新按钮会更新正确的指示器。

第 7 步:发送更新后的值

我们需要一种方式将更新后的值发送回主场景。为此,给“value”变量添加一个触发器,并用它向父级发送一条新消息(我们称之为 NEWVALUE)。在这条消息中将“value”变量作为参数包含进去。设置完成后,你就可以返回场景。


add send value screenshot

添加发送值

第 8 步:更新场景

回到主场景,删除旧的“Difficulty buttons”容器。


remove unnecessary layer screenshot

移除不必要的图层

将“Radio Buttons”组件的新实例拖入场景,并将此图层命名为“Difficulty buttons”。


add another instance screenshot

添加另一个实例

已存在的那个实例应重命名为“Name Buttons”。


hide layers and rename labels

重命名标签

第 9 步:接收来自组件的消息

在场景中添加一个 Receive 触发器,以监听来自子组件的 NEWVALUE 消息。


receive message from component screenshot

添加接收触发器

将其参数赋给相应的变量。


add variable for new instance

添加变量

然后,复制这个触发器,并将其配置为另一个子组件和另一个变量。


duplicate receive trigger

复制接收触发器

第 10 步:最终配置

在“Name buttons”实例中,决定你想要多少个玩家选项,并隐藏其余的单选按钮。根据需要更改可见按钮的标签。对“Difficulty buttons”这一组重复此过程。


hider layers and rename labels screenshot

隐藏图层并重命名标签

现在你应该有一个可运行的原型,其中包含两组单选按钮。你可以预览该 pie,并看到正确的值被赋给“Name”和“Difficulty”变量。虽然按钮标签现在已经正确,但我们将在下一次继续探索更多自定义。

你可以在这里下载完成版 pie!

结论

如果将我们的起点与最终结果进行比较,你会发现现在我们拥有一个触发器非常简洁的场景,以及一个强大的组件,能够按需提供任意 2-6 个单选按钮。现在添加第三组按钮也变得很直接。

在下一篇教程中,我们会进一步增强这个组件,加入以不同方式显示已选按钮的能力,甚至可能纳入不同的选择行为。

视频教程

如需更深入的指南,请查看 David Gilmore 的这段视频演示中的完整操作流程: ProtoPie 可复用组件教程第 1 部分