3. ออกแบบโลกของคุณด้วย Build it Unity Plug-in
1. การเพิ่มฟีเจอร์พื้นฐาน
ลองทำตามวิดีโอด้านล่างเพื่อเพิ่มฟีเจอร์ต่างๆ ให้กับโลกของคุณโดยไม่ต้องเขียนโค้ดเลย!
มีซับไตเติลหลายภาษาให้บริการ อย่าลืมเปิดซับไตเติลขณะรับชมนะครับ!
ออบเจกต์ Interaction
ออบเจกต์ Interaction จะทำให้ตัวละครของคุณแสดงท่าทาง (Gesture) ที่กำหนดไว้เมื่อผู้ใช้คลิกที่ไอคอน
- Interaction_bed: เล่นท่าทางตัวละครนอนลงบนเตียงอย่างเป็นธรรมชาติ
- Interaction_chair: เล่นท่าทางตัวละครนั่งบนเก้าอี้อย่างเป็นธรรมชาติ
- Interaction_dance: เล่นท่าทางตัวละครกำลังเต้น
คุณสามารถปรับแต่งออบเจกต์ Interaction เพื่อนำไปประยุกต์ใช้ในรูปแบบต่างๆ ได้
- เปลี่ยน Animation Clip: หากคุณแทนที่ไฟล์แอนิเมชันใน Animation Clip ของออบเจกต์ลูก (InteractionPoint) ท่าทางที่แสดงเมื่อโต้ตอบก็จะเปลี่ยนไป
- Is Snap Bone: ตำแหน่งของตัวละครจะถูกล็อกอ้างอิงจาก Bone ที่กำหนด ตัวอย่างเช่น หากตั้งค่า Bone เป็น Foot เท้าของตัวละครจะถูกล็อกไว้ที่ตำแหน่ง InteractionPoint ขณะเล่นแอนิเมชัน หากนำเครื่องหมายถูกออก ตัวละครจะสามารถเคลื่อนไหวได้อย่างอิสระโดยไม่ยึดติดกับออบเจกต์
- Body Bone: กำหนด Bone ที่ตัวละครจะถูกล็อกเมื่อเปิดใช้งาน Is Snap Bone
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูกที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้วนำออบเจกต์อื่นจากในแผนที่มาวางในตำแหน่งเดียวกันเพื่อเปลี่ยนหน้าตาของมัน
- เปลี่ยนตำแหน่งไอคอน Interaction: หากคุณเปลี่ยนรูปลักษณ์ของออบเจกต์แล้ว ให้ปรับตำแหน่งของออบเจกต์ลูก IconPos ให้เข้ากับดีไซน์ใหม่ของคุณด้วย

ตั้งค่าตำแหน่ง Spawn
เมื่อใช้ออบเจกต์ SpawnPoint คุณสามารถกำหนดตำแหน่งที่ตัวละคร ZEPETO จะเกิด (Spawn) ได้พอดีเมื่อโลกเริ่มต้นขึ้น
- หากไม่มีออบเจกต์ Spawn ใน Scene ตัวละคร ZEPETO จะเกิดที่พิกัด x=0, y=0, z=0
- หากมีออบเจกต์ Spawn หลายจุด ตัวละคร ZEPETO จะสุ่มเลือกหนึ่งจุดและเกิดที่ตำแหน่งนั้น

เล่นเสียง
ออบเจกต์ SFX จะเล่นเสียงที่กำหนดไว้เมื่อผู้ใช้คลิกไอคอน วางออบเจกต์ลงใน Scene แล้วปรับการตั้งค่าในหน้าต่าง Inspector
- AudioClip: คุณสามารถระบุคลิปเสียงได้ในหน้าต่าง Inspector โดยใช้ไฟล์เสียงรูปแบบ .mp3 หรือ .wav
- IconPos: คุณสามารถปรับตำแหน่งของปุ่มที่ผู้ใช้จะต้องสัมผัสได้

ตัวจับเวลา
ออบเจกต์ Timer จะแสดง UI จับเวลาและเริ่มบันทึกเวลาเมื่อผู้ใช้คลิกที่ออบเจกต์ "เริ่ม (Start)" และเมื่อผู้ใช้คลิกที่ออบเจกต์ "ถึงเส้นชัย (Arrival)" UI จับเวลาจะหายไปและมีข้อความแสดงความสำเร็จปรากฏขึ้น
คุณสามารถปรับแต่งรูปลักษณ์ของออบเจกต์ Timer และตำแหน่งปุ่มโต้ตอบให้เข้ากับคอนเซปต์โลกของคุณได้
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูกที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้วนำออบเจกต์อื่นจากในแผนที่มาวางในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์
- เปลี่ยนตำแหน่งไอคอน Interaction: หากคุณเปลี่ยนรูปลักษณ์ของออบเจกต์แล้ว ให้ปรับตำแหน่งของออบเจกต์ลูก IconPos ให้เหมาะสมตามไปด้วย

สุ่มตัวเลข
เมื่อใช้ออบเจกต์ Roulette ระบบจะทำการสุ่มตัวเลขเมื่อผู้ใช้คลิกไอคอน และจะแสดงผลลัพธ์ในหน้าต่างแชทของ ZEPETO
- ตั้งค่าช่วงตัวเลข: เลือกออบเจกต์ Roulette และปรับตัวเลขต่ำสุด-สูงสุดได้ในหน้าต่าง Inspector
คุณสามารถปรับแต่งรูปลักษณ์ของออบเจกต์ Roulette และตำแหน่งปุ่มโต้ตอบให้เข้ากับคอนเซปต์ของคุณได้เช่นกัน
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูกที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้วนำออบเจกต์อื่นจากในแผนที่มาวางในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์
- เปลี่ยนตำแหน่งไอคอน Interaction: หากคุณเปลี่ยนรูปลักษณ์ของออบเจกต์แล้ว ให้ปรับตำแหน่งของออบเจกต์ลูก IconPos ให้เหมาะสมตามไปด้วย

ออบเจกต์ Teleport
ออบเจกต์ Teleport จะช่วยเทเลพอร์ตผู้ใช้ไปยังตำแหน่งที่กำหนดในพริบตาเมื่อคลิกที่ไอคอน
- จุดหมายปลายทาง (Destination Point): คุณสามารถตั้งค่าจุดหมายปลายทางได้โดยการย้ายออบเจกต์ลูก destination ไปยังตำแหน่งที่คุณต้องการ
คุณสามารถปรับแต่งรูปลักษณ์ของออบเจกต์ Teleport และตำแหน่งปุ่มโต้ตอบให้เข้ากับคอนเซปต์โลกของคุณได้
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูกที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้วนำออบเจกต์อื่นจากในแผนที่มาวางในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์
- เปลี่ยนตำแหน่งไอคอน Interaction: หากคุณเปลี่ยนรูปลักษณ์ของออบเจกต์แล้ว ให้ปรับตำแหน่งของออบเจกต์ลูก IconPos ให้เหมาะสมตามไปด้วย

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

ผู้ใช้สามารถเปิดหรือปิดเพลงพื้นหลังได้โดยการแตะที่ไอคอน BGM ทางด้านขวาของหน้าจอ

