สร้างเกม - Instantiate (Unity3D Thailand)
สอน Unity3D การสร้าง object ด้วยคำสั่ง และกำหนด texture ด้วยคำสั่ง - บทความนี้มาดูวิธีการสร้าง Object ด้วยคำสั่งนะครับ และกำหนด texture ด้วยคำสั่ง สำหรับบทความนี้ก็เริ่มจะใช้คำสั่งกันแล้ว เป็นคำสั่งง่ายๆครับลองดูกันเลย มีทั้งวิดีโอและโค้ดตัวอย่างครับ กับ Unity3D Thailand (Thai Unity)
*** ถ้า Video ไม่ขึ้นตามไปที่ลิ่งได้เลยครับ http://youtu.be/-frbEJcPwRY
จากรูปตัวอย่างโค้ดด้านบน เป็นตัวอย่างคำสั่งการสร้าง Object , การตั้งชื่อ Object และการกำหนด Texture คร้าวๆนะครับ คำสั่งที่ใช้สร้างคือ Instantiate นั้นเอง โดยใส่ Object ที่เราจะสร้าง พร้อมใส่ตำแหน่งที่จะให้ไปอยู่นั้นเอง ลองมาดูโค้ดกันที่ละบรรทัดกันเลยนะครับ
*** ถ้า Video ไม่ขึ้นตามไปที่ลิ่งได้เลยครับ http://youtu.be/-frbEJcPwRY
จากรูปตัวอย่างโค้ดด้านบน เป็นตัวอย่างคำสั่งการสร้าง Object , การตั้งชื่อ Object และการกำหนด Texture คร้าวๆนะครับ คำสั่งที่ใช้สร้างคือ Instantiate นั้นเอง โดยใส่ Object ที่เราจะสร้าง พร้อมใส่ตำแหน่งที่จะให้ไปอยู่นั้นเอง ลองมาดูโค้ดกันที่ละบรรทัดกันเลยนะครับ
- public GameObject helloObj; คือ การประกาศตัวแปร เป็นชนิด GameObject เป็นแบบ public โดยให้ชื่อว่า helloObj ซึ้งการประกาศเป็น public นั้นจะทำให้ helloObj สามารถกำหนดค่าโดยการลาก Object ต่างๆเข้ามาใส่ในตัวแปรนี้ได้ ในส่วนของ Unity (ไม่เข้าใจให้ดูที่วิดีโอครับ)
- public Texture2D pic; คือ การประกาศตัวแปร เป็นชนิด Texture2D เป็นแบบ public โดยให้ชื่อว่า picซึ้งการประกาศเป็น public นั้นจะทำให้ pic สามารถกำหนดค่าโดยการลาก ไฟล์รูปภาพต่างๆเข้ามาใส่ในตัวแปรนี้ได้ ในส่วนของ Unity
ต่อมาภายในส่วนของฟังชั่น Start() มีอยู่ 3 บรรทัดนะครับ ลองมาดูกันทีละบรรทัดเลยครับ
- บรรทัดแรกนะครับ ประกาศตัวแปรชนิด GameObject ชื่อว่า obj หลังจากนั้นให้เท่ากับครับ คำสั่งต่อมาคือ Instantiate(?????) เป็นคำสั่งที่ใช้สร้าง Object ต่างๆครับ จะสร้างอะไรล่ะ มาดูในวงเล็บกันเลย อันแรก helloObj ก็คือ Object หรือวัตถุที่เราจะสร้างและได้ยัด Object เข้าไปไว้แล้ว (ไม่เข้าใจให้ไปดูวิดีโอครับ) อันที่สอง helloObj.tranform.position ก็คือการกดหนดตำแหน่งที่จะสร้างให้กับ helloObj ว่าจะวางไว้ตรงตำแหน่งไหน helloObj.tranform.rotation ก็คือการกำหนดมุมมองให้กับ helloObj นั้นเองครับ โดยทุกอย่างถูกโยนไปเก็บไว้ที่ตัวแปรที่ชื่อ obj ไว้หมดแล้ว
- บรรทัดที่สอง ต่อมาเป็นการกำหนดชื่อให้กับ obj โดยใช้ obj.name = "ชื่อที่ต้องการ" ;
- บรรทัดที่สาม สุดท้ายเป็นคำสั่งกำหนด Texture ให้กับ Object นั้นๆ โดยใช้ obj.renderer.material.mainTexture = pic ; ซึ้ง pic ก็คือตัวแปรที่เราได้ยัดไฟล์รูปภาพให้กับมันไปแล้ว (ไม่เข้าใจดูวิดีโอครับ)
ก็ทั้งหมดทั้งมวลข้างบนก็เป็นวิธีการใช้คำสั่งที่ใช้กันบ่อยในการที่เราจะทำเกมส์หรือสร้างเกมส์ใน Unity นะครับ ซึ่งก็สามารถไปประยุกต์ใช้ได้อีกต่อไป ก็หวังว่าข้อมูลนี้จะมีประโยชน์กับเพื่อนๆนะครับ เจอกันบทความต่อไปครับ ^_^
สามารถอ่านบทความที่เกี่ยวข้องของเราที่นี่ >> รวมลิ้งค์บทความ สร้างเกมด้วย Unity
สามารถอ่านบทความที่เกี่ยวข้องของเราที่นี่ >> รวมลิ้งค์บทความ สร้างเกมด้วย Unity
ดีคับ
ตอบลบเอาอีกเยอะๆเลย
ตอบลบขออนุญาติเพิ่มเติมเล็กน้อยครับ Unity V.5.0 เปลี่ยนคำสั่งนิดหน่อยครับ
ตอบลบจาก
obj.renderer.material.mainTexture = pic
มาเป็น
obj.GetComponent().material.mainTexture = pic;
V.5.3 เปลี่ยนเป็น
ตอบลบobj.GetComponent().material.mainTexture = pic;
งงครับ ผมลองใช้ คำสั่ง obj.GetComponent() แต่มันไม่มี .material ให้ ไม่ทราบว่าผิดตรงไหนหรอครับ ขอบคุณครับ
ตอบลบติดเหมือนกันครับ
ลบV.5.5 เปลี่ยนเป็น
ตอบลบobj.GetComponent().material.mainTexture = pic;