คู่มือนี้จะอธิบายวงจรการพัฒนาเกมโดยทั่วไป หลังจากอ่านคำแนะนำนี้แล้ว คุณอาจพบว่าการใช้คำแนะนำนี้เป็นข้อมูลอ้างอิงก็เป็นประโยชน์เช่นกัน
เมื่อทำงานกับ Unity วงจรการพัฒนาจะประกอบด้วย 3 ระยะ ดังนี้
- วางแผนและออกแบบ
- พัฒนาและทดสอบ
- เผยแพร่และบำรุงรักษา
วางแผนและออกแบบ
ในระยะการวางแผนและการออกแบบ คุณจะต้องกำหนดวิธีสร้างเกม คุณ เป็นผู้กำหนดวิธีรับมือกับความท้าทายในการพัฒนาสำหรับอุปกรณ์เคลื่อนที่ และ ระบุเครื่องมือและกระบวนการที่จะใช้ในการพัฒนา
รับข้อมูลจากสมาชิกทุกคนในทีม
ทำงานร่วมกับทีมศิลปะ วิศวกรรม การออกแบบ เสียง และการผลิตเพื่อระบุและบันทึกงานการติดตั้งใช้งาน เช่น
- ทีมศิลปะอาจสร้างพื้นผิวของชิ้นงานและงบประมาณตาข่ายสำหรับตัวละคร และสภาพแวดล้อม
- ฝ่ายวิศวกรรมอาจกำหนดจุดตรวจสอบหน่วยความจำและประสิทธิภาพสำหรับการ สร้างโปรไฟล์เทียบกับแต่ละแพลตฟอร์ม
- การออกแบบอาจวางแผนกลไกของเกมที่ช่วยให้เกิดประสบการณ์การใช้งาน
- ผู้เชี่ยวชาญด้านเสียงอาจตรวจสอบข้อกำหนดสำหรับความต่อเนื่องของเสียงระหว่าง UI, เสียงเชิงพื้นที่ 2 มิติ และ 3 มิติ
- ทีมโปรดักชันอาจสื่อสารข้อกำหนดในการเปิดตัวและช่วยให้ทีม ทำงานร่วมกันและเป็นไปตามแผน
ออกแบบเพื่ออุปกรณ์เคลื่อนที่
การพัฒนาแอปพลิเคชันสำหรับแพลตฟอร์มบนอุปกรณ์เคลื่อนที่ต้องพิจารณาเรื่องต่างๆ โดยเฉพาะ เช่น
- สัดส่วนการแสดงผลของหน้าจอที่แตกต่างกัน
- การใช้พลังงาน
- การควบคุมความร้อนและตัวประมวลผล
- การป้อนข้อมูลด้วยการสัมผัส
- การพัฒนาข้ามแพลตฟอร์ม
- API กราฟิก (Vulkan หรือ OpenGL ES)
ดูรายละเอียดเกี่ยวกับข้อควรพิจารณาเฉพาะสำหรับการออกแบบสำหรับอุปกรณ์เคลื่อนที่ได้ที่ การพัฒนา Android ใน Unity จาก Unity และ Google Play Academy
พัฒนาและทดสอบ
ในระยะการพัฒนาและการทดสอบ คุณจะสร้างเกมและทำการทดสอบ รวมถึง เตรียมความพร้อมก่อนเปิดตัว คุณทำการทดสอบภายในแบบจำกัดใน Google Play เพื่อเตรียมพร้อมให้เป็นไปตามข้อกำหนดในการเปิดตัว คุณปรับแต่ง กลยุทธ์การติดตั้งใช้งานและจัดระเบียบชิ้นงานใน Unity ตามระบบ การนำส่งชิ้นงานของ Play และระบบ Addressables ของ Unity
ส่วนต่อไปนี้จะอธิบายเครื่องมือและเทคนิคของ Unity ที่ออกแบบมาเพื่อช่วยคุณพัฒนาแอปสำหรับ Android
แสดงผล
การแสดงผลคือกระบวนการวาดชิ้นงาน 3 มิติและ 2 มิติจากฉาก Unity บนหน้าจอ แม้ว่าเอนจิน Unity จะจัดการการแสดงผล แต่ก็มีปัจจัยบางอย่างที่ควรพิจารณาสำหรับแพลตฟอร์ม Android
พื้นผิว
พิจารณาว่าคุณต้องการขนาดพื้นผิวที่ใหญ่ที่สุดหรือไม่ โดยพิจารณาจากอุปกรณ์เป้าหมาย เมื่อคุณสร้างโปรไฟล์การจัดสรรหน่วยความจำ ให้ตรวจสอบการประหยัดที่อาจเกิดขึ้นจากการเปลี่ยนขนาดพื้นผิวเป้าหมาย
เวลาที่ใช้ในการแสดงผลเฟรม
หากต้องการป้องกันไม่ให้อุปกรณ์ Android ร้อนเกินไป ให้ตั้งค่าเวลาเฟรมเป้าหมาย โดยเฉลี่ยต่ำกว่า 21 มิลลิวินาที บางครั้ง เช่น ระหว่างการโหลดหรือประสบการณ์ภาพยนตร์สั้น เวลาเฟรมอาจเกิน 21 มิลลิวินาที แต่คุณควรให้เวลาเฟรมต่ำกว่าเกณฑ์ 21 มิลลิวินาทีสำหรับประสบการณ์การเล่นเกมหลัก
ในแพลตฟอร์มอุปกรณ์เคลื่อนที่ VSync ที่บังคับจะจำกัดอัตราเฟรมหากคุณไม่ ถึงเป้าหมายขั้นต่ำ เช่น ในการอัปเดตหน้าจอ 60Hz หากคุณไม่สามารถทำได้ 60fps ระบบจะจำกัดเกมไว้ที่ 30fps และหากคุณไม่สามารถทำได้ 30fps ระบบจะจำกัดไว้ที่ 15fps
อุปกรณ์ Android หลายรุ่นมาพร้อมอัตราการรีเฟรชจอแสดงผลที่ 60Hz และ 120Hz พิจารณาข้อดีของการกำหนดเป้าหมายเวลาเฟรมที่สั้นลงมาก (เป้าหมาย 10 มิลลิวินาทีสำหรับการอัปเดต 60 Hz และ 5 มิลลิวินาทีสำหรับ 120 Hz) โดยไม่เสี่ยงต่อการควบคุมอุณหภูมิและการสิ้นเปลืองแบตเตอรี่สำหรับอัตราการแสดงผลที่สูงขึ้น
หากต้องการตั้งค่าอัตราเฟรมที่เฉพาะเจาะจงในเกมใน Unity ให้ใช้ Application.targetFrameRate
ไลบรารี Frame Pacing ของ Android ช่วยให้คุณแสดงผลได้อย่างราบรื่นเมื่อแอปพลิเคชันใช้เวลานานกว่าอัตราการรีเฟรชของหน้าจอในการแสดงเฟรมถัดไป สำหรับ Unity เวอร์ชัน 2021 ขึ้นไป การเปิดใช้การเว้นวรรคเฟรมของ Android จะตั้งค่าอัตราการรีเฟรชของจอแสดงผลให้ ตรงกับอัตราเฟรมเป้าหมายมากที่สุด วิธีนี้ช่วยให้เกมไม่ สิ้นเปลืองพลังงานแบตเตอรี่ไปกับการอัปเดตการแสดงผลที่ไม่จำเป็น
หากต้องการเปิดใช้ไลบรารี ให้ไปที่การตั้งค่าโปรเจ็กต์ > Player แล้วเลือกช่องทำเครื่องหมายการเว้นเฟรมที่เพิ่มประสิทธิภาพในส่วนการตั้งค่าสำหรับ Android