สร้าง Welcome Popup
ออบเจกต์ Popup คือหน้าต่างที่จะปรากฏขึ้นเมื่อผู้ใช้เข้ามาในโลก การคลิกปุ่มภายในป๊อปอัปจะปิดหน้าต่างนั้นโดยอัตโนมัติ
ใช้หน้าต่างป๊อปอัปนี้เพื่อแนะนำโลกของคุณหรือโปรโมตกิจกรรมพิเศษ!
ข้อควรระวัง
- หน้าต่าง Popup ไม่ได้ถูกวางไว้บนพื้นเหมือนออบเจกต์ทั่วไป
- ออบเจกต์นี้จะถูกวางไว้ในพื้นที่หน้าจอ UI และสามารถตรวจสอบได้ในหน้าต่าง Game
เลือก Popup ใน Hierarchy แล้วแก้ไขคุณสมบัติใน Inspector คุณสามารถตรวจสอบการเปลี่ยนแปลงได้ในโหมด Play
- Background Image: ลากและวางรูปภาพ 2D Sprite เพื่อเปลี่ยนพื้นหลัง
- Message: คุณสามารถเปลี่ยนข้อความได้
- Message Color: คุณสามารถเปลี่ยนสีข้อความได้
- Message Shadow: คุณสามารถเปิด/ปิดเอฟเฟกต์เงาของข้อความได้
- Button Title: คุณสามารถเปลี่ยนข้อความบนปุ่มได้

ออบเจกต์ Reward Chest
เมื่อวาง Reward Chest ไว้ในโลกของคุณ ผู้เล่นจะสามารถรับ ZEM หรือ เหรียญ (Coin) ได้ตามกิจกรรมที่กำหนด
เมื่อผู้ใช้เข้ามาในโลกที่มี Reward Chest จะมีป๊อปอัปแจ้งเตือนว่ามีหีบสมบัติจำนวนเท่าใดในโลกนั้น

ลองซ่อน Reward Chest ไว้ในสถานที่ลับ หรือวางไว้ที่จุดเส้นชัยของแผนที่กระโดดเพื่อมอบเป็นรางวัลให้กับผู้เล่นของคุณ!

- ตรรกะการทำงาน (Operation Logic)
- ครีเอเตอร์ของโลกควรวาง Reward Chest ไว้ในตำแหน่งที่เหมาะสมในโลกของตนเอง
- โปรดอย่าวางไว้ในตำแหน่งที่สามารถหาเจอได้ง่ายจนเกินไป
- หากได้รับรางวัลมาง่ายเกินไป โลกของคุณอาจไม่ผ่านการตรวจสอบ หรืออาจถูกนำออกโดยไม่แจ้งให้ทราบล่วงหน้า
- ครีเอเตอร์ของโลกก็สามารถรับรางวัลในโลกของตนเองได้เช่นกัน

- Timeout - หากคุณต้องการเพิ่มระยะเวลาที่ผู้เล่นใช้ในโลกของคุณ ลองเพิ่มเวลานับถอยหลังสั้นๆ ก่อนที่พวกเขาจะสามารถรับรางวัลได้
- ป้อนเวลานับถอยหลัง (หน่วยเป็นวินาที) ลงในช่อง Timeout ค่าเริ่มต้นคือ 60 วินาที
- การป้อน 0 จะทำให้ได้รับรางวัลทันทีโดยไม่ต้องรอเวลานับถอยหลัง
- Activated Icon Color
- ก่อนที่การนับถอยหลังจะเริ่มต้นขึ้น ไอคอนโต้ตอบจะแสดงเป็นสีขาว เมื่อการนับถอยหลังเสร็จสิ้น สีของไอคอนจะเปลี่ยนเป็นสีที่คุณตั้งค่าไว้ที่นี่
- Group id
- หีบสมบัติที่มี Group id เดียวกัน จะแสดงให้เห็นเพียงกล่องเดียวเท่านั้น
- หากคุณกำหนด Group id ที่แตกต่างกัน หีบสมบัติจากแต่ละกลุ่มจะแสดงออกมากลุ่มละหนึ่งกล่อง
ข้อควรระวัง
- กิจกรรมแจกรางวัล ZEM/Coin จะดำเนินการโดย ZEPETO และครีเอเตอร์ไม่สามารถกำหนดค่าได้เอง
- มีการจำกัดจำนวนรางวัลที่แต่ละคนสามารถรับได้จากกิจกรรม เมื่อถึงขีดจำกัดแล้ว จะไม่สามารถรับรางวัลได้อีก
- หากไม่ได้อยู่ในช่วงเวลากิจกรรม Reward Chest จะไม่ปรากฏให้เห็น และไม่สามารถรับรางวัลได้
ออบเจกต์ Drawing Canvas
DrawingCanvas คือออบเจกต์ผ้าใบที่ช่วยให้ผู้เล่นสามารถวาดรูปในโลกของคุณได้อย่างอิสระ
ฟีเจอร์นี้รองรับ การซิงโครไนซ์มัลติเพลเยอร์ โดยอัตโนมัติ ทำให้คุณสามารถวาดรูปและพูดคุยสื่อสารกับผู้เล่นคนอื่นๆ ที่อยู่ในโลกเดียวกันได้แบบเรียลไทม์
ลองนำไปประยุกต์ใช้ในโลกของคุณด้วยไอเดียสุดสร้างสรรค์ เช่น สร้างพื้นที่ให้คุณและเพื่อนๆ ได้มาขีดเขียนเล่นกันอย่างอิสระ หรือจะสร้างเกมควิซทายภาพจากรูปวาดก็สนุกไปอีกแบบ!

- เลือกออบเจกต์ DrawingCanvas จาก Build it Asset Browser > Utility
- นำไปวางในตำแหน่งที่คุณต้องการภายในหน้าต่าง Scene

- ในหน้าต่าง Hierarchy โปรดตรวจสอบให้แน่ใจว่าออบเจกต์ DrawingCanvas ถูกวางไว้ภายใต้ Objects อย่างถูกต้อง
การใช้งานฟีเจอร์วาดรูป

