การแก้ไข Prefab หลายๆ ตัวพร้อมกัน by

30
Jun
0

Prefab ใน Unity แล้วมันคือการสร้างวัตถุต้นแบบขึ้นมาหนึ่งชิ้นแล้วทำให้เราสามารถ clone วัตถุต้นแบบชิ้นนั้นออกมาหลายๆ อันได้ ทำให้สามารถทำงานได้สะดวกขึ้น ซึ่งจะคล้ายๆ Symbol ของ Flash แต่ว่ามันก็มีปัญหาที่ยุ่งยากคาใจอยู่อย่างคือ หากต้องมีการแก้ไขวัตถุต้นฉบับขึ้นมาแล้วเราคาดหวังว่า วัตถุที่ Clone ไปนั้นจะถูกแก้ไขตามด้วยนั้นก็ต้องพบกับความผิดหวังเมื่อมันไม่ยอมแก้ไขให้ – -” ด้วยเหตุนี้เลยมีคนทำ Plugin ขึ้นมาตัวนึงชื่อว่า Prefab Evolution เข้ามาแก้ปัญหาตรงจุดนี้ได้ โหลดได้ตาม link ด้านล่าง

https://www.assetstore.unity3d.com/en/#!/content/17557 ($50)
หรือใช้ตัวทดลองใช้ฟรีได้ที่

https://www.dropbox.com/s/vegygvjb60v2m33/PrefabEvolution_Trial.unitypackage

(เป็น Demo ที่จำกัดความสามารถที่ 1000 asset ต่อ 1 project)

โหลดแล้วก็ลองกันเลย

prefab1

 

 

 

 

1. ผมลองสร้าง GameObject ชื่อ ContainerPrefab มาใส่รูปเข้าไปสองชิ้น จากนั้นให้ drag ContainerPrefab ลงไปที่ Project เพื่อสร้าง Prefab

prefab2

 

2. จะได้ prefab ดังรูป จากนั้นคลิกที่ ContainerPrefab ใน Hierachy ตามรูปข้อหนึ่ง

prefab3

 

3. ดูที่ Inspector คลิก Allow this prefab to be nested

prefab4

 

4. ทีนี้ลาก Prefab ลงไปที่ Scene อีกตัวตั้งชื่อเป็น ContainerPrefab2 สังเกตเห็นว่าจะมี Cubic สีเขียวโผล่มา แสดงว่า Plugin เริ่มทำงานได้ถูกต้องแล้ว

prefab5

 

5. ทดสอบย่อรูปใน PrefabContainer ลงตามรูป

prefab6

 

6. Apply to prefab ที่ inspector

prefab7

 

7. รูปที่ prefabContainer2 ก็จะหดตามอัตโนมัติโดยไม่ต้องทำอะไรเพิ่ม

เพิ่มเติมว่า Plugin ตัวนี้ทำงานได้ค่อนข้างครอบคลุม แม้แต่การสร้าง Prefab ซ้อน Prefab (Nested Prefab) แล้วแก้ prefab ที่ไส้ในก็ยังสามารถทำงานได้ถูกต้องอยู่ จึงเป็น Plugin ที่น่าสนใจมากตัวนึง ข้อเสียมีแค่ข้อเดียวคือใช้กับ Project ที่สร้างทุกอย่างเสร็จแล้วไม่ได้ เพราะต้องสร้าง prefab หลังจาก “Allow this prefab to be nested” เท่านั้นจึงจะสามารถแก้ไขแล้ว apply ไปโดนตัวอื่นๆ ได้