---
title: 使用产品样品
slug: world-sdk-guide-ch/8h2iiHluQH8nXbmZmiL1l
docTags: 
createdAt: 2024-09-02T08:34:13.134Z
---

## 步骤 1 : 从 ZEPETO 产品示例开始

:::hint{type="info"}
- ZEPETO 产品示例
  - [https://github.com/naverz/World-Tutorial/tree/main/Product](https://github.com/naverz/World-Tutorial/tree/main/Product)
- ZEPETO 产品 API 参考
  - [\[ZEPETO 产品 API\]](https://developer.zepeto.me/docs/product/)
:::



以下是 ZEPETO 产品的示例实现。

要了解 ZEPETO 产品系统，我们建议您遵循指南以理解示例的实现。

示例包括货币系统、库存系统、物品获取、购买和 UI 资源的示例。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-nFL9nvfD-mKEV78j1QqD6-20240904-102419.png)

:::hint{type="danger"}
**❗️ 注意**

- 在创建 ZEPETO 世界时，请随意使用示例中提供的 UI 资源和脚本。
- 但是，禁止使用发布示例中的资源，除非是 ZEPETO 世界。
:::



### 如何应用 ZEPETO 产品示例

1. 请在ZEPETO Studio注册与样本中使用的名称相同的货币和产品。(如果货币ID和产品ID不同，则无法与样本链接。)



- 货币

| **ID** | **货币名称** |
| ------ | -------- |
| 星星     | 星星       |
| 能量     | 能量       |



- 项目产品

| **ID** | **名称** | **销售货币** | **价格** | **类型** |
| ------ | ------ | -------- | ------ | ------ |
| 注释1    | 注释1    | 星星       | 10     | 非消耗品   |
| 药水4    | 药水4    | 能量       | 4      | 消耗品    |
| 药水3    | 药水3    | 能量       | 3      | 消耗品    |
| 药水2    | 药水2    | 能量       | 2      | 消耗品    |
| 药水1    | 药水1    | 能量       | 1      | 消耗品    |



- 货币套餐产品

| **ID**  | **名称**  | **销售货币**   | **价格** | **包裹配置**   |
| ------- | ------- | ---------- | ------ | ---------- |
| energy4 | energy4 | ZEPETO ZEM | 4      | energy, 40 |
| energy3 | energy3 | ZEPETO ZEM | 3      | energy, 30 |
| energy2 | energy2 | ZEPETO ZEM | 2      | energy, 20 |
| energy1 | energy1 | ZEPETO ZEM | 1      | energy, 10 |



- 项目包装产品

| **ID** | **名称** | **销售货币**   | **价格** | 包配置（项目） |
| ------ | ------ | ---------- | ------ | ------- |
| 药水包    | 药水包    | ZEPETO ZEM | 3      | 药水4, 3  |

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-8CgcTFQAASqbsgbGvqqWb-20240904-102419.png" size="92" width="704" height="465" position="center" caption="包配置示例" showCaption="true"}



2\) 将位于 Assets/ProductSystem/Prefab 的产品画布导入场景。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-aAFHUauSvVyZd_gPb4BgU-20240904-102419.png)



3\) 打开项目设置 > ZEPETO 服务，以检查世界是否正确连接。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-rdtsmEyEXSdMq9z3h6-0x-20240904-102419.png)



4\) 运行 Unity 菜单栏 > ZEPETO > 产品 > 设置。

- 如果货币和产品列表显示正常，链接将成功。

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-nh1t1NNg_Cmj5I69FmvJ3-20240904-102419.png" size="80" width="445" height="179" position="center" showCaption="false"}

- 您可以验证 Assets>Product>Resources 文件夹中的图标图像是否已设置。

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-XiPj2cHCp4Xsq8wRH1uZd-20240904-102419.png" size="64" width="518" height="540" position="center" showCaption="false"}

- 您可以使用您选择的图像注册产品的图标照片。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-kUSSiKBhBObiHCoLKSGrP-20240904-102419.png)



:::hint{type="danger"}
**❗️ 注意**

- 如果您无法正确查看产品，请检查以下内容。
  - 请确保登录Unity编辑器的帐户信息与World ID创建者的信息相同。
  - 确保在项目设置 > ZEPETO服务中的连接世界ID信息是正确的。
  - 请确认您已注册与示例中使用的相同ID货币和产品。