ผู้เล่นที่เข้ามาเยือนโลกของคุณสามารถเดินเข้าไปใกล้ๆ ผ้าใบและสัมผัสประสบการณ์การวาดรูปด้วยฟีเจอร์ต่างๆ ได้ดังนี้:
- เข้าสู่โหมดวาดรูป: เมื่อคุณเดินเข้าไปใกล้ผ้าใบ จะมีไอคอน UI สำหรับวาดรูปปรากฏขึ้น การกดที่ไอคอนนั้นจะเป็นการเริ่มโหมดวาดรูป
- การตั้งค่าแปรงและสี:
- ปรับขนาดแปรง: คุณสามารถใช้ Bar ทางด้านซ้ายเพื่อปรับขนาดของแปรงและเลือกสีที่ต้องการได้อย่างอิสระ
- ปรับความเข้มของสี: คุณสามารถเลื่อน Bar ทางด้านขวาเพื่อปรับความอิ่มตัวของสีได้
- ยางลบ: ใช้เครื่องมือยางลบเพื่อลบและแก้ไขส่วนที่วาดผิดได้อย่างง่ายดาย
- ถังสี: ใช้แปรงวาดเส้นเพื่อสร้างพื้นที่ปิด จากนั้นแตะที่ด้านในของพื้นที่นั้น ระบบจะเทสีที่คุณเลือกลงไปให้เต็มพื้นที่ในคราวเดียว
- เลิกทำ (Undo) และ ทำซ้ำ (Redo): คุณสามารถย้อนกลับไปยังขั้นตอนก่อนหน้า หรือกู้คืนการทำงานที่เพิ่งเลิกทำไปได้ อย่างไรก็ตาม โปรดทราบว่าฟีเจอร์นี้รองรับการย้อนกลับสูงสุดเพียง 3 ขั้นตอนเท่านั้น
- ลบทั้งหมด: คุณสามารถลบทุกสิ่งที่วาดไว้บนผ้าใบออกได้ทั้งหมดในครั้งเดียว
กฎการใช้งานมัลติเพลเยอร์
- วาดได้เพียงคนเดียวต่อหนึ่งผ้าใบ: เมื่อผู้เล่นเริ่มวาดรูปบนผ้าใบ ผ้าใบนั้นจะถูกครอบครองโดยผู้เล่นคนดังกล่าวทันที ไอคอนวาดรูปจะถูกซ่อนจากผู้เล่นคนอื่นๆ ดังนั้นหากมีคนวาดรูปบนผ้าใบแล้ว ผู้เล่นคนอื่นจะไม่สามารถวาดเพิ่มเติมลงไปได้
- วาดรูปต่อบนผ้าใบของคุณได้ทุกเมื่อ: สำหรับผ้าใบที่คุณเป็นคนวาด ไอคอนจะยังคงแสดงอยู่เสมอ ทำให้คุณสามารถกลับมาวาดรูปต่อได้อย่างอิสระ
- ผ้าใบจะถูกรีเซ็ตเมื่อออกจากห้อง: หากผู้เล่นที่วาดรูปออกจากห้อง (Room) ไป รูปที่วาดไว้บนผ้าใบจะถูกลบออก และผ้าใบจะกลับสู่สถานะว่างเปล่าเพื่อให้ทุกคนสามารถเริ่มวาดใหม่ได้อีกครั้ง
- จำนวนที่แนะนำในการจัดวาง (Optimization): ในทางทฤษฎีจะไม่มีการจำกัดจำนวนผ้าใบที่คุณสามารถจัดวางได้ แต่เพื่อความลื่นไหลของโลก (World) เราขอแนะนำให้วางผ้าใบไม่เกิน 10 ชิ้นต่อหนึ่งโลก
2. ออบเจกต์ NPC
ออบเจกต์ NPC พื้นฐาน
คุณสามารถสร้างตัวละคร NPC ได้โดยการป้อน Zepeto ID นำออบเจกต์ NPC ไปวางใน Scene และเปลี่ยนการตั้งค่าได้ในหน้าต่าง Inspector
NPC จะไม่ปรากฏในโหมด Edit (แก้ไข); แต่จะปรากฏขึ้นก็ต่อเมื่อคุณกด Play เท่านั้น
ใช้คุณสมบัติด้านล่างเพื่อตั้งค่า NPC ของคุณ

- Zepeto ID: ป้อน ID บัญชี ZEPETO ที่จะใช้งาน
- Dialogue
- Has Speech Bubble: หากเปิดใช้งาน จะมีบอลลูนข้อความปรากฏขึ้นเมื่อผู้เล่นเข้าใกล้ NPC
- Speech Bubble Text: ป้อนข้อความสำหรับบอลลูนคำพูดของตัวละคร NPC
- คุณสามารถลงทะเบียนข้อความบอลลูนได้หลายข้อความ
- คลิกปุ่ม + เพื่อเพิ่มข้อความใหม่ หรือปุ่ม - เพื่อลบข้อความที่มีอยู่
- Randomize Dialogue: คุณสามารถตั้งค่าให้ข้อความบอลลูนของ NPC แสดงขึ้นมาแบบสุ่มลำดับได้
- หากไม่ได้ทำเครื่องหมาย ข้อความจะถูกแสดงตามลำดับ โดยเริ่มจากข้อความแรก (Element 0)
- Speech Bubble Text Duration: กำหนดระยะเวลา (เป็นวินาที) ที่บอลลูนข้อความจะค้างอยู่บนหน้าจอ
- Speech Bubble Prefab: ดีไซน์ Prefab สำหรับบอลลูนข้อความ
- Speech Bubble Y Offset: ปรับตำแหน่งแกน Y (ความสูง) ของบอลลูนข้อความโดยอิงจากศีรษะของตัวละคร
- Animations
- Dialogue Animations: รายการแอนิเมชันของตัวละครที่จะเล่นควบคู่ไปกับบทสนทนา
- แอนิเมชันจะเล่นตามลำดับที่สอดคล้องกับ Speech Bubble Text
- หากไม่ได้กำหนดแอนิเมชันสำหรับลำดับบทสนทนานั้น แอนิเมชันแรก (Element 0) ในรายการจะถูกใช้เป็นค่าเริ่มต้น
- Idle Animation: หากตั้งค่าปิด Enable Movement แอนิเมชันนี้จะทำงานในขณะที่ตัวละครยืนอยู่เฉยๆ
- Movement
- Enable Movement: หากเปิดใช้งาน ตัวละครจะเดินเตร่ไปมาแบบสุ่มภายในพื้นที่ที่กำหนด
- หากคุณต้องการให้ NPC ยืนอยู่กับที่ ให้ปิดตัวเลือกนี้
- Movement Area: กำหนดพื้นที่ขอบเขตการเดินของ NPC โดยใช้คอมโพเนนต์ Box Collider
- คุณสามารถปรับแต่งระยะการเดินของ NPC ได้โดยปรับขนาดและตำแหน่งของ Box Collider
- เส้นขอบของ Box Collider จะหายไปในระหว่างโหมด Play
- Min Idle Time: เวลาหยุดพักรอน้อยที่สุด (เป็นวินาที) หลังจากการเคลื่อนที่แต่ละครั้งก่อนจะเริ่มการเคลื่อนไหวรอบใหม่
- Max Idle Time: เวลาหยุดพักรอมากที่สุด (เป็นวินาที) หลังจากการเคลื่อนที่แต่ละครั้งก่อนจะเริ่มการเคลื่อนไหวรอบใหม่
- ตัวอย่างการใช้งาน

ออบเจกต์ NPC แบบโต้ตอบ

ออบเจกต์ NPC_v2 จะมีฟีเจอร์ Dialogue ซึ่งเป็นฟีเจอร์ใหม่ที่จะสลับเข้าสู่โหมดการสนทนาเต็มรูปแบบเมื่อผู้เล่นเข้าใกล้และโต้ตอบด้วย
การตั้งค่าพื้นฐานนั้นจะเหมือนกับ 'ออบเจกต์ NPC พื้นฐาน' ทุกประการ แต่จะมีคุณสมบัติใหม่ที่เพิ่มเข้ามาเฉพาะสำหรับระบบบทสนทนา ดูความแตกต่างได้ที่ด้านล่าง!
- Zepeto ID, Animations, Movement : ทำงานเหมือนกับ NPC พื้นฐานแบบเดิมเป๊ะเลยครับ

