Basic 3D Game with SceneKit
SceneKit
เป็น Framework ที่เข้ามาช่วยสร้างเกม 3D ให้ง่ายขึ้นทั้งเรื่องของ Animation, Physics, Particle and Realistic physically พูดง่าย ๆ คือ SceneKit เปรียบเสมือน Game engine ที่ช่วยให้เราพัฒนาเกมได้เร็วและสะดวกมากขึ้น
การที่เราจะสร้างเกมเพื่อแสดงผลบน SceneKitView นั้นก็เป็นเหมือนกับ View ทั่ว ๆ ไป ซึ่งเราก็สามารถลาก View อื่น ๆ เข้ามาใส่ได้ไม่ว่าจะเป็น ButtonView, LabelView และอื่น ๆ ดังตัวอย่าง
อีกอย่างที่สำคัญคือเกมของเราจะแสดงผลบน SceneKitView ได้ก็ต่อเมื่อใช้ Scene หรือฉากของเกมเข้ามาช่วย ซึ่งเจ้า Scene หรือ .scn นี่ละที่จะใช้จัดการกับ 3D Object ต่าง ๆ ดังนั้นเราต้องสร้าง Scene ขึ้นมาก่อน
จากนั้นลองสร้าง Box เปล่า ๆ ขึ้นมา
จะเห็นได้ว่าเป็นกล่องขาว ๆ ธรรมดาเราสามารถหา Texture 2D เข้ามาใส่ให้สวย ๆ ได้และทำการ Set เข้าไปที่ Material ได้ดังนี้
เทคนิคการใช้ Scene
ถ้าใช้ Hold click mouse และลากซ้ายขวาหรือบนล่างมันจะหมุนไปรอบ ๆ ตัวเอง แต่ถ้า Scroll up/down มันจะเป็นการเลื่อนขึ้นลง แต่ถ้าเราอยาก Zoom in/out ให้ทำการกดปุ่ม Option และ Scroll up/down
** การแสดงผลต่าง ๆ บนหน้าจอขึ้นอยู่กับ Camera ดังนั้นถ้าเราฉาย Camera ไปทางไหนมันก็จะเห็นทางนั้น นั่นหมายความว่าไม่ว่า 3D Object จะอยู่ส่วนไหนของ Scene แต่ถ้า Camera ไม่ได้ฉายไปทางนั้นมันก็จะไม่เห็น
ดังนั้นเราควร Set camera position ให้อยู่ตำแหน่ง 0,0,0 ก่อน
และก็วาง 3D Object ถัดเข้าไปจะได้เห็นได้ชัดเจน
จากนั้นทำให้ Set scene ให้กับ SceneKitView
sceneView.scene = SCNScene(named: “FirstScene.scn”)!
และเลือก Allow camera control เราก็จะสามารถเลื่อน 3D Object ของเราได้บนมือถือแล้ว
ผลลัพธ์