:::



5\) 请开启多服务器并按下播放按钮以运行示例。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-72OBUpZxoQ5VhFaD5dq4l-20240904-102419.png)



## 步骤 2 : 理解ZEPETO产品示例

::embed[[https://www.youtube.com/watch?v=JIzXEaq_nv8](https://www.youtube.com/watch?v=JIzXEaq_nv8)]{url="https://www.youtube.com/watch?v=JIzXEaq_nv8"}

◦ 获得能量 : 当你点击一个按钮时，你会获得一个能量产品。

◦ 使用能量 : 当你点击一个按钮时，你可以扣除一个能量物品。

◦ 增加经验值 : 点击按钮获得10点经验值。如果你获得经验值并且等级提升，你将获得5个星币。

◦ 获取随机物品 : 点击按钮随机将四种药水物品中的一种添加到库存中。

◦ 立即购买 : 当你点击按钮时，你可以扣除一个能量物品并购买药水1。购买窗口不会出现，购买的物品会立即进入库存。

◦ 通过UI购买 : 点击按钮，购买窗口将出现。你可以通过从购买窗口扣除10个星币来购买笔记1。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-d40fwF8IohTCVjFlC2Gmi-20240904-102419.png)

◦ 购买物品包 : 点击按钮，购买窗口将出现。你可以通过从购买窗口扣除ZEPETO ZEM来购买药水包产品。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-N1PK3aQ1VvMLbKX3Kz1JT-20240904-102419.png)

- 背包图标：点击按钮以显示库存窗口。您可以查看您拥有的物品列表，选择它们并使用。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-ai2kdRVt2Qamm31-D2vAA-20240904-102419.png)

- 购物车图标：当您点击按钮时，能量货币的购买窗口会出现。您可以通过从购买窗口中扣除ZEPETO ZEM来购买货币包产品。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-8aWczQeydOhHMFdB6d8FG-20240904-102419.png)



### ZEPETO 产品测试注意事项

- 当多服务器开启时，可以在沙盒服务器上进行 ZEPETO 产品测试。
- 在编辑器中所做的更改不会反映在 ZEPETO Studio 中。
- 对预测试和发布世界所做的更改将反映在 ZEPETO Studio 中。
- 当多服务器关闭时，沙盒测试环境将被初始化。（它将使用 ZEPETO Studio 数据进行初始化。）
- 测试非消耗品
  - 如果多服务器开启，一旦购买后将无法再次购买。
  - 如果关闭多服务器，测试环境将被初始化，因此如果再次开启多服务器，您可以进行购买。
- 未注册世界封面图像，无法正确进行产品测试。请确保在 ZEPETO Studio 中正确注册了世界封面图像。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-nb8KoXn2I06B4uYkuoGt8-20240904-102419.png)



## 步骤 3：购买产品后实施内容

样本在物品使用后不实施内容。
那部分必须按照世界生产者的意图直接实施。
请参考 UICommonBtn.ts 中的脚本。

```typescript
this._multiplay.Room.AddMessageHandler<InventorySync>("SyncInventories", (message) => {
  this.OpenInformation(`${message.productId} 已在库存中 ${InventoryAction[message.inventoryAction]}。
  // 物品使用示例
  if(message.inventoryAction == InventoryAction.Used){
    if(message.productId == "potion1"){
      console.log("使用药水！");
    }
  }
});
```

关键是在使用产品时根据产品 ID 实施内容代码。

如果您想在使用 potion2 时实施，请进行以下更改：

```typescript
this._multiplay.Room.AddMessageHandler<InventorySync>("SyncInventories", (message) => {
  this.OpenInformation(`${message.productId} 已在库存中 ${InventoryAction[message.inventoryAction]}。
  // 物品使用示例
  if(message.inventoryAction == InventoryAction.Used){
    if(message.productId == "potion2"){
      console.log("使用药水2！");
    }
  }
});
```



要使用 ZEPETO 产品与服务器通信经济系统，需要分别实施服务器脚本和客户端脚本。

有关脚本实施，请参考 ZEPETO 产品示例和 ZEPETO 产品 API 中实施的示例脚本。