- Npc Name : ป้อนชื่อ NPC ที่ต้องการให้แสดงบนหน้าจอสนทนา
- Dialogue Id : ป้อนชื่อไฟล์บทสนทนาที่จะนำมาใช้
ตั้งค่า NPC Dialogue
เมื่อใช้งาน NPC Dialogue System รูปแบบใหม่ คุณจะสามารถเพิ่ม NPC ที่สนุกสนานและมีชีวิตชีวาลงในโลกของคุณได้มากยิ่งขึ้น!

แทนที่จะเป็นการตอบคำถามสั้นๆ ธรรมดาๆ คุณสามารถสร้าง ระบบบทสนทนาแบบต่อเนื่อง ซึ่งเนื้อเรื่องจะแตกแขนงออกไปตามตัวเลือกที่ผู้ใช้เลือกได้
ด้วยการรองรับหลายภาษา (Localization) สำหรับผู้ใช้จากทั่วโลก ทุกคนจึงสามารถดื่มด่ำไปกับการสนทนาได้อย่างเป็นธรรมชาติ
1. การใช้ Dialogue Helper

Dialogue Helper คือเมนูศูนย์กลางที่คุณสามารถจัดการการสร้างบทสนทนาและการมอบหมาย NPC ได้ในที่เดียว
- เปิดหน้าต่างนี้โดยเลือก ZEPETO > Dialogue Helper จากเมนูด้านบน
- NPC Field : แสดง NPC ที่กำลังถูกเลือกอยู่ใน Scene ซึ่งจะอัปเดตอัตโนมัติเมื่อคุณคลิกที่ GameObject ที่มีคอมโพเนนต์ ZepetoNPC (หากไม่อัปเดตโดยอัตโนมัติ ให้กด Refresh)

- Dialogue Field : แสดงบทสนทนาที่เชื่อมโยงอยู่กับ NPC ปัจจุบัน คลิกที่นี่เพื่อเลือกและกำหนด Asset บทสนทนา (Node Graph Asset) ที่คุณต้องการได้อย่างง่ายดาย
- Export Button : ปุ่มนี้จะทำหน้าที่ใช้การตั้งค่าบทสนทนาของคุณเพื่อให้ทำงานได้อย่างถูกต้องในโลกจริง คุณต้องคลิกปุ่มนี้ หลังจากที่คุณป้อนบทพูดของ NPC ทั้งหมดแล้วเพื่อสร้าง Dialogue Asset ให้เสร็จสมบูรณ์
- Dialogue Folder : เปิดโฟลเดอร์ที่จัดเก็บ Dialogue Asset (Node Graph Asset) ทั้งหมดที่คุณสร้างไว้
- Create New : สร้าง Dialogue Asset (Node Graph Asset) ขึ้นมาใหม่
Dialogue Asset (Node Graph Asset) คืออะไร? มันคือ ไฟล์บทสนทนา ที่บันทึกข้อความทั้งหมดที่คุณเขียนลงไป ไฟล์นี้มีความจำเป็นอย่างยิ่งที่จะทำให้ NPC ในโลกจริงพูดประโยคที่คุณตั้งค่าไว้
2. การใช้ Dialogue Graph Editor (Node Editor)
เมื่อคุณคลิก Create New ใน Dialogue Helper หรือเปิด Dialogue Asset หน้าต่าง Dialogue Graph Editor ก็จะปรากฏขึ้น
เอดิเตอร์นี้จะช่วยให้คุณออกแบบเส้นทางการสนทนาที่ซับซ้อนได้อย่างง่ายดายด้วยการเชื่อมต่อกล่องข้อความสนทนาเข้าด้วยกัน คุณสามารถมองเห็นแผนภาพได้ชัดเจนว่าบทสนทนาจะแยกออกไปในทิศทางใดตามตัวเลือกที่คุณตั้งไว้

วิธีใช้ Dialogue Graph Editor

- Minimap: แผนที่ย่อที่จะช่วยให้คุณทำความเข้าใจกระแสของบทสนทนาทั้งหมดได้อย่างรวดเร็วเมื่อโครงสร้างเริ่มซับซ้อนและมี Node เพิ่มมากขึ้น คุณสามารถใช้เพื่อดูตำแหน่งมุมมองปัจจุบันหรือกระโดดไปยังตำแหน่งที่ต้องการบนหน้าจอได้อย่างรวดเร็ว
- Info: แสดงคำแนะนำในการควบคุมพื้นฐานและคีย์ลัดที่จำเป็นในขณะที่ใช้งาน Dialogue Graph Editor
ประเภท Node หลัก

- NPC Node: Node หลักสำหรับป้อนบทสนทนาของ NPC และคำตอบ (ตัวเลือก) ของผู้เล่น
- What the NPC says: ช่องสำหรับป้อนบทสนทนาที่ NPC จะพูดบนหน้าจอ
- Gesture: เลือกแอนิเมชันที่ NPC จะแสดงท่าทางในระหว่างการสนทนา
- คุณสามารถเลือกใช้ท่าทางมาตรฐานที่มีให้ได้โดยตรงจากเมนูดรอปดาวน์
- ท่าทางที่มีให้: Idle, Talk, Laugh, Think, Ok, No, Hi, Bye

- หากคุณต้องการใช้ท่าทางแบบ Custom ของคุณเองที่ไม่มีอยู่ในรายการ ให้เลือก Custom แล้วป้อน ชื่อแอนิเมชันที่ตรงกันทุกประการ ลงในช่อง Custom Animation
- โปรดนำไฟล์แอนิเมชันตัวละครที่คุณต้องการลิงก์ไปวางไว้ใน โฟลเดอร์ Resources/Animations/ ภายในโปรเจกต์ Unity ของคุณ
ข้อควรระวัง เมื่อใช้งานท่าทางแบบ Custom หากพิมพ์ชื่อไฟล์แอนิเมชันผิด หรือไม่มีไฟล์ชื่อดังกล่าวอยู่ในโฟลเดอร์ จะมีหน้าต่างแจ้งเตือนปรากฏขึ้น และคุณจะ ไม่สามารถทำการ Export ได้
- Answer options: คุณสามารถเพิ่มตัวเลือกคำตอบให้ผู้เล่นเลือกได้ 1 ถึง 3 ตัวเลือก
- ด้วยการเชื่อมต่อ Node เข้ากับตัวเลือกแต่ละข้อ คุณสามารถสร้างเส้นทางบทสนทนาใหม่ๆ โดยพิจารณาจากการตัดสินใจของผู้ใช้
- End Node: ระบุจุดสิ้นสุดของการสนทนา เมื่อผู้เล่นเลือกตัวเลือกที่เชื่อมต่อมายัง Node นี้ บทสนทนาก็จะจบลง
การแก้ไขและเชื่อมต่อ Graph
คุณสามารถสร้างและเชื่อมต่อ Node บนพื้นที่ผ้าใบ (Canvas) ของบทสนทนาได้ด้วยวิธีดังนี้:
- คลิกขวา บนพื้นที่ว่างเพื่อสร้าง Node ใหม่ (Create Node) หรือคัดลอกและลบ Node ที่มีอยู่
- ลากพอร์ต Output ทางด้านขวาของตัวเลือก (Answer options) และนำไปเชื่อมต่อกับพอร์ต Input ของ Node ถัดไป เพื่อทำให้โครงสร้างการสนทนาสมบูรณ์แบบ
เคล็ดลับ (TIPs)
คุณสามารถเลื่อนหน้าจอได้ด้วยวิธีดังต่อไปนี้:
- การเลื่อนหน้าจอ (Navigation):
- คลิกเมาส์ปุ่มกลาง (คลิกลูกกลิ้งเมาส์)
- คลิกเมาส์ซ้าย + ปุ่ม Option/Alt (⌥)
การเลือกและเมนู (Selection & Menu):
- เลือกอันเดียว: คลิกเมาส์ซ้าย
- เลือกแบบกรอบสี่เหลี่ยม: คลิกเมาส์ซ้าย (ลากเพื่อเลือกพื้นที่แบบสี่เหลี่ยม)
- เปิดเมนู Node: คลิกเมาส์ขวา
การตั้งค่าระบบรองรับหลายภาษา (Localization)