Vulkan API
Vulkan เป็น API กราฟิก 3 มิติแบบข้ามแพลตฟอร์มที่มีประสิทธิภาพสูงและมีค่าใช้จ่ายต่ำเมื่อเทียบกับ OpenGL ES Unity ใช้ Vulkan ได้ 2 วิธี
Auto Graphics API
คุณใช้ Auto Graphics API กับ Vulkan ได้ แต่ลักษณะการทำงานอาจแตกต่างกันไป ขึ้นอยู่กับเวอร์ชัน Unity ที่คุณติดตั้ง คุณเลือก ได้โดยไปที่การตั้งค่าโปรเจ็กต์ > เพลเยอร์ > การแสดงผล
โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้เมื่อเลือกเวอร์ชัน Unity ที่จะใช้
- Unity 2021.1 และเวอร์ชันก่อนหน้าไม่รองรับ Vulkan ด้วย Auto Graphics API Unity จะพยายามใช้ OpenGL ES 3.2 หากอุปกรณ์ไม่รองรับ OpenGL ES 3.2 Unity จะกลับไปใช้ OpenGL ES 3.1, 3.0 หรือ 2.0 ตามลำดับ
- Unity 2021.2 และเวอร์ชันที่ใหม่กว่าจะใช้ Vulkan ก่อน หากอุปกรณ์ไม่รองรับ Vulkan Unity จะกลับไปใช้ OpenGL ES 3.2, 3.1, 3.0 หรือ 2.0

