วันพุธที่ 2 กันยายน พ.ศ. 2558

[Unity 2D] สร้างเกมง่ายๆ Tappy Plane ตอนที่ 10 : พื้นและเพดาน

สร้างพื้น

การสร้างพื้นทำในลักษณะเดียวกับการสร้างฉากพื้นหลัง

สร้างเกมออบเจ็คขึ้นมาใหม่ในที่นี้ตั้งชื่อว่า Ground เพิ่ม Component Sprite Renderer ใส่ภาพ groundDirt ปรับScale X และ Scale Y เป็น 2
เนื่องจากพื้นมีรูปร่างที่ค่อนข้างอิสระ เราจึงทำการเพิ่ม PolygonCollider2D แทน โดยไปที่ Add Component -> Physics2D -> PolygonCollider2D
จะเห็นว่า PolygonCollider2D จะทำการสร้าง Collider ตามลักษณะรูปร่างของ Sprite ดังรูป
แต่ในกรณีนี้เราจะทำการเพิ่ม BoxCollider2D ไปด้วย เนื่องจากเราต้องการเช็คความกว้างของพื้น (ใน Script Looper) แต่เราจะปรับความสูงของ BoxCollider2D ไม่ให้เกินรูปภาพเผื่อที่เครื่องบินจะได้ไม่ชน โดยการปรับค่า ดังนี้
Offset Y เป็น 0
Offset Y เป็น -0.3
Size X เป็น 8.08
Size Y เป็น 0.15
หน้าต่าง Inspector จะได้ผลลัพธ์ดังนี้
ทำการเพิ่ม Tag Ground หลังจากนั้นเพิ่ม Tag Ground ที่สร้างให้กับเกมออบเจ็คพื้นนี้ด้วย

ที่ตำแหน่ง Y ให้เซ็ทเป็น -4.3 และตำแหน่ง Z เป็น -2
จะได้ผลลัพธ์ดังต่อไปนี้
หลังจากนั้นสร้างเกมออบเจ็คให้เป็น Prefeb

ลาก Prefab Ground เข้ามาเพิ่มใน Hierarchy2 อัน ในที่นี้จะตั้งชื่อใหม่ ให้เป็น Ground1 Ground2 และ Ground3 โดยจะให้เป็นพื้นทางด้านซ้าย กลาง และขวาตามลำดับ

การคำนวณตำแหน่งทำได้ดังนี้ Size X * Scale จะได้ 8.08 * 2 เท่ากับ 16.16
ตำแหน่ง X ของพื้นจะได้ -16.16 0 และ 16.16 เรียงจากซ้ายไปขวาตามลำดับ จะได้ผลดังภาพ

สร้างเพดาน

เลือก Ground1 Ground2 และ Ground3 จากนั้นกด Ctrl + D เพื่อก๊อปปี้ทั้ง 3 เกมออบเจ็ค เปลี่ยนชื่อใหม่เป็น Top1 Top2 และ  Top3 ตามลำดับ

จากนั้นให้ทำการเปลี่ยนตำแหน่ง Y เป็น 4.3 และที่ Rotation Z เป็น 180 เนื่องจากเราจะทำการหมุนให้ภาพกลับหัวมาอีกด้าน ดังรูป
ก๊อปปี้ BGLooper ตั้งชื่อใหม่ให้เป็น GroundLooper ที่ Script Looper ให้เปลี่ยน Tag Name เป็น Ground
ลองรันเกมดูจะเห็นว่าตอนนี้ทั้งฉากหลังพื้นและเพดานเป็นแบบ  Infinity แล้ว


ไม่มีความคิดเห็น:

แสดงความคิดเห็น