- การตั้งค่าที่หน้าต่าง Inspector: คลิกที่ Dialogue Asset (Node Graph Asset) ที่สร้างขึ้น แล้วดูที่หน้าต่าง Inspector เพื่อเลือกตั้งค่าภาษาที่รองรับ (อังกฤษ, เกาหลี, ญี่ปุ่น ฯลฯ)

- การใช้แถบเครื่องมือของ Editor: สลับเปลี่ยนภาษาใน Language Selector ที่มุมซ้ายบนของหน้าต่าง Editor เพื่อป้อนข้อความแปลของแต่ละภาษาได้โดยตรง
3. การสร้าง NPC Dialogue ใหม่
การสร้าง Dialogue
- คลิก Create New ในหน้าต่าง Dialogue Helper

- ในหน้าต่าง Dialogue Editor ที่เปิดขึ้นโดยอัตโนมัติ คุณสามารถแก้ไขบทสนทนาของ NPC และตัวเลือกของผู้เล่นได้อย่างอิสระเพื่อสร้าง Node บทสนทนาของคุณ
การกำหนด NPC

- คลิกที่ออบเจกต์ NPC ที่คุณต้องการเพิ่มบทสนทนาจากหน้าต่าง Hierarchy
- ตรวจสอบให้แน่ใจว่าออบเจกต์นั้นมีคอมโพเนนต์ ZepetoNPC ติดอยู่แล้วในหน้าต่าง Inspector
- ลากและวาง NPC ลงในช่อง 'NPC' ของหน้าต่าง Dialogue Helper
การกำหนด Dialogue และทำการ Export

- คลิกที่ ช่อง Dialogue ใน Dialogue Helper เพื่อเชื่อมโยง Dialogue Asset ที่คุณเพิ่งสร้างขึ้น
- เมื่อนำไปใช้เรียบร้อยแล้ว ให้คลิกปุ่ม Export เพื่อให้เนื้อหาทำงานในโลกจริงได้อย่างถูกต้อง
การตรวจสอบ Inspector ขั้นสุดท้าย ตรวจสอบความถูกต้องของการตั้งค่าในหน้าต่าง Inspector ของ NPC (คอมโพเนนต์ ZepetoNPC)
- NPC : ตรวจสอบว่าเลือก Asset NPC ที่ถูกต้องแล้ว
- Dialogue Id : ตรวจสอบให้แน่ใจว่าชื่อข้อความตรงกับ Dialogue Asset ที่คุณเลือก

เคล็ดลับ (TIPs)
- คุณสามารถนำ Dialogue Asset อันเดียวกันไปใช้ซ้ำกับ NPC หลายตัวได้อย่างง่ายดาย
- เพื่อให้แน่ใจว่าการเปลี่ยนแปลงในบทสนทนาของคุณจะทำงานในเกมจริงได้อย่างถูกต้อง โปรด กด Export บ่อยๆ หลังจากการแก้ไขรายละเอียดของบทสนทนา
คำถามที่พบบ่อย (FAQ)
- เมื่อบทสนทนาไม่ทำงานตามที่กำหนดไว้: ตรวจสอบให้แน่ใจว่าคุณได้กดคลิกปุ่ม Export แล้ว และลองตรวจสอบดูว่าได้ป้อน Dialogue Panel กับ Dialogue Id ลงใน Inspector ถูกต้องหรือไม่
- เมื่อข้อมูล NPC ไม่อัปเดตในเครื่องมือ: ให้กดปุ่ม Refresh ในหน้าต่าง Dialogue Helper หรือคลิกเลือก NPC ในหน้าต่าง Hierarchy ใหม่อีกครั้ง
3. ออบเจกต์ยานพาหนะ (Vehicle)
Vehicle
หากคุณวางยานพาหนะอย่างเป็นทางการจากธีม Vehicle ไว้ในโลกของคุณ ผู้เล่นจะสามารถขึ้นไปขับรถได้

หากคุณวางยานพาหนะที่เหมือนกันและมีชื่อเหมือนกันหลายคันใน Scene เดียวกัน อาจก่อให้เกิดข้อผิดพลาดได้ โปรดตรวจสอบให้แน่ใจว่ายานพาหนะแต่ละคันมีชื่อที่ไม่ซ้ำกัน
- คุณสามารถปรับความเร็วให้กับยานพาหนะแต่ละคันได้ ลองสร้างเกมแข่งรถด้วยยานพาหนะที่มีความเร็วต่างกันสิ!
- ตำแหน่งการตั้งค่าความเร็ว
- ไปที่โฟลเดอร์ Assets/BuilditTemplate/Themes/ZepetoAsset_Vehicle/Settings
- เลือกไฟล์สคริปต์ของยานพาหนะ แล้วคุณจะสามารถแก้ไขค่าต่างๆ ได้ที่ช่อง Inspector ทางด้านขวา
- การตั้งค่าความเร็ว
- rotateAnglePerFrame: ความเร็วในการหมุนพวงมาลัย (ความไวในการควบคุมรถ)
- accSpeedPerFrame: อัตราเร่งของรถ
- decreaseSpeedPerFrame: อัตราการลดความเร็วของรถ (เบรก)
- magnification: ความเร็วพื้นฐานของรถ
- backMagnification: ความเร็วขณะถอยหลัง
- boostMagnification: ความเร็วขณะใช้บูสต์เร่งความเร็ว
- boostDuration: ระยะเวลาที่บูสต์มีผล

เคล็ดลับการประยุกต์ใช้
- คุณสามารถสลับเปลี่ยนออบเจกต์รูปลักษณ์ที่อยู่ภายใต้ยานพาหนะ เพื่อทำให้มันดูเป็นพาหนะที่แตกต่างไปจากเดิมอย่างสิ้นเชิงได้
- ปล่อยให้ผู้เล่นได้ขี่ยานพาหนะที่มีรูปลักษณ์เป็นเอกลักษณ์ดูสิ!

vehicle_vendor
การวาง vehicle_vendor จากธีม Vehicle ไว้ในโลกของคุณ จะช่วยให้ผู้เล่นสามารถโต้ตอบกับออบเจกต์จุดรับรถ และเรียกรถออกมาได้

