---
title: คู่มือ Choice Template
slug: world-sdk-guide-th/choice-tower-template-guide
docTags: 
createdAt: 2026-07-31T00:00:00.000Z
---

| สรุป                      | เทมเพลตสำหรับครีเอเตอร์ที่ผู้เล่นสามารถเลือกสิ่งที่ชอบโดยการเดินผ่านประตูที่ตรงกับคำถาม และสามารถเปรียบเทียบผลลัพธ์กับผู้เล่นอื่นใน Sharing Zone ได้ |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| ระดับความยาก              | ระดับกลาง (ไม่ต้องแก้ไขโค้ด)                                                                                                                         |
| ประเภท                    | แบบทดสอบบุคลิกภาพ, Balance Game, การแชร์สถิติทางโซเชียล                                                                                              |
| เล่นคนเดียว/ผู้เล่นหลายคน | ผู้เล่นหลายคน                                                                                                                                        |

:::hint{type="info"}
**📘 ดาวน์โหลด Choice Template**

[https://studio.zepeto.me/console/download/6ace135ae8211029e121b383](https://studio.zepeto.me/console/download/6ace135ae8211029e121b383)
:::

:::hint{type="success"}
**🎥 วิดีโอแนะนำ Choice Template**
หากคุณสะดวก**รับชมแบบวิดีโอ โปรดทำตามวิดีโอ**ด้านล่างนี้
รองรับคำบรรยายหลายภาษา ดังนั้นโปรด**เปิดคำบรรยาย**เมื่อรับชม!
:::

::embed[]{url="https://www.youtube.com/embed/FS4XEyo_eas"}

# สร้างโลก Balance Game ด้วย Choice Template

**Choice Template** เป็นเทมเพลตสำหรับครีเอเตอร์ที่ให้คุณสามารถสร้างโลกที่ผู้เล่นจะเลือกสิ่งที่ชอบโดยการเดินผ่านประตูที่ตรงกับคำถาม

ครีเอเตอร์สามารถเปลี่ยนคำถาม, ตัวเลือก, จำนวนด่าน และรูปภาพบนบอร์ดผลลัพธ์ได้โดยไม่ต้องแก้ไขโค้ดใดๆ

เมื่อผู้เล่นผ่านด่านทั้งหมดแล้ว พวกเขาจะสามารถดูผลลัพธ์การเลือกของตนเองและเปรียบเทียบกับผู้เล่นอื่นได้ใน Sharing Zone

:::hint{type="success"}
**หากทำตามคู่มือนี้ตามลำดับ คุณจะสามารถสร้างโลกแบบเลือกตอบที่มีฟีเจอร์ดังต่อไปนี้ได้!**

- ประตูตัวเลือกที่แสดงคำถามและรูปภาพตัวเลือก
- ระบบการดำเนินเกมที่เชื่อมต่อหลายด่านเข้าด้วยกันตามลำดับ
- การบันทึกและกู้คืนประวัติการเลือกครั้งก่อนของผู้เล่น
- HUD ที่แสดงสัดส่วนการเลือกแบบเรียลไทม์
- Sharing Zone สำหรับเปรียบเทียบผลลัพธ์ของตัวคุณเองกับผู้เล่นอื่น
- ฟีเจอร์ในการบันทึกผลลัพธ์เป็นรูปภาพหรือแชร์ไปยังฟีด ZEPETO
:::

:::BlockQuote
📌 **ลองตั้งค่าเทมเพลตตามลำดับด้านล่างนี้ดูสิ!**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[1. การวางเทมเพลต](docId:0eNGp8ENqy5KLSnlteBKT)

[2. การตั้งค่าคำถามและตัวเลือก](docId:0eNGp8ENqy5KLSnlteBKT)

[3. การเพิ่มและจัดการคำถาม](docId:0eNGp8ENqy5KLSnlteBKT)

[4. การตั้งค่ากฎการเล่นเกม](docId:0eNGp8ENqy5KLSnlteBKT)

[5. Sharing Zone](docId:0eNGp8ENqy5KLSnlteBKT)
:::

:::VerticalSplitItem
[6. การทดสอบโลก](docId:0eNGp8ENqy5KLSnlteBKT)

[7. FAQ](docId:0eNGp8ENqy5KLSnlteBKT)

[8. ไอเดียการนำไปใช้งาน](docId:0eNGp8ENqy5KLSnlteBKT)

[9. การใช้งาน Sample Scene](docId:0eNGp8ENqy5KLSnlteBKT)
:::
::::

# 1. การวางเทมเพลต

## การเพิ่ม Choice Template

**Choice\_Template** Prefab ประกอบด้วยออบเจกต์ที่จำเป็นทั้งหมดในการรัน Choice Template เช่น ประตูตัวเลือก, HUD, บอร์ดผลลัพธ์ และ Sharing Zone

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/id26L9TvJjz0OtETrQluC_choice-template-prefab.png" size="80" isUploading="false" width="636" height="449" darkWidth="636" darkHeight="449" alt="ChoiceTemplatePrefab" showCaption="false"}

1. ในหน้าต่าง **Project** ของ Unity ให้ค้นหา `Assets/Choice_Template/Choice_Template.prefab`
2. ลาก `Choice_Template.prefab` ไปยังหน้าต่าง **Scene** หรือ **Hierarchy**
3. ตรวจสอบที่หน้าต่าง **Hierarchy** เพื่อให้แน่ใจว่ามีออบเจกต์ `Choice_Template` ถูกสร้างขึ้นมา 1 รายการ

:::hint{type="success"}
หากคุณต้องการเริ่มต้นอย่างสะดวกสบายโดยใช้ Sample Scene โปรดดูที่ [9. การใช้งาน Sample Scene](docId:0eNGp8ENqy5KLSnlteBKT)!
:::

## บทแนะนำการใช้งาน Choice Template

เมื่อคุณวาง `Choice_Template` ลงใน Scene เป็นครั้งแรก หน้าต่าง **บทแนะนำการใช้งาน Choice Template** จะเปิดขึ้นโดยอัตโนมัติ หน้าต่างบทแนะนำนี้จะแนะนำตำแหน่งการตั้งค่าหลักของเทมเพลตตามลำดับดังต่อไปนี้:

1. สำรวจองค์ประกอบของเทมเพลต
2. ป้อนคำถามและคำตอบ
3. นำไปใช้กับ Scene
4. เพิ่มและจัดการคำถาม
5. ตั้งค่ากติกาของเกม
6. ตกแต่ง Sharing Zone
7. ทดสอบเวิลด์

ลองคลิกปุ่ม **เปิดใน Inspector** ออบเจกต์ที่เกี่ยวข้องจะถูกเลือกโดยอัตโนมัติในหน้าต่าง Hierarchy เพื่อให้คุณสามารถดำเนินการตั้งค่าในหน้าต่าง Inspector ได้ทันที

**ต้องการเปิดหน้าต่างบทแนะนำอีกครั้งหรือไม่?**

เลือก `Choice_Template` ในหน้าต่าง Hierarchy จากนั้นคลิกปุ่ม **Open Choice Template Tutorial** ในหน้าต่าง Inspector

:::hint{type="danger"}
**ข้อควรระวัง**

- กรุณาวาง `Choice_Template` เพียง 1 รายการต่อ Scene เท่านั้น
- ก่อนที่จะเข้าใจวิธีการทำงานอย่างครบถ้วน ขอแนะนำให้ไม่ลบหรือยกเลิกการเชื่อมต่อออบเจกต์ภายในเทมเพลต
- กรุณาทำการตั้งค่าทั้งหมดในโหมด **Edit** ไม่ใช่ในโหมด Play
:::

## โครงสร้างพื้นฐานของเทมเพลต

`Choice_Template` ประกอบด้วย 3 ส่วนหลักดังต่อไปนี้:

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/QvcHCgyREVmi2gHNZVkrf_choice-template.png" size="50" isUploading="false" width="266" height="66" darkWidth="266" darkHeight="66" alt="Choice_Template" showCaption="false"}

- **Choice\_UI**
  - คอลเล็กชันของ UI ที่แสดงให้ผู้เล่นเห็น เช่น HUD (ตัวเลือกของฉัน, ความคืบหน้า, สัดส่วนการเลือก), การแจ้งเตือนแบบ Toast และหน้าจอผลลัพธ์
- **Choice\_GameManager**
  - จัดการลำดับความคืบหน้าของคำถาม, ประวัติการเลือก, และการบันทึกรวมถึงการกู้คืนข้อมูล
  - แต่ละคำถาม (`Choice_Stage`) และประตูตัวเลือกจะถูกวางไว้ใต้ออบเจกต์นี้
- **Choice\_SharingZone**
  - พื้นที่สำหรับผู้เล่นที่เลือกตัวเลือกทั้งหมดเสร็จสิ้นแล้ว เพื่อดูผลลัพธ์ของตนเองและตรวจสอบผลลัพธ์ของผู้เล่นคนอื่นๆ

:::hint{type="success"}
**เคล็ดลับ**

ในตอนแรก ให้ลองทดสอบ 1 ครั้งในสถานะเริ่มต้นโดยไม่ต้องเปลี่ยนแปลงตำแหน่งหรือขนาดของเทมเพลตมากนัก
มันจะง่ายต่อการทำความเข้าใจหากคุณปรับระยะห่างของด่านและตกแต่งสภาพแวดล้อมหลังจากตรวจสอบการทำงานพื้นฐานแล้ว
:::

# 2. การตั้งค่าคำถามและตัวเลือก

## การใช้ Stage Manager

ด้วยการใช้ **StageManager** ที่อยู่ภายใน **ออบเจกต์ Choice\_Template** คุณจะสามารถแก้ไขคำถามและตัวเลือกที่จะแสดงในแต่ละด่านได้ในที่เดียว

เลือก **ออบเจกต์ Choice\_Template** ในหน้าต่าง Hierarchy

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/vFCySiuFBVdjMdb5r-H1P_group-3.png" size="80" isUploading="false" width="767" height="686" darkWidth="767" darkHeight="686" alt="StageManager" showCaption="false"}

:::hint{type="success"}
**เคล็ดลับ**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/M5eJ10m-gM_V50sm7OiXg_group-44.png" size="60" isUploading="false" width="428" height="123" darkWidth="428" darkHeight="123" showCaption="false"}

เพื่อป้องกันไม่ให้ Inspector สลับไปยังออบเจกต์อื่นขณะแก้ไขคำถามและคำตอบ โปรดเปิดใช้งานปุ่ม **Lock** ที่ด้านบนขวาของหน้าต่าง Inspector
:::

:::hint{type="info"}
ชื่อรายการใน Inspector อาจแสดงแตกต่างกันขึ้นอยู่กับการตั้งค่าภาษาบน PC ของคุณ คู่มือนี้อธิบายโดยอ้างอิงจากหน้าจอ Editor ภาษาไทย เช่น **รายการคำถาม** และ **นำไปใช้กับ Scene**
:::

- **แสดงใน Scene**
  - เลือกออบเจกต์คำถามที่เกี่ยวข้องและเลื่อนมุมมองกล้องของ Scene View ไปยังตำแหน่งนั้น
  - คุณสามารถใช้ฟีเจอร์นี้เพื่อตรวจสอบและปรับตำแหน่งของคำถามและประตูได้
- **เมนู ⋯**
  - คุณสามารถ **ทำสำเนาคำถามนี้** หรือ **ลบคำถาม** ได้
- **ยุบทั้งหมด / ขยายทั้งหมด**
  - ยุบหรือขยายรายการคำถามทั้งหมดในครั้งเดียว

หากคุณคลิกชื่อหรือลูกศรของแต่ละรายการเพื่อขยาย คุณจะสามารถตั้งค่าคุณสมบัติดังต่อไปนี้:

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/3VpmEFDw-Mm7jo1G2kF7g_group-39.png" size="80" isUploading="false" width="767" height="897" darkWidth="767" darkHeight="897" alt="StageManager" showCaption="false"}

- **ข้อความคำถาม**
  - ป้อนคำถามที่จะแสดงให้ผู้เล่นเห็นในด่านนั้น
    - ตัวอย่าง: สไตล์การแต่งตัวที่คุณชอบคือแบบไหน?
- **ภาพพื้นหลังคำถาม (ไม่บังคับ)**
  - กำหนดรูปภาพพื้นหลังที่จะแสดงบนแผงคำถาม
  - คุณสามารถปล่อยว่างไว้ได้หากไม่ต้องการใช้รูปภาพ
- **คำตอบ 1, คำตอบ 2 …**
  - หัวข้อเหล่านี้จะตรงกับแต่ละประตู เมื่อขยายออกจะเห็นคุณสมบัติ 2 อย่างดังนี้:
  - **ข้อความคำตอบ**
    - ป้อนชื่อตัวเลือกที่จะแสดงบนแต่ละประตู
    - ตัวอย่าง: สไตล์น่ารัก
  - **รูปภาพคำตอบ (ไม่บังคับ)**
    - ใช้เมื่อคุณต้องการแสดงตัวเลือกพร้อมรูปภาพ
    - หากคุณไม่ใช้รูปภาพ จะมีเพียงข้อความเท่านั้นที่แสดงขึ้นมา

### การเพิ่มและลบคำตอบ

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/qIeJ4vmqiKCRrYc9TuWgf_group-42.png" size="60" isUploading="false" width="767" height="897" darkWidth="767" darkHeight="897" alt="Answer" showCaption="false"}

คุณสามารถเพิ่มหรือลดจำนวนคำตอบ (ประตู) ในแต่ละคำถามได้โดยตรง ไม่จำเป็นต้องคัดลอกออบเจกต์ประตูด้วยตนเอง

- การคลิกปุ่ม **+ เพิ่มคำตอบ N** ด้านล่างรายการคำตอบจะเป็นการสร้างประตูเพิ่มเติม 1 บานสำหรับคำถามนั้น และรายการข้อมูลคำตอบจะถูกเพิ่มเข้ามาด้วย
- การคลิกปุ่มลบทางด้านขวาของแต่ละคำตอบ จะแสดงหน้าต่างยืนยันขึ้นมา หลังจากลบแล้ว คำตอบที่เหลือจะถูกจัดเรียงหมายเลขใหม่โดยอัตโนมัติ
- ต้องมี **อย่างน้อย 2** คำตอบต่อคำถาม หากเหลือเพียง 2 คำตอบ ปุ่มลบจะถูกปิดใช้งาน

### การนำคำถามและคำตอบไปใช้งาน

หลังจากแก้ไขเนื้อหาใน Inspector แล้ว คุณ **ต้อง** คลิกปุ่ม **นำไปใช้กับ Scene**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dp9md17s48dkl-_-3VBQ7_group-40.png" size="80" isUploading="false" width="767" height="686" darkWidth="767" darkHeight="686" alt="Apply To Scene" showCaption="false"}

1. ป้อนข้อความคำถาม/คำตอบ หรือรูปภาพ
2. คลิกปุ่ม **นำไปใช้กับ Scene** ใต้รายการ
   - หากเนื้อหาที่ป้อนแตกต่างจากเนื้อหาใน Scene ปุ่มจะแสดงเป็นสีส้มพร้อมกับข้อความ "(มีการเปลี่ยนแปลง)"
3. ตรวจสอบแผงคำถามและประตูตัวเลือกใน Scene View เพื่อให้แน่ใจว่าการเปลี่ยนแปลงได้รับการนำไปใช้แล้ว

หากเนื้อหาใน Scene และข้อมูลที่ป้อนไม่ตรงกัน ปุ่มจะเปลี่ยนเป็น **สีส้ม** และมีข้อความแจ้งเตือนปรากฏขึ้น

เมื่อคุณคลิกปุ่ม **นำไปใช้กับ Scene** ข้อความคำถาม, ภาพพื้นหลังคำถาม, ข้อความคำตอบ, รูปภาพคำตอบ, ชื่อออบเจกต์คำถาม และคีย์โลคัลในไฟล์ csv ของ Localization จะได้รับการอัปเดตไปพร้อมกัน

:::hint{type="success"}
**การตั้งค่าคำถาม/คำตอบหลายภาษา**
เมื่อคุณคลิก **นำไปใช้กับ Scene** คีย์ต่อไปนี้จะถูกเพิ่มลงในชีต `ZW_LOCALIZATION_CHOICE_TOWER` โดยอัตโนมัติ:

- คำถาม: `STAGE_{ชื่อ Scene}_{ลำดับ}_QUESTION`
- คำตอบ: `STAGE_{ชื่อ Scene}_{ลำดับ}_GATE_n` (`n` คือหมายเลขคำตอบ)

โปรดป้อนคำถามและคำตอบสำหรับภาษาอื่นๆ โดยแยกตามภาษาในชีตที่เกี่ยวข้อง คุณสามารถตั้งค่าเนื้อหาพื้นฐานของคำถามและคำตอบได้ใน Unity Inspector และจัดการข้อความสำหรับภาษาอื่นๆ ในชีต
:::

:::hint{type="danger"}
**ข้อควรระวัง**

- ตรวจสอบให้แน่ใจว่ามีประตูอย่างน้อย 2 บานต่อ 1 คำถาม
- หากมีข้อความแจ้งว่าจำนวนคำถามที่ตรวจพบแตกต่างจากจำนวนรายการข้อมูล โปรดตรวจสอบว่ามีคำถามหรือรายการข้อมูลใดสูญหายไปหรือไม่ เฉพาะรายการที่ตรงกันเท่านั้นที่จะถูกนำไปใช้กับ Scene
- เมื่อคุณใส่รูปภาพคำตอบ ขนาดตัวอักษรจะปรับอัตโนมัติเพื่อให้พอดีกับรูปภาพที่แสดง
:::

# 3. การเพิ่มและจัดการคำถาม

## การเพิ่มคำถามใหม่

เมื่อคุณต้องการเพิ่มจำนวนคำถาม คุณไม่จำเป็นต้องคัดลอกออบเจกต์ด้วยตนเอง

ในส่วน **คำถามใหม่** ที่ด้านล่างของ Inspector คุณสามารถสร้างคำถามใหม่ต่อจากคำถามสุดท้ายได้ด้วยการคลิกปุ่มเพียงครั้งเดียว

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/L9VqAl9jM0hBor0DtqQ9A_group-42.png" size="70" isUploading="false" width="767" height="897" darkWidth="767" darkHeight="897" showCaption="false"}

- **รูปแบบการวาง**
  - **ทำซ้ำระยะเดิม:** วางตำแหน่งโดยใช้ระยะห่างที่แน่นอนระหว่าง 2 คำถามล่าสุด แนะนำให้ใช้สำหรับโครงสร้างพื้นฐานที่มีระยะห่างคำถามสม่ำเสมอ
  - **กำหนดเอง:** วางตำแหน่งโดยใช้ระยะห่างที่กำหนดผ่าน **ระยะเลื่อน** ด้านล่าง
- **อ้างอิงจาก**
  - แสดงเกณฑ์ที่กำลังกำหนดตำแหน่งอยู่ในปัจจุบัน
    - ตัวอย่าง: Question 2 → Question 3 ทำซ้ำระยะห่าง
  - หากมีคำถามน้อยกว่า 2 ข้อ จะไม่สามารถวัดระยะห่างได้ ดังนั้นจึงใช้ได้แค่ **กำหนดเอง** เท่านั้น
- **ระยะเลื่อน**
  - ค่าระยะทาง `X`, `Y`, `Z` เมื่อเทียบกับคำถามล่าสุด
  - หากคุณเลือก **ทำซ้ำระยะเดิม** ค่าที่วัดได้จะแสดงขึ้นมาและไม่สามารถแก้ไขได้ด้วยตนเอง
- **ดูตัวอย่างตำแหน่งใน Scene View**
  - เมื่อทำเครื่องหมายถูก ตำแหน่งที่จะสร้างคำถามใหม่จะถูกทำเครื่องหมายด้วยรูปสี่เหลี่ยมใน Scene View
- **+ เพิ่มคำถาม N**
  - ทำสำเนาคำถามล่าสุด และเพิ่มรายการข้อมูลคำถาม/คำตอบและหมายเลขโดยอัตโนมัติ

:::hint{type="danger"}
หลังจากเพิ่มคำถามแล้ว กรุณา **แก้ไขข้อความคำถามและคำตอบตามที่ต้องการ แล้วคลิก นำไปใช้กับ Scene**
:::

## การทำสำเนาและการลบคำถาม

- เมนู ⋯
  - **ทำสำเนาคำถามนี้**: เลือกจากเมนู ⋯ ในรายการคำถาม จะเป็นการคัดลอกโครงสร้างของคำถามนั้นและนำไปเพิ่มต่อท้ายคำถามสุดท้าย
  - **ลบคำถาม**: เลือกจากเมนู ⋯ และยืนยันในหน้าต่างป๊อปอัป หมายเลขคำถามที่เหลืออยู่จะถูกจัดเรียงใหม่โดยอัตโนมัติ
    - คุณจะไม่สามารถลบได้หากเหลือคำถามเพียงข้อเดียว

:::hint{type="danger"}
**ข้อควรระวัง**

- หมายเลขและชื่อออบเจกต์คำถามจะถูกจัดการโดยอัตโนมัติ **ห้ามเปลี่ยนแปลงชื่อออบเจกต์คำถามใน Hierarchy ตามอำเภอใจ**
:::

## การใส่รูปภาพคำถาม/คำตอบ

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/NDrOdkrh8I1-DJEATItvS_imagesetting.png" size="70" isUploading="false" width="580" height="637" darkWidth="580" darkHeight="637" alt="ImageSetting" showCaption="false"}

1. เพิ่มไฟล์รูปภาพลงในหน้าต่าง **Project** ของ Unity
2. เลือกไฟล์นั้นและกำหนดค่า **Texture Type** เป็น **Sprite (2D and UI)** ใน Inspector
3. เชื่อมต่อรูปภาพเข้ากับช่อง **ภาพพื้นหลังคำถาม** หรือ **รูปภาพคำตอบ** ใน StageManager
4. คลิก **นำไปใช้กับ Scene** เพื่อตรวจสอบสถานะการแสดงผลจริง

:::hint{type="success"}
**เคล็ดลับ**

สำหรับรูปภาพตัวเลือก ขอแนะนำให้ใช้รูปทรง **สี่เหลี่ยมจัตุรัส** หรืออัตราส่วนที่ใกล้เคียง เพื่อให้แยกแยะได้ง่ายภายในประตู

การใช้ข้อความเพียงอย่างเดียวเหมาะสำหรับแบบทดสอบบุคลิกภาพ ในขณะที่การใช้ข้อความและรูปภาพร่วมกันเหมาะอย่างยิ่งสำหรับ **เนื้อหาที่การเปรียบเทียบด้วยภาพมีความสำคัญ** เช่น แฟชั่นหรืออาหาร
:::

# 4. การตั้งค่ากฎการเล่นเกม

## การตั้งค่า Choice GameManager

เลือก `Choice_Template > Choice_GameManager` ใน Hierarchy

คุณสามารถกำหนดค่ากฎความคืบหน้าของเกมได้ในส่วน **Game Rules** ใน Inspector

**Game Rules**

- **Allow Revote**
  - **หากเปิดใช้งาน** ผู้เล่นสามารถเลือกประตูใหม่สำหรับคำถามที่ตอบไปแล้วได้
  - **หากปิดใช้งาน** ผู้เล่นจะไม่สามารถเปลี่ยนคำตอบได้จนกว่าประวัติความคืบหน้าของพวกเขาจะถูกรีเซ็ต
- **Enforce Stage Order**
  - **หากเปิดใช้งาน** ผู้เล่นจะต้องตอบคำถามก่อนหน้าให้เสร็จสิ้นก่อนจึงจะสามารถเลือกคำถามถัดไปได้
  - ใช้ฟีเจอร์นี้สำหรับโลกที่มีการดำเนินเกมตามลำดับหมายเลขคำถาม
- **Keep Choices On Rejoin**
  - **หากเปิดใช้งาน** ตัวเลือกก่อนหน้าจะถูกกู้คืนเมื่อผู้เล่นเข้ามาในห้องอีกครั้ง และผู้เล่นจะเริ่มเล่นต่อจากหลังประตูสุดท้ายที่เพิ่งผ่านไป
  - **หากปิดใช้งาน** ผู้เล่นที่ยังตอบคำถามไม่ครบทุกข้อจะเริ่มต้นใหม่จากคำถามแรก ส่วนผลลัพธ์ของผู้เล่นที่ตอบคำถามครบแล้วจะยังคงอยู่

# 5. Sharing Zone

## Sharing Zone คืออะไร?

ผู้เล่นที่ตอบคำถามครบทั้งหมดแล้วสามารถดูผลลัพธ์ของตัวเองได้ใน **Choice\_SharingZone** หากมีผู้เล่นคนอื่นอยู่ในพื้นที่เดียวกัน พวกเขายังสามารถเปรียบเทียบผลลัพธ์กันและกันได้อีกด้วย

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/aa4vjVL1oi5_WO-lz_8VK_07-sharingzone-resultboards.png" size="80" isUploading="false" width="1920" height="1080" darkWidth="1920" darkHeight="1080" alt="SharingZone" showCaption="false"}

- คุณสามารถตรวจสอบผลลัพธ์การเลือกของตนเองได้
- คุณสามารถเปรียบเทียบผลลัพธ์ของคุณกับผู้เล่นคนอื่นในพื้นที่เดียวกันได้
- คุณสามารถบันทึกผลลัพธ์เป็นรูปภาพหรือแชร์ไปยังฟีด ZEPETO ได้

:::hint{type="danger"}
หาก **Enforce Stage Order** เปิดใช้งานอยู่ คุณจะต้องตอบคำถามทั้งหมดตามลำดับก่อนจึงจะสามารถเข้าสู่ Sharing Zone ได้
:::

## การเปลี่ยนดีไซน์ Sharing Zone

เทมเพลตนี้มีการนำดีไซน์ UI เริ่มต้นมาใช้ **หากคุณต้องการเปลี่ยนดีไซน์ให้เข้ากับคอนเซปต์ของโลกคุณ** ให้กำหนดค่าต่างๆ ด้านล่างนี้

เลือก `Choice_Template > Choice_SharingZone` ใน Hierarchy

คุณสามารถเปลี่ยนรูปภาพด้านล่างนี้ได้ใน **Sharing Display Style Manager** ที่หน้าต่าง Inspector

- **Result Board Container Background**
  - พื้นหลังของพื้นที่กระดานผลลัพธ์ทั้งหมดที่แสดงใน Sharing Zone
- **My Board Background**
  - พื้นหลังเฉพาะที่ใช้เพื่อแยกความแตกต่างของการ์ดผลลัพธ์ของคุณเอง
- **Choice Result Board Background**
  - พื้นหลังเริ่มต้นที่ใช้สำหรับการ์ดผลลัพธ์ของผู้เล่นคนอื่น

:::hint{type="danger"}
**ข้อควรระวัง**

- หลังจากใส่รูปภาพแล้ว คุณต้องคลิกปุ่ม **Apply Sharing Zone Images** เสมอ
- ข้อความ, รูปโปรไฟล์ และผลลัพธ์ของการ์ดผลลัพธ์สามารถตรวจสอบได้ในโหมด Play
- ขอแนะนำว่าอย่าเปลี่ยนชื่อออบเจกต์ `Result_Board_Container`, `Choice_ResultBoard` และ `My_Background`
:::

# 6. การทดสอบโลก

## ทดสอบในโหมด Play

หลังจากตั้งค่าเสร็จสิ้นแล้ว ให้คลิก **Play** ที่ด้านบนของ Unity และทำการทดสอบตามลำดับการเล่นจริง

เมื่อทำการทดสอบ โปรดเปิดใช้งานระบบผู้เล่นหลายคน (Multiplayer) ก่อนเข้าเล่น!
[คุณเกือบจะเสร็จแล้ว — มาตรวจสอบการตั้งค่าพื้นฐานของโปรแกรมกัน:](docId\:mUhVt1ZpDYrJC-0ekNpjw)

::::WorkflowBlock
:::WorkflowBlockItem
**ตรวจสอบคำถามแรก**

- ตรวจสอบตำแหน่งเริ่มต้น, ตรวจสอบว่าคำถาม/คำตอบแสดงผลอย่างถูกต้องหรือไม่ และ HUD มีการอัปเดตเมื่อผ่านประตูหรือไม่
:::

:::WorkflowBlockItem
**ตรวจสอบการดำเนินเกมของโลก**

- ตรวจสอบว่าสามารถเข้าสู่คำถามถัดไปได้หรือไม่, HUD แสดงตัวเลือกและสัดส่วนการเลือกของคุณหรือไม่ และการตั้งค่า **Enforce Stage Order** รวมถึง **Allow Revote** ทำงานตามที่ตั้งใจไว้หรือไม่
:::

:::WorkflowBlockItem
**ตรวจสอบ Sharing Zone**

- เข้าสู่ Sharing Zone หลังจากตอบคำถามครบทุกข้อ
- ตรวจสอบการ์ดผลลัพธ์และรายละเอียดผลลัพธ์ของคุณ รวมถึงตรวจสอบให้แน่ใจว่าฟีเจอร์การบันทึกภาพและแชร์ไปยังฟีดทำงานได้อย่างถูกต้อง
:::

:::WorkflowBlockItem
**ตรวจสอบการรีเซ็ตความคืบหน้า**

- ลองใช้ปุ่ม Reset จากหน้าจอผลลัพธ์หรือ HUD เพื่อตรวจสอบว่าบันทึกการเลือก/HUD ถูกล้างข้อมูล และคุณได้กลับไปยังจุดเริ่มต้นหรือไม่
:::
::::

## เช็คลิสต์ก่อนการเผยแพร่

:::hint{type="success"}
**โปรดตรวจสอบทุกรายการด้านล่างนี้ก่อนที่จะเผยแพร่โลกของคุณ!**

- [ ] มี `Choice_Template` เพียง 1 รายการใน Scene
- [ ] คำถามทุกข้อมีอย่างน้อย 2 คำตอบ (ประตู)
- [ ] หลังจากแก้ไขคำถาม/คำตอบแล้ว ได้ทำการคลิก **นำไปใช้กับ Scene** แล้ว
- [ ] การจัดวางคำถามและการตั้งค่า **Allow Revote**, **Enforce Stage Order** และ **Keep Choices On Rejoin** ตรงกับแผนงานที่ออกแบบไว้
- [ ] หลังจากแก้ไขรูปภาพใน Sharing Zone แล้ว ได้ทำการคลิก **Apply Sharing Zone Images** แล้ว
- [ ] ป้อนคำถาม/คำตอบสำหรับภาษาที่จำเป็นลงใน `ZW_LOCALIZATION_CHOICE_TOWER` เรียบร้อยแล้ว
- [ ] หลังจากตอบคำถามครบทุกข้อแล้ว Sharing Zone และกระดานผลลัพธ์จะแสดงขึ้นมา
- [ ] หลังจากทำการ Reset เกมจะเริ่มต้นใหม่ได้อย่างราบรื่นตั้งแต่คำถามแรก
- [ ] ตรวจสอบให้แน่ใจว่าไฟล์ Scene ที่เผยแพร่ยังคงอยู่โดยไม่ถูกทำสำเนาหรือบันทึกภายใต้ชื่ออื่น
:::

:::hint{type="danger"}
**ข้อควรระวัง**

**เมื่อทำการอัปเดตโลกที่เปิดเผยแพร่ไปแล้ว** หากคุณทำสำเนาไฟล์ Scene หรือบันทึกด้วยชื่ออื่น ข้อมูลประวัติการเลือกของโลกเดิมจะถูกรีเซ็ต **กรุณาใช้ Scene เดิมที่เคยเปิดเผยแพร่ไปแล้วในการอัปเดต**
:::

# 7. FAQ

### ฉันเปลี่ยนคำถามและคำตอบแล้ว แต่มันไม่แสดงใน Scene

1. โปรดเลือกออบเจกต์ Choice\_Template ใน Hierarchy
2. ในส่วน **รายการคำถาม** ของ Inspector ให้ตรวจสอบว่ามีการป้อนคำถามและคำตอบที่แก้ไขอย่างถูกต้องหรือไม่
3. คลิกปุ่ม **นำไปใช้กับ Scene** เพื่อปรับปรุงข้อมูลการเปลี่ยนแปลง
4. หากปุ่มยังคงแสดงข้อความ **(มีการเปลี่ยนแปลง)** อยู่ โปรดตรวจสอบการแก้ไขของคุณอีกครั้ง และกดปุ่ม **นำไปใช้กับ Scene** อีกรอบ

### คำถามที่เพิ่มเข้ามาใหม่ ไม่แสดงในรายการ

1. ตรวจสอบว่าออบเจกต์คำถามที่เพิ่มใหม่ใน Hierarchy อยู่ภายใต้ Choice\_Template หรือไม่
2. เลือกออบเจกต์คำถามนั้น และตรวจสอบให้แน่ใจว่ามีสคริปต์ **Stage** แนบอยู่ใน Inspector
3. หากโหมด Play กำลังทำงานอยู่ ให้ปิดโหมด Play จากนั้นตรวจสอบว่าออบเจกต์คำถามถูกเพิ่มลงใน Hierarchy สำเร็จหรือไม่
4. เลือก Choice\_Template อีกครั้ง แล้วตรวจสอบว่าจำนวนคำถามตรงกับตัวเลขบนป้ายบอกจำนวนทางด้านขวาของ **รายการคำถาม** ใน Inspector หรือไม่

### ประวัติการเลือกไม่ได้รับการบันทึกหรือกู้คืน

- โปรดตรวจสอบการตั้งค่า **Keep Choices On Rejoin** ใน `Choice_GameManager` หากปิดใช้งานอยู่ ผู้เล่นที่ยังทำคำถามไม่ครบทุกข้อจะเริ่มเล่นใหม่จากคำถามแรกเมื่อกลับเข้าห้องมาอีกครั้ง
- เมื่อทำการ **อัปเดต** หลังจากที่เผยแพร่ไปแล้ว หากคุณทำสำเนา Scene หรือบันทึกเป็นชื่ออื่น ระบบจะจัดสรรพื้นที่บันทึกข้อมูลใหม่ ทำให้ไม่เห็นบันทึกเก่า **เพื่อรักษาบันทึกข้อมูลเก่าเอาไว้ กรุณาใช้ Scene เดิมที่เผยแพร่แล้ว**

### ฉันไม่สามารถเลือกประตูสำหรับคำถามถัดไปได้

- ตรวจสอบว่าเปิดใช้งาน **Enforce Stage Order** หรือไม่
- ตรวจสอบว่าคุณทำคำถามก่อนหน้านี้ครบทุกข้อแล้วหรือยัง
- ตรวจสอบว่าลำดับของคำถามใน StageManager ตรงกับลำดับของประตูที่จัดวางไว้ใน Scene หรือไม่

### ฉันไม่สามารถเข้าสู่ Sharing Zone ได้

- ตรวจสอบว่ามีคำถามที่ยังทำไม่เสร็จหลงเหลืออยู่หรือไม่
- ตรวจสอบว่าความคืบหน้าบน HUD ตรงกับจำนวนคำถามทั้งหมดจริงหรือไม่
- หากคุณเปลี่ยนตัวเลือกก่อนหน้านี้ โปรดทำคำถามที่เกี่ยวข้องทั้งหมดให้เสร็จอีกครั้ง

### รูปภาพใน Sharing Zone ไม่ยอมเปลี่ยน

- ตรวจสอบว่าได้ใส่รูปภาพใน **Sharing Display Style Manager** ของ `Choice_SharingZone` แล้วหรือไม่
- ตรวจสอบว่าคุณได้คลิก **Apply Sharing Zone Images** แล้วหรือไม่
- ตรวจสอบว่าชนิดของ Texture (**Texture Type**) สำหรับรูปภาพถูกตั้งค่าเป็น **Sprite (2D and UI)** หรือไม่

### ฉันต้องการเปลี่ยนเสียง BGM

- หลังจากเพิ่มไฟล์ BGM ที่คุณต้องการใช้เป็นเพลงพื้นหลังในหน้าต่าง Project แล้ว ให้เปลี่ยนชื่อไฟล์เพลงให้ตรงกับชื่อ Scene ที่คุณวางแผนจะเผยแพร่ทุกประการ

# 8. ไอเดียการนำไปใช้งาน

ด้วยการเปลี่ยนเนื้อหาคำถาม, รูปภาพบนประตู, และพื้นที่รอบๆ ด่าน คุณสามารถใช้เทมเพลตเดียวกันเพื่อสร้างโลกที่หลากหลายได้

- **โลกสำหรับเลือกสิ่งของที่ชอบ** เพื่อเปรียบเทียบอาหาร, สถานที่ท่องเที่ยว หรือแฟชั่น
- **แบบทดสอบบุคลิกภาพ** ที่จะได้ข้อสรุปผลลัพธ์ผ่านชุดคำถามต่อเนื่อง
- **Balance Game** เพื่อเปรียบเทียบตัวเลือกของคุณกับเพื่อนๆ
- **คอนเทนต์ให้แฟนคลับมีส่วนร่วม** ที่ให้ผู้เล่นเลือกผลิตภัณฑ์ของแบรนด์หรือคาแรกเตอร์ที่ชื่นชอบ
- **โลกที่มีเนื้อเรื่อง** ซึ่งคุณสามารถเลือกทางแยกของเส้นทางในเนื้อเรื่องได้

:::hint{type="success"}
**เคล็ดลับ**

ลองตกแต่งพื้นที่ให้เข้ากับธีมของคำถามของคุณดูสิ
การวางพรอพที่เกี่ยวข้องไว้รอบๆ ประตูตัวเลือก จะช่วยให้ผู้เล่นเข้าใจในตัวเลือกต่างๆ ได้อย่างเป็นธรรมชาติมากขึ้น
:::

# 9. การใช้งาน Sample Scene

Choice Template มี Sample Scene เพื่อสาธิตวิธีที่คุณสามารถขยายความสามารถของเทมเพลตให้ดูด้วย

คุณสามารถค้นหา Sample Scene ได้ในโฟลเดอร์ `Assets/Choice_Template/SampleScenes`

| **Scene**      | **การกำหนดค่า**                                                      | **รายละเอียด**                                            |
| -------------- | -------------------------------------------------------------------- | --------------------------------------------------------- |
| **BasicScene** | ฟีเจอร์พื้นฐานของเทมเพลต + Jump Map                                  | เพิ่มส่วนการเคลื่อนไหว/การเล่นเกมระหว่างการตอบคำถาม       |
| **PickMarket** | ฟีเจอร์พื้นฐานของเทมเพลต + ห้างสรรพสินค้า, ระบบรถเข็น, NPC ไกด์นำทาง | การนำเสนอออบเจกต์และให้ NPC นำทางโดยอิงตามผลลัพธ์ของคำถาม |

:::hint{type="danger"}
**🚨 ข้อควรระวัง**

- มีการวาง **Choice\_Template** ไว้แล้วใน Sample Scene
- เมื่อคัดลอกและใช้ Sample Scene ตรวจสอบให้แน่ใจว่าคุณได้กำหนดค่าในส่วน [4. การตั้งค่ากฎการเล่นเกม](docId:0eNGp8ENqy5KLSnlteBKT) ของ Choice\_Template ใน Scene นั้นๆ ให้เหมาะกับโลกของคุณ
- เมื่อเล่น Sample Scene โปรดเปิดใช้งานระบบผู้เล่นหลายคนก่อน!
  [คุณเกือบจะเสร็จแล้ว — มาตรวจสอบการตั้งค่าพื้นฐานของโปรแกรมกัน:](docId\:mUhVt1ZpDYrJC-0ekNpjw)
:::

## BasicScene: รวม Jump Map เข้ากับ Balance Game

**BasicScene** เป็นตัวอย่างของการรวม Balance Game เข้ากับ **Jump Map**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/rjbZgQrVhYXT5U8hNzEMP_image-43.png" size="70" isUploading="false" width="917" height="516" darkWidth="917" darkHeight="516" alt="BasicScene" showCaption="false"}

1. ทำสำเนาส่วนของเส้นทางที่มีอยู่ หรือเพิ่มแท่นเหยียบเพื่อขยายเส้นทางการเคลื่อนที่
2. สร้างคำถามผ่านปุ่ม **+ เพิ่มคำถาม N** และปรับตำแหน่งด้วย **รูปแบบการวาง** **กำหนดเอง** เพื่อให้เข้ากับเส้นทาง
3. ใช้ฟีเจอร์ **แสดงใน Scene** กับคำถามแต่ละข้อเพื่อตรวจสอบตำแหน่ง และลองเล่นเส้นทางทั้งหมดในโหมด Play

## PickMarket: เพิ่มธีมและองค์ประกอบเชิงสร้างสรรค์

ด้วยการใช้ **Choice\_Template** คุณสามารถสร้างโลกของคุณเองโดยเพิ่มองค์ประกอบสร้างสรรค์ต่างๆ

อย่าลังเลที่จะแก้ไขและขยายฟังก์ชัน **PickMarket** เพื่อสร้างโลกใหม่ หรือจะใช้แค่ Sample Scene ที่มีให้เพื่อเรียนรู้ฟีเจอร์และวิธีใช้งานก็ได้

**PickMarket** เป็นตัวอย่างที่เชื่อมโยงประตูตัวเลือกของ Choice\_Template กับการเลือกสินค้าในห้างสรรพสินค้า ผู้เล่นจะต้องเดินตาม NPC นำทางไปยังร้านค้าต่างๆ, เลือกสินค้า, และรวบรวมสินค้าเหล่านั้นไว้ในรถเข็น

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/LZb_CD6OupgXOwlLBIt-8_08-pickmarket-entrance.png" size="80" isUploading="false" width="1920" height="1080" darkWidth="1920" darkHeight="1080" alt="PickMarket" showCaption="false"}

### ขั้นตอนการเล่น

1. **เข้าสู่ห้างสรรพสินค้า**: เมื่อเข้ามา มุมกล้องที่แหงนมองขึ้นด้านบนจะเริ่มทำงาน และ NPC จะนำทางคุณไปยังจุดจอดรถเข็น
2. **รับรถเข็น**: จับรถเข็นและเริ่มเดิน หากคุณไปที่ร้านค้าแรกโดยไม่มีรถเข็น NPC จะแนะนำให้คุณกลับไปยังจุดจอดรถเข็น
3. **เลือกสินค้าตามร้าน**: ฟังคำอธิบายของ NPC และเดินผ่านประตูสินค้า สินค้าที่คุณเลือกจะไปอยู่ในมือหรือสวมใส่อยู่บนตัวคุณ และสินค้าจะเข้าไปอยู่ในรถเข็นเมื่อคุณเดินออกจากร้าน
4. **โซนสุดท้าย (Final Zone)**: หลังจากเลือกสินค้าครบ 5 ร้าน รถเข็นจะหายไปใน `FinalZone` และสินค้าที่คุณเลือกจะลอยอยู่รอบตัวผู้เล่น หลังจากนั้น คุณจะสามารถเคลื่อนที่ไปยังบอร์ดผลลัพธ์และพื้นที่ถ่ายภาพได้

### สำรวจองค์ประกอบเชิงสร้างสรรค์

**1. การนำเสนอมุมกล้องช่วงทางเข้าและเมื่อรับสินค้า**

ส่วนนี้รวมถึงการกำหนดทิศทางมุมกล้องที่จะทำงานเมื่อเข้ามายังโลก และมุมกล้องที่แสดงลักษณะการสวมใส่เมื่อเลือกสินค้า

หากต้องการเปลี่ยนการตั้งค่ารายละเอียดสำหรับมุมกล้อง **ให้เลือก System > SpawnPoint ในหน้าต่าง Hierarchy** และปรับแต่งรายการด้านล่างตามต้องการ

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/apuB3T6sRkeu4oz5ykwaw_group-53.png" size="80" isUploading="false" width="796" height="684" darkWidth="796" darkHeight="684" alt="Camera" showCaption="false"}

- **Look Up Angle / Shot Distance / Hold Time**: มุมแหงนมองขึ้น, ระยะทาง, และระยะเวลาของกล้องตรงทางเข้า
- **Rejoin after finishing**: หากผู้เล่นที่ตอบคำถามครบทั้งหมดแล้วเข้ามาในห้องอีกครั้ง พวกเขาจะถูกเคลื่อนย้ายไปอยู่หน้าจอของ Sharing Zone ทันที
- **Disable Item Show**: หากเปิดใช้งาน จะปิดฟังก์ชันมุมกล้องที่เน้นแสดงภาพตอนสวมใส่สินค้า
- **Item Show Hold / Blend / Distance / Pitch**: ระยะเวลาที่แสดง, เวลาในการเปลี่ยนมุมกล้อง, ระยะห่าง, และมุมสำหรับการนำเสนอสินค้า

**2. ระบบรถเข็น (Zones)**

สินค้าที่เลือกจะเข้าไปอยู่ในรถเข็นหลังจากที่แสดงลำดับการสวมใส่เรียบร้อยแล้ว

ในหน้าต่าง Hierarchy ให้ไปที่ **PickMarket > Zones > 01\_Shoes > LoaferZone**

หากคุณเลือก **LoaferZone** การตั้งค่า **Zepeto Script (CartItemZone)** จะแสดงในหน้าต่าง Inspector

คุณสามารถเลือกโซนใดก็ได้เพื่อเปลี่ยนแปลงการตั้งค่า คุณสามารถคัดลอก Zone ที่มีอยู่เพื่อสร้างอันใหม่ หรือเปลี่ยนชื่อตามต้องการได้

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ZOd46_lAZirIwVi0pwdCo_group-49.png" size="80" isUploading="false" width="779" height="506" darkWidth="779" darkHeight="506" alt="CartItemZone" showCaption="false"}

**การตั้งค่า CartItemZone**

- **Item Prefab:** กำหนด Prefab สินค้าที่จะแสดงให้ผู้เล่นเห็น
- **Item Object Name:** ใช้เพื่อค้นหาและคัดลอกออบเจกต์ที่มีชื่อเดียวกันใน Scene ในกรณีที่ `Item Prefab` ว่างเปล่า
- **Choice Group**: ชื่อกลุ่มที่ระบุใช้ร่วมกันสำหรับสินค้าที่มีคำถามเดียวกัน หากคุณเลือก 1 อย่างจากกลุ่มนี้ คุณจะไม่สามารถเลือกสินค้าอื่นๆ ได้อีก
- **Wear Slot**: ตำแหน่งที่จะสวมใส่หรือถือสินค้า

| **Wear Slot**                  | **วิธีการสวมใส่**                            | **สินค้าที่ใช้ในตัวอย่าง**                                             |
| ------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------- |
| Head                           | สวมพอดีกับขนาดศีรษะเหมือนหมวก                | Cap (หมวกแก๊ป)                                                         |
| Eyes                           | สวมพอดีกับตำแหน่งดวงตาเหมือนแว่นตา           | Sunglasses (แว่นตากันแดด)                                              |
| Ears                           | สวมครอบหูเหมือนหูฟัง                         | Music (หูฟัง)                                                          |
| Feet                           | สวมอย่างสมมาตรบนเท้าทั้งสองข้างเหมือนรองเท้า | Sneakers, Loafer                                                       |
| Left Hand / Right Hand         | ปล่อยมือจากที่จับรถเข็นและถือไว้บนฝ่ามือ     | Donut, Cake, Boba, MiniBag, Book, Game, Art, TeddyBear, Light, Speaker |
| Chest / Back / Hips / Shoulder | สวมติดกับอวัยวะที่เกี่ยวข้อง                 | (ไม่ได้ใช้ในตัวอย่างนี้)                                               |

- **การปรับตำแหน่งการสวมใส่**
  - **Wear Offset / Wear Rotation / Wear Size Multiplier**: ปรับตำแหน่ง, การหมุน, และขนาดการสวมใส่โดยละเอียด หากสินค้าดูเหมือนจะกลับด้าน ให้ลองเปลี่ยนแกน Y ของ Wear Rotation เป็น 90 / 180 / 270

:::hint{type="success"}
**💡 เคล็ดลับ**

มันจะง่ายกว่าหากคุณตรวจสอบโดยการปรับตำแหน่งการสวมใส่ขณะอยู่ในโหมด Play
เนื่องจากค่าที่ปรับจะกลับไปเป็นเหมือนเดิมเมื่อจบการทำงานของโหมด Play ดังนั้นให้จดบันทึกค่าสุดท้ายเอาไว้ และ **ป้อนข้อมูลนั้นอีกครั้งในโหมด Edit**
:::

**การตั้งค่า CartStowZone**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/cStkGe9Z_1DBVDfE_UW_9_group-52.png" size="80" isUploading="false" width="779" height="634" darkWidth="779" darkHeight="634" alt="CartStowZone" showCaption="false"}

- **Choice Group**: ป้อนค่าที่ตรงกันทุกประการกับ `CartItemZone` ของร้านนั้นๆ เมื่อสินค้าที่เลือกเข้าไปอยู่ในรถเข็นแล้ว ทางออกของร้านค้าที่อยู่ในกลุ่มเดียวกันจะปิดลง
- **Stow On Exit**: หากปิดการทำงาน (Off) สินค้าจะเข้าไปอยู่ในรถเข็น **เมื่อเดินเข้า** โซน หากเปิดการทำงาน (On) สินค้าจะเข้าไปอยู่ในรถเข็น **เมื่อเดินออก** จากโซน หากเปิดใช้งาน ให้ขยายพื้นที่โซนให้กว้างเพื่อครอบคลุมพื้นที่ทั้งหมดของร้าน

**สินค้าเหนือศีรษะ (CartHalo)**

เมื่อเลือกรถเข็นเสร็จสมบูรณ์ในโซนสุดท้าย `CartHalo` จะถูกเพิ่มเข้ามาโดยอัตโนมัติขณะรันไทม์ และทำให้สินค้าที่คุณเลือกไว้ลอยอยู่รอบๆ ศีรษะของผู้เล่น

**3. NPC พนักงานนำทาง**

PM\_Staff\_Concierge ใน Scene คือ NPC ที่คอยนำทางในห้างสรรพสินค้า คอยแนะนำโลก, นำทางไปยังรถเข็นและทางเข้าร้านค้า และคอยตอบสนองต่อตัวเลือกที่ผู้เล่นเลือก

**อวาตาร์พนักงานและบทสนทนา (DepartmentStoreStaff)**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ss6eQ00NR-9dK10_zMDhT_group-50.png" size="70" isUploading="false" width="796" height="858" darkWidth="796" darkHeight="858" showCaption="false"}

- **Zepeto Id**: ID บัญชี ZEPETO ที่จะนำมาใช้เป็นรูปร่างหน้าตาของ NPC ให้ใส่ ZEPETO ID จากโปรไฟล์ ไม่ใช่ชื่อเล่น (Nickname) ดูเพิ่มเติมที่ [2. ออบเจกต์ NPC](docId\:ylnXTaVPConH4aEWAMm7b)
- **Typing Interval**: ความเร็ว (วินาที) ในการแสดงบทสนทนาทีละตัวอักษร ค่าเริ่มต้นคือ 0.032
- **Auto Advance Delay**: ระยะเวลา (วินาที) ที่จะดำเนินการต่อไปยังบทสนทนาถัดไปอัตโนมัติ ค่าเริ่มต้นคือ 2.4
- **Stop Player While Guiding**: หากเปิดใช้งาน จะหยุดการเคลื่อนไหวของผู้เล่นขณะที่มีบทสนทนานำทาง
- **Lead Player / Lead Distance**: NPC จะเดินนำหน้าและจะหยุดรอหากเดินทิ้งห่างเกินระยะทางที่กำหนดนี้ (ค่าเริ่มต้นคือ 3.5 เมตร)

**ขั้นตอนการนำทางช้อปปิ้ง (ShoppingGuideController)**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/iKOX-Jf-k7MmJinl6Z5of_group-51.png" size="70" isUploading="false" width="796" height="858" darkWidth="796" darkHeight="858" showCaption="false"}

- **Store Entrances / Store Areas**: บริเวณทางเข้าร้านค้าที่ NPC จะคอยรอ และพื้นที่ภายในของร้าน หากปล่อยว่างไว้ ระบบจะใช้จุดอ้างอิง (Anchor) ของร้านค้าในแผนที่
- **Final Point / Final Area**: ตำแหน่งและพื้นที่ตรวจจับเมื่อถึงจุดหมายปลายทางที่ NPC จะนำทางไปให้ในตอนท้าย หากปล่อยว่างไว้ ระบบจะใช้ FinalZone
- **Show Floor Route**: แสดงเส้นทางลูกศรบนพื้นซึ่งนำทางไปยังจุดหมาย
- **Show Goal Glow**: ปล่อยแสงเรืองรองนุ่มนวลบนพื้นของจุดหมายถัดไป (รถเข็น, ทางเข้าร้านค้า, ทางออก, โซนสุดท้าย) แสงนี้จะไม่เรืองรองบริเวณประตูเพื่อไม่ให้มีอิทธิพลต่อการตัดสินใจเลือก
- **No Cart Block Distance**: หากคุณเข้าใกล้ทางเข้าร้านค้าแรกโดยไม่มีรถเข็นในระยะที่กำหนดนี้ (ค่าเริ่มต้น 1.5 เมตร) NPC จะเข้ามาขวางและนำทางคุณไปรับรถเข็น

### การเปลี่ยน PickMarket ให้เป็นธีมของคุณเอง

คุณสามารถปรับแต่ง PickMarket เป็นธีมต่างๆ ได้โดยคงโครงสร้างเอาไว้ แต่เปลี่ยนแค่เนื้อหาภายใน

1. **เปลี่ยนคำถาม**
   - เปลี่ยนคำถามและคำตอบให้เป็นธีมคาเฟ่ใน StageManager แล้วคลิก **นำไปใช้กับ Scene** (ตัวอย่าง: "เครื่องดื่มวันนี้ล่ะ?" → ลาเต้ / อิตาเลียนโซดา / สมูทตี้)
2. **เปลี่ยนสินค้า**
   - เปลี่ยน **Item Prefab** หรือ **Item Object Name** ของแต่ละ CartItemZone ให้เป็นสินค้าใหม่
   - ตั้งค่า **Wear Slot** ให้เหมาะสมกับสินค้านั้นๆ และปรับตำแหน่งการสวมใส่ในโหมด Play
3. **เพิ่มสินค้า (คำตอบ)**
   - หากคุณเพิ่มประตูเข้ามา ให้คัดลอกโซนสินค้าเดิม (CartItemZone) และโซนทางออก (CartStowZone) แล้วนำไปจัดวางให้ตรงกับประตูใหม่
   - ใส่ **Choice Group** สำหรับสินค้าใหม่ให้เหมือนกับสินค้าอื่นๆ ในร้านเดียวกันทุกประการ
4. **เปลี่ยนบทสนทนา NPC**
   - หากคุณต้องการเปลี่ยนบทสนทนาของ NPC โปรดใช้ **ZW\_LOCALIZATION\_PICKMARKET.csv**
5. **เปลี่ยนรูปร่างหน้าตา NPC**
   - เปลี่ยน **Zepeto Id** ใน DepartmentStoreStaff ให้เป็น ID บัญชีที่ตกแต่งสไตล์ให้เป็นพนักงานร้าน

**ข้อควรระวังเมื่อดัดแปลงแก้ไข PickMarket**

:::hint{type="danger"}
**💡 ข้อควรระวังเมื่อดัดแปลงแก้ไข PickMarket**

- **ตรวจสอบ Choice Group ให้เหมือนกัน**: ต้องป้อนค่าเดียวกันทั้งหมด รวมถึงตัวพิมพ์ใหญ่-เล็ก และตัวสะกด สำหรับ `CartItemZone` และ `CartStowZone` ภายในร้านเดียวกัน ชื่อกลุ่มในตัวอย่างคือ `Shoes`, `Food`, `Fashion`, `Hobby`, `Home`
- **การเชื่อมโยงระหว่างคำตอบและ NPC**: หากคุณเปลี่ยนข้อความคำตอบใน StageManager โปรดแก้ไข **Reaction Choices** ใน `ShoppingGuideController` ให้ตรงกันด้วย การแก้ไขบทสนทนาควรทำใน `ZW_LOCALIZATION_PICKMARKET.csv` เท่านั้น
- **รายการที่เหลืออยู่**: ปัจจุบัน **Sneakers Zone** และ **Loafers Zone** ใน `ShoppingGuideController` ไม่ได้ถูกใช้งาน แต่ก็แสดงให้เห็นใน Inspector ห้ามลบออกหรือเปลี่ยนลำดับโดยพลการ
- **การย้ายแผนที่/เปลี่ยนขนาด**: ตรวจสอบให้แน่ใจว่าคุณได้จัดเรียงออบเจกต์ที่อยู่นอกแผนที่ด้วย เช่น `SpawnPoint`, `PM_EntranceForecourt`, `PM_Staff_Concierge`, `PM_CitySkyline` (พื้นหลังเมือง), `PM_Guide_*Space`, โซนที่อยู่ใต้ `Zone` และ `PM_ReflectionProbe_Cart`
- **ป้องกันแผนที่ซ้ำซ้อน**: ห้ามเปิดใช้งานแผนที่ 2 แผนที่ที่มีชื่อจุดอ้างอิง (Anchor) เหมือนกันในเวลาเดียวกัน NPC อาจอ้างอิงจุดอ้างอิงผิดจุดได้
- **เซิร์ฟเวอร์โมดูล**: การแสดงรถเข็นของผู้เล่นอื่นถูกจัดการโดย `World.multiplay/ServerModule/Modules/CartModule.ts` เมื่อย้ายฟีเจอร์ของ PickMarket ไปยังโปรเจกต์อื่น คุณต้องนำโมดูลนี้ไปด้วยเสมอ
- **สคริปต์เทมเพลต**: องค์ประกอบเชิงสร้างสรรค์ของ PickMarket มีการเรียกใช้ฟังก์ชันสาธารณะของ Choice Template แนะนำให้ไม่ดัดแปลงแก้ไขสคริปต์พื้นฐานของเทมเพลต เช่น `GameManager`
:::