API กราฟิกแบบกำหนดเอง
หรือคุณจะเปิดใช้ Vulkan ด้วยตนเองโดยปิดใช้ Auto Graphics API ก็ได้ หากคุณใช้ Unity 2021.1 หรือเวอร์ชันก่อนหน้า นี่เป็นวิธีเดียวที่จะใช้ Vulkan ได้
หาก Vulkan อยู่ในอันดับสูงกว่า OpenGL ES ในรายการนี้ Unity จะพยายามใช้ Vulkan ก่อน หากอุปกรณ์ไม่รองรับ Vulkan Unity จะทำงานด้วย OpenGL ES ดูข้อมูลโดยละเอียดเกี่ยวกับ Vulkan ใน Android เช่น วิธีใช้กราฟิก API สมัยใหม่และเพิ่มประสิทธิภาพของเกมได้ที่เริ่มต้นใช้งาน Vulkan

คำสั่งประมวลผล
ทุกอย่างที่แสดงบนหน้าจอจะเชื่อมโยงกับการเรียกใช้การวาดอย่างน้อย 1 รายการ ในแพลตฟอร์ม อุปกรณ์เคลื่อนที่ คุณควรเพิ่มประสิทธิภาพและลดจำนวนการเรียกวาดที่ ส่งไปยังหน่วยประมวลผลกราฟิก (GPU)
ให้คิดว่าคำสั่งวาดคล้ายกับรถยนต์ที่จอดเรียงกันที่ไฟจราจร หลังจาก ไฟเปลี่ยนเป็นสีเขียว รถยนต์จำนวนหนึ่งจะขับผ่านได้ก่อนที่ไฟจะ เปลี่ยน เมื่อไฟเปลี่ยนเป็นสีเหลือง แสดงว่าคุณมีเวลาเฟรมเป้าหมายที่เหมาะสม (21 มิลลิวินาที) และเมื่อไฟเปลี่ยนเป็นสีแดง แสดงว่าคุณมีเวลาเฟรมถึงขีดจำกัด 33 มิลลิวินาที หากเกินกว่านั้นจะส่งผลต่อเฟรมการแสดงผลถัดไป ดังนั้นอัตราเฟรมที่ได้จึงต่ำกว่า 30 FPS เป้าหมาย
ดูข้อมูลเกี่ยวกับวิธีปรับปรุงประสิทธิภาพการเรียกวาดในเกมได้ที่บทความการจัดกลุ่มจากทีมสนับสนุนของ Unity
แสงเงา
การเรียกใช้การวาดภาพการทอดเงาอาจใช้ GPU มากที่สุด โดยใช้เวลา GPU มากที่สุดแม้ในสภาพแวดล้อมที่เรียบง่าย หากต้องการลดต้นทุนของ Shadow Casting Draw Call ให้ลองใช้เงาแบบแข็งแทนเงาแบบนุ่ม หากยังคงมีค่าใช้จ่ายสูงเกินไปใน GPU สำหรับอุปกรณ์ระดับล่าง ให้ลองใช้ เงาแบบก้อนแทนเงาแบบแข็ง
พื้นผิว
รูปแบบการบีบอัดพื้นผิวที่แนะนำสำหรับพื้นผิว RGB และ RGBA ใน Android คือ ASTC ใน Unity ตัวเลือกการบีบอัดพื้นผิวขั้นต่ำที่คุณควรใช้ใน Android คือ ETC2 คุณสามารถเปลี่ยนกลับไปใช้ ETC2 เป็นข้อมูลสำรองจาก ASTC ได้ในการตั้งค่าการบิลด์ของ Unity
ดูรายการรูปแบบทั้งหมดที่รองรับตามแพลตฟอร์มได้ในเอกสารประกอบของ Unity ที่ Manual: Recommended, default, and supported texture formats, by platform
อินเทอร์เฟซผู้ใช้และสัดส่วนการแสดงผล
คุณสามารถใช้เครื่องมือโปรแกรมจำลองอุปกรณ์ ของ Unity เพื่อดูตัวอย่างความละเอียดหน้าจอ การวางแนว และ สัดส่วนภาพของอุปกรณ์ต่างๆ ได้โดยตรงใน Unity Editor คุณสลับระหว่างมุมมองเกม และมุมมองโปรแกรมจำลองอุปกรณ์ได้
ดูตัวอย่างเครื่องมือได้ที่ จำลองเกมด้วยโปรแกรมจำลองอุปกรณ์ใน Unity!