- การกำหนดค่า Vendor
- Booth: คุณสามารถตั้งค่ารูปร่าง/ลักษณะของร้านรับรถได้
- Popup: หน้าต่างที่จะแสดงขึ้นมาบนหน้าจอเพื่อให้ผู้เล่นได้เลือกรถ เมื่อพวกเขากดที่ปุ่มของร้าน
- SpawnLocation: คุณสามารถกำหนดตำแหน่งที่รถจะเกิด (Spawn) หรือปรากฏขึ้นมาได้
AdVehicleSpawner
การวาง AdVehicleSpawner จากธีม Utility จะช่วยให้ผู้เล่นสามารถขับยานพาหนะได้หลังจากที่ดูโฆษณาจบ

- ข้อควรระวัง
- ยานพาหนะที่ได้เป็นรางวัลจากการดูโฆษณาจะคงอยู่ก็ต่อเมื่อผู้เล่นกำลังขับรถอยู่เท่านั้น
- ทันทีที่คุณลงจากรถ รถจะหายไปในทันที
- การกำหนดค่า Spawner
- Vehicle Prefab: คุณสามารถเลือกว่าจะใช้ยานพาหนะใดเป็นรางวัลจากการดูโฆษณา
- Spawn Point: คุณสามารถตั้งค่าตำแหน่งที่รถจะปรากฏได้หลังจากดูโฆษณาเสร็จ
- Life Time: คุณสามารถตั้งเวลาที่จะทำให้รถหายไปได้ หากคุณตั้งเวลาเป็น '0 วินาที' ผู้เล่นจะสามารถขี่ได้เรื่อยๆ โดยไม่มีที่สิ้นสุดจนกว่าจะลงจากรถ
4. เพิ่มไอเทมจำเป็นสำหรับแผนที่กระโดด
ลองทำตามวิดีโอด้านล่างเพื่อเพิ่มออบเจกต์ต่างๆ ลงในแผนที่กระโดด (Jump Map) ของคุณ!
มีซับไตเติลหลายภาษาให้บริการ อย่าลืมเปิดซับไตเติลขณะรับชมนะครับ!
ใช้แท่นเคลื่อนที่
ออบเจกต์ MovingPlatform เป็นแพลตฟอร์มเคลื่อนที่ที่มีประโยชน์อย่างมากสำหรับแผนที่กระโดด (Jump Map) ตัวละครสามารถขึ้นไปขี่ได้ และคุณยังสามารถตั้งค่าเส้นทางการเคลื่อนที่รวมถึงความเร็วได้อย่างง่ายดาย
ระบบจะซิงโครไนซ์ในโหมดมัลติเพลเยอร์โดยอัตโนมัติ ทำให้ผู้เล่นทุกคนในห้องเห็นการเคลื่อนไหวเหมือนกันทั้งหมด
คุณสามารถตั้งค่าคุณสมบัติต่างๆ ได้ในออบเจกต์ลูก MovingPlatformManager
- Sync Type: คุณสมบัติสำหรับการตั้งค่าการซิงโครไนซ์
- Sync: ใช้งานการซิงโครไนซ์มัลติเพลเยอร์
- NoneSync: ไม่ใช้งานการซิงโครไนซ์
- Tween Type: คุณสมบัติที่กำหนดรูปแบบการเคลื่อนที่ไป-กลับของ DOTween
- Circulation: เคลื่อนที่เป็นวงกลม 1 -> 2 -> 3 -> 4 -> 1 -> 2 -> 3 -> 4
- Linear: กลับตามเส้นทางเชิงเส้นเดิม 1 -> 2 -> 3 -> 4 -> 3 -> 2 -> 1
- TeleportFirstPoint: เทเลพอร์ตกลับไปยังจุดเริ่มต้นเมื่อถึงจุดสิ้นสุดแล้วเริ่มวนรอบใหม่ 1 -> 2 -> 3 -> 4 -> 1(teleport)
- Loop Type: คุณสมบัติที่กำหนดจำนวนรอบในการวนลูป
- Repeat: วนลูปไปเรื่อยๆ
- JustOneWay: เคลื่อนที่ไปทางเดียวเท่านั้น
- JustOneRoundTrip: เคลื่อนที่ไป-กลับเพียงรอบเดียว
- Sync Extrapolation: คำนวณการปรับตำแหน่งเพิ่มเติมโดยคำนึงถึงเวลาหน่วงของเซิร์ฟเวอร์
- ค่าเริ่มต้น (default) : true
- Tween Position
- ป้อนพิกัด localPosition ที่แพลตฟอร์มจะเคลื่อนที่ผ่าน แพลตฟอร์มจะเคลื่อนที่ตามลำดับพิกัดที่ป้อนโดยอิงจาก Tween Type
- ต้องตั้งค่าอย่างน้อย 2 พิกัด (จุดเริ่มต้น-จุดสิ้นสุด)
- Move Speed: ความเร็วในการเคลื่อนที่ของออบเจกต์
คุณสามารถปรับแต่งรูปลักษณ์ของ MovingPlatform ให้เข้ากับคอนเซปต์ของคุณได้
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูกที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้วนำออบเจกต์อื่นจากในแผนที่มาวางในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์

ระเบิดเวลา
BombTrap คือออบเจกต์ที่จะระเบิดทันทีเมื่อตัวละครสัมผัสโดนมัน
หากตัวละครอยู่ในระยะการระเบิดในขณะที่เกิดระเบิด ตัวละครนั้นจะถูกส่งกลับไปยังเช็คพอยต์ล่าสุด หรือที่ SpawnPoint
- Fuse Duration: เวลา (หน่วยเป็นวินาที) นับจากการจุดชนวนจนถึงตอนระเบิด
- Explosion Range: พื้นที่บริเวณที่จะได้รับผลกระทบจากการระเบิด
- Show Timer: หากทำเครื่องหมาย เวลาที่เหลือก่อนการระเบิดจะแสดงขึ้นเหนือออบเจกต์

แผ่นบัฟ
BuffPanel จะทำการปรับเปลี่ยนความเร็วในการเคลื่อนที่และพลังการกระโดดของตัวละครเมื่อเหยียบลงไปบนแพลตฟอร์ม
คุณสามารถวางพวกมันไว้รอบๆ แผนที่ของคุณ เพื่อเพิ่มหรือจำกัดความสามารถของตัวละครในส่วนต่างๆ ของด่านเพื่อสร้างเอฟเฟกต์ที่หลากหลาย
- Walk Speed: ความเร็วในการเดินของตัวละครบนออบเจกต์
- Run Speed: ความเร็วในการวิ่งของตัวละครบนออบเจกต์
- Jump Power: พลังกระโดดของตัวละครบนออบเจกต์
✏️ เคล็ดลับ
- หากคุณต้องการให้ตัวละครวิ่งเร็วขึ้น ให้ป้อนค่าบวก เช่น 10 หรือ 20 หากคุณต้องการให้ช้าลง ให้ป้อนค่าติดลบ เช่น -3
- ลองปรับตั้งค่าความเร็วให้แตกต่างกันเพื่อประยุกต์ใช้สร้างโซนภารกิจหรือเป็นองค์ประกอบของปริศนา!

แพลตฟอร์มขยายและหด
ScaleTrap คือแพลตฟอร์มที่จะหดตัวและขยายขนาดซ้ำๆ ตามช่วงเวลาที่กำหนดเอาไว้
วางมันไว้ใน Jump Map หรือด่านที่จังหวะเวลามีความสำคัญ เพื่อสร้างระดับความยากที่หลากหลาย
- Timeout: ระยะเวลา (หน่วยเป็นวินาที) ที่ออบเจกต์จะคงขนาดขยายสูงสุดเอาไว้
- Speed: ความเร็วในการขยายและหดตัวของออบเจกต์

แพลตฟอร์มเด้ง
SpringPlatform จะส่งตัวละครให้ลอยกระเด้งขึ้นไปในอากาศตามช่วงเวลาที่สม่ำเสมอโดยอัตโนมัติ โดยที่ผู้เล่นไม่ต้องกดบังคับใดๆ
- Jump Power: แรงส่งที่จะดันตัวละครให้เด้งขึ้นด้านบน
- Delay Jump Timer: ระยะเวลาระหว่างการกระโดดแต่ละครั้ง (หน่วยเป็นวินาที)

แพลตฟอร์มกระพริบ
BlinkingPlatform จะปรากฏตัวขึ้นและหายไปซ้ำๆ อย่างต่อเนื่องตามช่วงเวลาที่กำหนดไว้
- Visible Time: ระยะเวลา (หน่วยเป็นวินาที) ที่แพลตฟอร์มจะปรากฏให้มองเห็นได้
- Invisible Time: ระยะเวลา (หน่วยเป็นวินาที) ที่แพลตฟอร์มจะซ่อนตัว
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

สายพานลำเลียง
ออบเจกต์ Conveyor จะทำให้ตัวละครเคลื่อนที่ราวกับว่าพวกเขากำลังยืนอยู่บนสายพานลำเลียงจริงๆ
เมื่อเหยียบลงบน Conveyor ตัวละครจะถูกดันเลื่อนไปข้างหน้าตามความเร็วที่ตั้งค่าไว้
การเคลื่อนที่ไปในทิศทางเดียวกับลูกศรจะช่วยเพิ่มความเร็วในการเดินหรือวิ่ง
ในทางกลับกัน การพยายามเคลื่อนที่สวนทางกับทิศทางของลูกศรจะทำให้ความเร็วในการเดินหรือวิ่งลดลง
- Conveyor Speed: ปรับความเร็วของสายพาน
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

แพลตฟอร์มหมุน
(1) ตัวละครหมุนไปด้วยกันกับแพลตฟอร์ม
RotatingPlatform คือแพลตฟอร์มหมุนได้ที่ตัวละครสามารถขึ้นไปยืนอยู่ด้านบนได้
- x Speed: เปลี่ยนความเร็วในการหมุนตามแกน x
- y Speed: เปลี่ยนความเร็วในการหมุนตามแกน y
- z Speed: เปลี่ยนความเร็วในการหมุนตามแกน z
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(2) ตัวละครอยู่นิ่ง มีเพียงแค่ออบเจกต์เท่านั้นที่หมุน
Rotator คือออบเจกต์ที่หมุนเพื่อแสดงผลทางภาพเท่านั้น เนื่องจากมันไม่สามารถพาตัวละครหมุนไปพร้อมกับมันได้ ดังนั้นควรใช้สำหรับการตกแต่งฉากเป็นหลัก
- x Speed: เปลี่ยนความเร็วในการหมุนตามแกน x
- y Speed: เปลี่ยนความเร็วในการหมุนตามแกน y
- z Speed: เปลี่ยนความเร็วในการหมุนตามแกน z
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

แพลตฟอร์มตก
FallingPlatform จะตกลงมาด้านล่างเมื่อเวลาผ่านไประยะหนึ่ง หลังจากที่มีตัวละครมาสัมผัสโดน
- Duration: เวลา (หน่วยเป็นวินาที) ที่แพลตฟอร์มจะค้างอยู่กับที่หลังจากถูกสัมผัสก่อนที่จะตกลงมา
- Falling Speed: ความเร็วในการตกลงมา
- Falling Distance: ระยะทางที่แพลตฟอร์มจะตกลงไป
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

กับดัก
(1) กับดักพื้นฐาน
TrapObj จะทำการเทเลพอร์ตตัวละครทันทีเมื่อมีการสัมผัสโดน
มันจะส่งผู้เล่นไปยัง CheckpointPlatform ที่ถูกเปิดใช้งานล่าสุด หรือกลับไปที่ SpawnPoint หากยังไม่มีเช็คพอยต์
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(2) กับดักเคลื่อนที่
TrapMovingCube จะเคลื่อนที่ไปและกลับระหว่าง startPoint และ endPoint และเทเลพอร์ตตัวละครทุกคนที่สัมผัสโดนมัน
มันจะส่งผู้เล่นไปยัง CheckpointPlatform ที่ถูกเปิดใช้งานล่าสุด หรือกลับไปที่ SpawnPoint หากยังไม่มีเช็คพอยต์
- startPoint: เลือกออบเจกต์ startPoint ใน Hierarchy แล้วย้ายไปยังตำแหน่งที่คุณต้องการเพื่อเปลี่ยนแปลงจุดเริ่มต้นของเส้นทาง
- endPoint: เลือกออบเจกต์ endPoint ใน Hierarchy แล้วย้ายไปเพื่อเปลี่ยนแปลงตำแหน่งจุดสิ้นสุดของเส้นทาง
- Speed: เปลี่ยนความเร็วในการเคลื่อนที่ในหน้าต่าง Inspector
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(3) กับดักลูกตุ้มแกว่ง
TrapPendulum จะแกว่งสลับไปมาจากซ้ายไปขวาเหมือนลูกตุ้มนาฬิกา
- Amplitude: ความสูงของการแกว่งลูกตุ้ม
- Speed: ความเร็วในการแกว่งลูกตุ้ม
- Enable Kill: หากทำเครื่องหมายถูกไว้ จะเทเลพอร์ตตัวละครที่ไปสัมผัสโดนรูปทรงกลมที่อยู่ด้านล่าง มันจะส่งผู้เล่นไปยัง CheckpointPlatform ที่ถูกเปิดใช้งานล่าสุด หรือกลับไปที่ SpawnPoint หากยังไม่มีเช็คพอยต์
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(4) กับดักหมุนแนวนอน
TrapRotatingHorizontal จะหมุนในแนวนอน โดยจะเทเลพอร์ตตัวละครที่สัมผัสโดนแท่งสีขาว
มันจะส่งผู้เล่นไปยัง CheckpointPlatform ที่ถูกเปิดใช้งานล่าสุด หรือกลับไปที่ SpawnPoint หากยังไม่มีเช็คพอยต์
- Rotation Speed: ความเร็วในการหมุน
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(5) กับดักหมุนแนวตั้ง
TrapRotatingVertical จะหมุนในแนวตั้ง โดยจะเทเลพอร์ตตัวละครที่สัมผัสโดนแท่งสีขาว
มันจะส่งผู้เล่นไปยัง CheckpointPlatform ที่ถูกเปิดใช้งานล่าสุด หรือกลับไปที่ SpawnPoint หากยังไม่มีเช็คพอยต์
- Rotation Speed: ความเร็วในการหมุน
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