คุณดูซอร์สโค้ดของ Trivial Kart ได้ในที่เก็บ games-samples บน Github
คุณสามารถยืนยันเลย์เอาต์และความถูกต้องขององค์ประกอบผืนผ้าใบ UI ได้อย่างรวดเร็วในมุมมอง Device Simulator โดยเลือกตัวเลือกอุปกรณ์ในเมนูแบบเลื่อนลง


ดูเทคนิคการเพิ่มประสิทธิภาพ UI เพิ่มเติมสำหรับ Unity ได้ในบทแนะนำต่อไปนี้จาก Unity: การเพิ่มประสิทธิภาพ UI ของ Unity
ฟิสิกส์
เอนจิน Nvidia PhysX มีอยู่ใน Unity การตั้งค่าเริ่มต้น อาจมีค่าใช้จ่ายสูงในอุปกรณ์เคลื่อนที่ ดังนั้นโปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้
- พิจารณาอัตราเฟรมเป้าหมายและตั้งค่าการก้าวเวลาคงที่ตามนั้น ค่าเริ่มต้นคือ 0.02 มิลลิวินาทีหรือ 50 Hz คุณเพิ่มค่านี้เป็น 0.03 หรือสูงกว่าได้หากต้องการเป้าหมาย 30 FPS
- ลองลดความซับซ้อนของ Mesh Collider และลด Layer Collision Matrix เพื่อพิจารณาการโต้ตอบระหว่างออบเจ็กต์ในเกมของเลเยอร์ ประเภทที่เฉพาะเจาะจง
ดูข้อมูลเกี่ยวกับ การตั้งค่าฟิสิกส์ และการเพิ่มประสิทธิภาพสำหรับเกมบนอุปกรณ์เคลื่อนที่ได้ใน Optimize Your Mobile Games eBook จาก Unity
โปรไฟล์
นักพัฒนาแอปมักจะมองข้ามหรือละเลยการสร้างโปรไฟล์จนกว่าแอปพลิเคชันจะถึงจุดล้มเหลวที่สำคัญ คุณควรจัดเวลาสำหรับการทำโปรไฟล์โดยเฉพาะลงในกระบวนการ และใช้แนวทางปฏิบัติแนะนำต่อไปนี้
- ระบุจุดสำคัญในระหว่างการพัฒนาเมื่อคุณสามารถจัดสรรเวลาในการทำโปรไฟล์ แทนที่จะทำแบบสุ่ม
- บันทึกภาพรวมโปรไฟล์เพื่อใช้กับ Unity Profile Analyzer
- สร้างโปรไฟล์เกมในอุปกรณ์เป้าหมายเพื่อให้ทราบภาพรวมที่ถูกต้องเกี่ยวกับประสิทธิภาพของเกมในขั้นตอนการพัฒนาปัจจุบัน
- สร้างโปรไฟล์ส่วนต่างๆ ของเกม
- สร้างโปรไฟล์วิธีที่ผู้เล่นเล่นเกม (อย่าทำโปรไฟล์เกมเฉพาะ เมื่อเกมอยู่ในสถานะว่างหรือบนหน้าจอหยุดชั่วคราว)
- สร้างโปรไฟล์ในโหมดคงที่หลังจากที่เกมทำงานมาระยะหนึ่ง เพื่อช่วยค้นหาปัญหาการควบคุมปริมาณที่คุณอาจพบเมื่ออุปกรณ์เคลื่อนที่ร้อน
คุณสามารถใช้เครื่องมือสร้างโปรไฟล์ต่อไปนี้แยกกันหรือใช้ร่วมกันก็ได้
Unity Profiler Unity Profiler เป็นเครื่องมือวิเคราะห์ประสิทธิภาพที่ผสานรวมอย่างเต็มรูปแบบ ซึ่งสามารถเรียกใช้กับโค้ดใน Unity Editor และเชื่อมต่อกับอุปกรณ์ Android แบบสแตนด์อโลนที่เรียกใช้บิลด์โหมดการพัฒนา
Android GPU Inspector ด้วย Android GPU Inspector (AGI) คุณสามารถทำการแก้ไขข้อบกพร่องระดับเฟรมได้ AGI ยังวิเคราะห์บริการของระบบ ซึ่งรวมถึง GPU, CPU, หน่วยความจำ, แบตเตอรี่ และตัวนับ GPU ด้วย
ดูรายละเอียดเกี่ยวกับการสร้างโปรไฟล์เกมใน Unity ได้ในวิดีโอ ข้อมูลเบื้องต้นเกี่ยวกับการสร้างโปรไฟล์ใน Unity หรืออ่าน คำแนะนำขั้นสูงสุดในการสร้างโปรไฟล์เกม Unity ทั้ง 2 รายการจาก Unity
การจัดการหน่วยความจำ
กระบวนการของ Android จะใช้หน่วยความจำที่มีในอุปกรณ์เป้าหมายร่วมกัน คุณควร ทำโปรไฟล์การใช้งานหน่วยความจำเมื่ออุปกรณ์ทดสอบเป้าหมายมีทรัพยากร หน่วยความจำว่างเพียงพอ ทำการทดสอบหน่วยความจำในจุดที่สอดคล้องกันในเกมเพื่อให้คุณเปรียบเทียบเซสชันและแนวโน้มการใช้หน่วยความจำได้อย่างเหมาะสม
เมื่อทำงานในสคริปต์ที่เขียนด้วย C# ให้ระมัดระวังในการใช้สตริง การเปรียบเทียบสตริง และการจัดสรรออบเจ็กต์ที่เกี่ยวข้องกับสตริง (เช่น ไฟล์ JSON สำหรับการตั้งค่าเกม) ซึ่งทำให้เกิดการจัดสรรหน่วยความจำบ่อยครั้งและอาจ ทำให้เกิดการแตกกระจาย
พิจารณาใช้คลาส
StringBuilder
สำหรับลำดับการจัดการสตริงขนาดใหญ่ แทนการต่อสตริงในที่ (เช่น "this" + "is" + "a" + "bad" + "idea" เทียบกับ
การเรียกฟังก์ชัน StringBuilder.Concat()
)
ดูข้อมูลเพิ่มเติมเกี่ยวกับสตริงได้ที่สตริงและข้อความ ในเอกสารประกอบของ Unity
ประเมิน TextAsset และทรัพยากรข้อความ JSON กับScriptableObject
ประเภทที่ต้องการ ScriptableObjects
จัดการการจัดเก็บข้อมูลข้ามฉาก
อย่างมีประสิทธิภาพและอนุญาตให้แก้ไขเวลาจากเอดิเตอร์ไปยังเวลาเล่น
หากต้องการพูดคุยเกี่ยวกับการใช้ทางเลือกแทนแฮนเดิล JSON เริ่มต้นสำหรับการเพิ่มประสิทธิภาพบนอุปกรณ์เคลื่อนที่ โปรดดูบทความการเพิ่มประสิทธิภาพที่ซ่อนอยู่ในการแข่งขันบนเครือข่ายใน Hutch
ใช้ Memory Advice API เพื่อดูการใช้งานหน่วยความจำของคุณในขณะรันไทม์ API แสดงตัวบ่งชี้ไฟจราจรสำหรับการใช้หน่วยความจำสูง ปกติ และต่ำ คุณสามารถติดตามตัวบ่งชี้เพื่อรับข้อมูลอัปเดตหรือสำรวจโดยตรงเพื่อดูสถานะปัจจุบันได้ เมื่อได้รับสัญญาณสีแดง ให้พิจารณาลดพูลหรือแคชของออบเจ็กต์เกม โปรดรวมบริบทนี้ไว้ในการวัดระยะไกลของเกมในระหว่างการปฏิบัติการแบบสด และการตรวจสอบเมตริกประสิทธิภาพหลังการเปิดตัว
หากต้องการเจาะลึกการจัดระเบียบหน่วยความจำในอุปกรณ์ Android และวิธีที่ Unity ทำงานร่วมกับหน่วยความจำดังกล่าว โปรดดูทำความเข้าใจการใช้หน่วยความจำของ Android (จาก Google I/O '18) วิดีโอจะอธิบายประเภทของปัญหาเกี่ยวกับหน่วยความจำและเวลาที่ตัวจัดการหน่วยความจำต่ำ จะมีผล
การเก็บขยะ
การเก็บขยะในสภาพแวดล้อมหน่วยความจำที่มีการจัดการจะล้างหน่วยความจำที่ไม่ได้ใช้ ซึ่งสามารถนำกลับมาใช้ใหม่สำหรับแอปพลิเคชันได้ ทำตามแนวทางปฏิบัติแนะนำในการเก็บขยะ เพื่อหลีกเลี่ยงการจัดสรรทรัพยากรหน่วยความจำที่ไม่จำเป็น
เช่น สร้างพูลออบเจ็กต์เกมแทนการใช้การจัดสรรตามต้องการ (GameObject.Instantiate
) สำหรับพูลขนาดใหญ่ ให้พิจารณาจัดสรรหลายเฟรมเพื่อลดความเสี่ยงที่เกมจะไม่ตอบสนองในอุปกรณ์ Android ระดับเริ่มต้น
ลองดูข้อมูลโค้ดต่อไปนี้สำหรับโครูทีนอย่างง่ายที่เรียกใช้จาก จุดเริ่มต้นของ MonoBehaviour
// Option 1: Bad for memory management - causes allocation each iteration
IEnumerator UpdateEnemyTarget() {
while (enabled) {
yield return new WaitForSeconds(1.0f);
// Some intermittent function check
}
}
// Option 2: Better for memory management - allocation of yield instruction once, reused each iteration
private YieldInstruction waitForSecond = new WaitForSeconds(1.0f);
IEnumerator BetterUpdateEnemyTarget() {
while (enabled) {
yield return waitForSecond;
// Some other intermittent function
}
}
คุณสามารถ
แก้ไข
ไฟล์เทมเพลต MonoBehaviour เพื่อนำฟังก์ชัน Start()
และ
Update()
ที่เป็นค่าเริ่มต้นออก เพื่อไม่ให้คุณทิ้งฟังก์ชันว่างไว้โดยไม่ตั้งใจขณะพัฒนา
ดูภาพรวมลำดับการดำเนินการของเหตุการณ์ MonoBehaviour ได้ที่ ลำดับการดำเนินการสำหรับฟังก์ชันเหตุการณ์ ในเอกสารประกอบของ Unity ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการหน่วยความจำได้ใน หลักสูตร การจัดการหน่วยความจำใน Unity
ดูเคล็ดลับการเพิ่มประสิทธิภาพเกมบนอุปกรณ์เคลื่อนที่ได้ที่เพิ่มประสิทธิภาพเกมบนอุปกรณ์เคลื่อนที่: เคล็ดลับเกี่ยวกับการสร้างโปรไฟล์ หน่วยความจำ และสถาปัตยกรรมโค้ดจากวิศวกรชั้นนำของ Unity
การรวมกลุ่มแบบสำเร็จรูป
การเพิ่มขึ้นของเวลาเฟรม CPU เกือบทั้งหมดเกิดจากการสร้างอินสแตนซ์ Prefab ระหว่าง การเล่นเกม พิจารณาการอุ่นพูลออบเจ็กต์ล่วงหน้าสำหรับกระสุน ศัตรูที่เกิดใหม่ และเอฟเฟกต์ภาพก่อนเข้าสู่การเล่นเกมเพื่อลดหรือ ขจัดปัญหา CPU พุ่งสูงขึ้นในช่วงเริ่มต้น คุณสามารถกระจายการเพิ่มประสิทธิภาพเพิ่มเติม ใน "เฟรมการเริ่มต้น" หลายเฟรมระหว่างการโหลดหรือ ลำดับการแนะนำในฉาก
คุณจะพบเนื้อหาการจัดกลุ่มของบุคคลที่สามมากมายใน Unity Asset Store ที่เกี่ยวข้องกับการจัดการการจัดกลุ่มออบเจ็กต์เกม ทั้งยังสร้างการโต้ตอบของคุณเองได้อีกด้วย ดูข้อมูลเบื้องต้นเกี่ยวกับการจัดกลุ่มออบเจ็กต์ใน Unity Learn
การนำส่งชิ้นงาน
แอปพลิเคชันของคุณมีขนาดสูงสุดเมื่อมีการ นําไปใช้งานใน Google Play เป็นครั้งแรก คุณอาจต้องใช้ทรัพยากรเกมบางส่วนหรือทั้งหมด (โมเดลตัวละคร สภาพแวดล้อม องค์ประกอบ UI และอื่นๆ) เพื่อให้ผู้เล่นได้รับประสบการณ์การใช้งานตามที่คุณต้องการ ทั้งนี้ขึ้นอยู่กับขนาดและลักษณะของเกม
คุณสามารถใช้บริการ Play Asset Delivery (PAD) เพื่อจัดการเนื้อหาที่เกมของคุณต้องการเมื่อติดตั้ง ตามอย่างรวดเร็ว หรือตามคำขอ เราได้ผสานรวม Unity Asset Bundle เพื่อรองรับ PAD และคุณสามารถใช้เครื่องมือนี้เพื่อระบุองค์ประกอบที่จะส่ง
Addressables
การตั้งค่าทรัพยากรแบบไดนามิก เช่น Prefab, เท็กซ์เจอร์ และไฟล์เสียง ในรันไทม์จะไม่ใช่การดำเนินการที่ซับซ้อนอีกต่อไป หากคุณเตรียม และตรวจสอบระบบการตั้งชื่อ Addressables ชิ้นงานที่ระบุตำแหน่งได้จะแยกวิธีจัดเรียงเนื้อหาออกจากวิธีสร้างและโหลดเนื้อหา ระบบ Addressables จะแทนที่โฟลเดอร์ Resources และ AssetBundles เพื่อลดความซับซ้อนของวิธีอ้างอิงและโหลดชิ้นงานในรันไทม์
ดูตัวอย่างได้ที่โปรเจ็กต์เดโมที่ใช้แพ็กเกจ Addressables ใน GitHub ดูรายละเอียดเกี่ยวกับการพัฒนา Addressables ได้ที่ระบบชิ้นงานที่ระบุตำแหน่งได้ในบล็อกของ Unity
เลย์เอาต์ของชิ้นงานที่ระบุตำแหน่งได้มีข้อดีและข้อเสียในการ รวมชิ้นงานน้อยเกินไปหรือ มากเกินไปไว้ในแพ็กเกจทั่วไป ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการเนื้อหาด้วย Addressables ได้ที่ ลดความซับซ้อนในการจัดการเนื้อหาด้วย Addressables
คุณตั้งค่าการสาธิตแบบสแตนด์อโลนและทดลองใช้โหมดการเข้าถึงเพื่อทำความคุ้นเคยกับระบบ Addressables ได้ นอกจากนี้ คุณยังดูโปรเจ็กต์โอเพนซอร์ส
BuildLayout Explorer สำหรับ Unity 2019.3 ขึ้นไป
และตรวจสอบbuildlayout.txt
รายงานที่สร้างโดย
Addressables ได้ด้วย
ชิ้นงานสำหรับ Chop Chop ซึ่งเป็นโปรเจ็กต์แบบเปิดของ Unity ได้รับการแพ็กเกจโดยใช้ระบบ Addressables สำหรับการโหลดและเลิกโหลดทั้งหมด ดู การจัดแพ็กเกจเนื้อหาด้วยเนื้อหาที่ระบุตำแหน่งได้ | Devlog ของโปรเจ็กต์แบบเปิด เพื่อดูคำแนะนำแบบทีละขั้นตอนเกี่ยวกับโครงสร้างและการตั้งค่าการกำหนดค่า Addressables ในแพ็กเกจ
ในโปรเจ็กต์ Chop Chop ซึ่งเป็นฉากเดียวที่โหลดโดยค่าเริ่มต้น ระบบได้กำหนดค่าฉากการเริ่มต้น
ให้ใช้ AssetReferences
แทนลิงก์โดยตรงไปยังชิ้นงาน
ในโปรเจ็กต์ (ฉาก พรีแฟบ และอื่นๆ)
ซอร์สโค้ดสำหรับ โปรเจ็กต์โอเพนซอร์สของ Unity: Chop Chop พร้อมให้บริการที่ GitHub แม้ว่าโครงการจะไม่ได้อยู่ระหว่างการพัฒนาแล้ว แต่ ที่เก็บ git และเอกสารประกอบยังคงพร้อมให้บริการ
ปลั๊กอินของบุคคลที่สาม
หากคุณใช้ปลั๊กอินของบุคคลที่สาม เช่น ปลั๊กอินใน Unity Asset Store โปรดตรวจสอบโฟลเดอร์และนำชิ้นงานที่ไม่จำเป็นออกจากโฟลเดอร์ Resources ในระหว่างกระบวนการสร้าง Unity จะรวบรวมชิ้นงานทั้งหมดที่รวมอยู่ในโฟลเดอร์ Resources และแพ็กเกจไว้ในบันเดิลเดียวที่เข้าถึงได้ในรันไทม์ ซึ่งอาจทำให้แพ็กเกจสุดท้ายมีขนาดใหญ่ขึ้น และมักจะไม่จำเป็น
หากต้องการค้นหาโฟลเดอร์ทรัพยากรทั้งหมดอย่างรวดเร็ว ให้ค้นหา Resources ในแผง Project จากนั้นคุณจะเลือกแต่ละรายการเพื่อระบุเนื้อหาและดูว่าจำเป็นสำหรับเกมหรือไม่

เผยแพร่และบำรุงรักษา
เมื่อพร้อมที่จะเปิดตัวเกมบนอุปกรณ์เคลื่อนที่แล้ว ให้ตัดสินใจว่าคุณต้องการ เปิดตัวเกมให้ใคร วิธีทำการทดสอบอัลฟ่าและเบต้า รวมถึงวิธีตรวจสอบและติดตาม ประสิทธิภาพหลังการเปิดตัว
วิเคราะห์ความคิดเห็นจากรุ่นที่จำกัดการเผยแพร่
คุณสามารถเปิดตัวต่อกลุ่มเป้าหมายแบบจำกัดและเฉพาะเจาะจง รวมถึงทำการทดสอบเบต้าในวงกว้าง หรือเปิดใช้งานเกมเพื่อให้พร้อมให้บริการอย่างเต็มรูปแบบในทุกตลาด การเปิดตัวแบบจำกัดช่วยให้คุณปรับประสิทธิภาพแอปพลิเคชันตามผู้ชมที่ใช้งานจริงและอุปกรณ์ที่หลากหลายมากขึ้นได้
ตัวอย่างเช่น คุณสามารถใช้ Android Performance Tuner สำหรับ Unity และ Google Analytics สำหรับ Unity เพื่อรับข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของแอปพลิเคชันและแนวโน้มของผู้เล่น ซึ่ง ทีมพัฒนาสามารถปรับแต่งและเผยแพร่การอัปเดตได้ นอกจากนี้ คุณยังอาจใช้ข้อมูลวิเคราะห์เพื่อวางแผนภาคต่อหรือเกมที่เกี่ยวข้องในแนวเกมที่คล้ายกันได้ด้วย
การทดสอบอัลฟ่าและเบต้า
หลังจากตั้งค่าโปรไฟล์แอปพลิเคชันใน Google Play Console แล้ว คุณจะเตรียมบิลด์ทดสอบเวอร์ชันอัลฟ่าและเบต้าแบบสาธารณะ และเผยแพร่ไปยังกลุ่มเป้าหมายแบบจำกัดเพื่อรับการตรวจสอบก่อนเปิดตัวได้ การเปิดตัวต่อกลุ่มเป้าหมายที่จำกัดจะช่วยให้คุณแก้ไขปัญหาขั้นสุดท้ายด้วยกลุ่มอุปกรณ์ที่ใหญ่ขึ้น และรวบรวมความคิดเห็นเบื้องต้นที่คุณสามารถตอบกลับได้ก่อนที่จะเผยแพร่ทั่วโลก
ระบบจะจัดจำหน่ายบิลด์ Unity ผ่าน Android App Bundle ดูข้อมูลได้ที่ คู่มือ: การส่งไปยัง Google Play จาก Unity ซึ่งอธิบายการเปลี่ยนแปลงจากไฟล์ APK เป็นรูปแบบ AAB ด้วย
ตรวจสอบและติดตาม
ในระหว่างช่วงการดำเนินงานแบบเรียลไทม์และการเผยแพร่เกม คุณสามารถใช้ Android Vitals เพื่อช่วยติดตาม ปัญหาด้านประสิทธิภาพในอุปกรณ์ที่คุณอาจไม่มีสิทธิ์เข้าถึงในระหว่าง การพัฒนาและการทดสอบ โปรดดูรายละเอียดที่วิดีโอมีอะไรใหม่สำหรับเกมใน Reach, อุปกรณ์ และ Android Vitals
โดยปกติแล้ว ทีมพัฒนาขนาดใหญ่มักมีไปป์ไลน์การวัดระยะไกลของเกมที่ไม่เหมือนใครและกำหนดเอง ซึ่งให้เมตริกที่เกี่ยวข้องกับประสิทธิภาพของอุปกรณ์ อย่าลืมใช้ประโยชน์จาก Android Performance Tuner (APT) และปลั๊กอิน Unity ที่เกี่ยวข้องเพื่อปรับแต่งเมตริกที่เกี่ยวข้องกับอัตราเฟรม ความคมชัดของกราฟิก เวลาที่ใช้ในการโหลด และการยกเลิกการโหลด ทำตามคำแนะนำทีละขั้นตอนใน การผสานรวม Android Performance Tuner เข้ากับเกม Unity
วงจรของเกมไม่ได้หยุดลงหลังจากที่คุณเผยแพร่เกม การตรวจสอบ การบำรุงรักษา และการตอบกลับประสิทธิภาพและความคิดเห็นเป็นสิ่งสำคัญ ต่อการสร้างความพึงพอใจให้ผู้ใช้ รีวิวเชิงบวก และการนำเกมของคุณไปใช้ในที่สุดในทุกตลาด