(6) กับดักหนาม
SpikeTrap จะเผยหนามแหลมออกมาตามระยะเวลาเป็นรอบๆ ที่กำหนดไว้
วางพวกมันเอาไว้เพื่อเพิ่มความตื่นเต้นตึงเครียดให้กับแผนที่ของคุณ
- Spike Active Duration : ระยะเวลาที่หนามแหลมโผล่ยื่นออกมา
- Spike Cooldown Duration : ระยะเวลาที่หนามแหลมหดกลับเข้าไป

- เปลี่ยนรูปลักษณ์ออบเจกต์: หากต้องการเปลี่ยนแผ่นพื้น (Base Plate) ให้ลบออบเจกต์รูปลักษณ์ที่อยู่ภายใต้ Plate ออก แล้วเพิ่มสิ่งที่คุณต้องการเข้าไปแทน
- เราขอแนะนำให้ไม่ไปปรับแต่งในส่วนประกอบอื่นๆ

เช็คพอยต์
CheckpointPlatform จะกำหนดจุดเกิดใหม่ (Respawn Point) เมื่อถูกสัมผัส
จัดวางอย่างมีกลยุทธ์ตามจุดต่างๆ ของแต่ละด่านในขณะที่คุณกำลังสร้าง Jump Map
- Index: กำหนดลำดับการเปิดใช้งานของ CheckpointPlatform
- ค่า Index เริ่มต้นคือ 0 โปรดป้อนค่าที่มากกว่า 0 ขึ้นไป หากใส่ค่าติดลบระบบจะทำงานผิดพลาด
- ตัวละครจะเกิดใหม่ที่ CheckpointPlatform ที่มี ค่า Index สูงสุด เท่าที่ตัวละครนั้นเคยไปสัมผัส
- การใช้ Index จะป้องกันไม่ให้ผู้เล่นถูกส่งกลับไปยังเช็คพอยต์ของด่านที่ต่ำกว่า หากพวกเขาเผลอเดินย้อนกลับไปหลังจากเคลียร์เลเวลสูงๆ ได้แล้ว
- CheckpointPlatform จะ ถูกเปิดใช้งานเมื่อตัวละครไปสัมผัสโดนเป็นครั้งแรก หากค่า Index มีค่าเท่ากัน ตัวละครจะเกิดใหม่ที่ CheckpointPlatform ที่เพิ่งถูกเปิดใช้งานล่าสุด
- ตัวอย่าง) หากตัวละครเดินผ่านเช็คพอยต์ตามลำดับ 1 -> 2 -> 3 -> 2 ตัวละครจะเกิดใหม่ที่เช็คพอยต์ 3 (เช็คพอยต์อันใหม่ล่าสุดที่เพิ่งถูกเปิดการใช้งาน) ไม่ใช่เช็คพอยต์ 2 ที่เพิ่งเดินกลับไปหา
- เปลี่ยนรูปลักษณ์ออบเจกต์: ลบออบเจกต์ลูก Model ที่ทำหน้าที่แสดงรูปลักษณ์ออก แล้ววางออบเจกต์อื่นจากในแผนที่ลงในตำแหน่งเดียวกันเพื่อเปลี่ยนรูปลักษณ์ของมัน หากคุณเปลี่ยนรูปลักษณ์ อย่าลืมปรับขนาดและตำแหน่งของ Collider ในหน้าต่าง Inspector ให้พอดีกับรูปทรงแบบใหม่ด้วย

5. ใช้ธีมปลาหมึก
วัตถุยองฮี
ออบเจกต์ yonghee จะช่วยให้คุณสามารถเล่นมินิเกมง่ายๆ ได้เพียงแค่นำมันไปวางในโลกของคุณ
- การทำงานพื้นฐาน
- มันจะทำงานโดยอัตโนมัติเมื่อคุณกด Play
- หากคุณขยับตัวในขณะที่ตัวละคร Yonghee กำลังมองมาที่คุณ เลเซอร์จะยิงออกมาและคุณจะล้มลง (เป็นการทริกเกอร์แอนิเมชันการล้มลงเท่านั้น)
- ระยะเวลาที่ตัวละคร Yonghee จะหันมองกลับมา สามารถตั้งค่าได้ที่ Inspector
- Min Counting Time: เวลาต่ำสุดที่ Yonghee จะหันหลังกลับมามอง
- Max Counting Time: เวลาสูงสุดที่ Yonghee จะหันหลังกลับมามอง
- Paused: เปิด/ปิดการทำงานของเธอ หากคุณแค่ต้องการใช้เป็นออบเจกต์สำหรับตกแต่งโดยไม่มีฟังก์ชันใดๆ ให้ตั้งค่า Paused เป็น ON ก่อนนำไปวาง

ฟีเจอร์โหวต
ออบเจกต์ voting จะคอยนับจำนวนคนที่ยืนอยู่ในพื้นที่ O และ X ตามลำดับ
แค่นำมันไปวางบนพื้น มันก็จะเริ่มทำงานทันทีโดยไม่ต้องตั้งค่าใดๆ เพิ่มเติม
- พื้นที่ Collider ของพื้น O และ X คือจุดที่จะเกิดการนับคะแนน คุณสามารถปรับขนาดพวกมันเพื่อปรับเปลี่ยนพื้นที่การรับรู้ได้

ตัวจับเวลาแบบนับถอยหลัง
timedisplay คือหน้าจอสำหรับแสดงตัวเลขการนับถอยหลัง
โดยจะถูกตั้งค่าเริ่มต้นเป็นการนับถอยหลังที่ 5 นาที
คุณสามารถปรับเปลี่ยนเวลาการนับถอยหลังได้อย่างอิสระผ่านทาง Inspector
- MaxValue: เวลาเริ่มต้นการนับถอยหลัง (วินาที)
- MinValue: เวลาสิ้นสุดการนับถอยหลัง (วินาที)
- Interval: ช่วงเวลาที่ตัวเลขเวลาจะลดลง (วินาที)

แพลตฟอร์มกระจกที่แตกได้
breakable_glass คือแพลตฟอร์มที่จะหายไปเมื่อถูกเหยียบหรือถูกสัมผัสโดน
ใช้เป็นสิ่งกีดขวางหรืออุปสรรคใน Jump Map
- Is Breakable: เปิด/ปิดคุณสมบัติการแตกหัก (หายไป) คุณสมบัติด้านล่างจะทำงานก็ต่อเมื่อตัวเลือกนี้เปิดเป็น ON เท่านั้น
- Auto Reset Delay: เมื่อสัมผัสโดนแล้ว มันจะเกิดใหม่ (Respawn) โดยอัตโนมัติตามระยะเวลาที่ได้ตั้งไว้ใน Auto Reset Delay
- Has Auto Reset: หากคุณไม่ต้องการให้แพลตฟอร์มเกิดใหม่ขึ้นมาอีก ให้ปิด Has Auto Reset เป็น OFF
