วันอังคารที่ 13 พฤษภาคม พ.ศ. 2557

[สอน C# for Unity] ตอนที่ 4 : คำสั่งที่เขียนไปทำงานตอนไหน?



ปกติในกานเขียนโปรแกรมธรรมดา จะมีลักษณะการเขียนคำสั่งเป็นชุด แล้วตั้งชื่อให้กลุ่มคำสั่งนั้น
แล้วเรียกใช้จากชื่อ ทำให้ไม่ต้องเขียนคำสั่งยาวๆซ้ำ เราเรียกลักษณะของชุดคำสั่งแบบนั้นว่า function


ใน Unity จะมีการกำหนดไว้ว่าถ้าชื่อฟังชั่นตรงกับชื่อที่อยู่ในภาพข้างล่าง
ฟังชั่นนั้นจะถูกอ่านคำสั่งข้างในตามเหตุการณ์ที่กำหนดเอาไว้ (มีเยอะ)


จากตัวอย่างใน ตอนที่ 1
จะเห็นว่าใน class จะมี ฟังชั่นสองอันชื่อว่า Start ( ) กับ Update ( )
เป็นฟังชั่นที่ Unity สร้างมาให้ ซึ่งจะลบออกก็ได้ถ้าไม่ใช้ แต่ที่เค้าทำมาให้เพราะมักจะใช้กันบ่อย
  • ถ้าเราเขียนอะไรไว้ใน Start() คำสั่งนั้นจะโดนอ่านแค่ครั้งเดียวตอนที่สคริปเริ่มทำงานครั้งเเรก
  • ถ้าเราเขียนอะไรไว้ใน Update()  คำสั่งนั้นจะถูกเรียกใช้ตลอดเวลาในทุกเฟรม


อย่างที่บอกไว้ตอนต้นว่าฟังชั่นที่เรียกใช้ตามเหตุการณ์มันมีเยอะมากเลยครับ
  • OnCollisionEnter() - ถูกเรียกตอนที่วัตถุนั้นถูกชน
  • OnMouseDown() - ถูกเรียกตอนที่วัตถุนั้นโดนคลิกบน Collider
  • FixedUpdate() - ถูกเรียกคล้ายกับ Update เเต่ความถี่คงที่ ไม่เหมือน Update ที่ขึ้นอยู่กับ fps

ฟังชั่นพวกนี้อันไหนเราไม่ใช้ก็ลบออก อันไหนต้องการก็เขียนเพิ่มเอาเองได้ ขอแค่อย่ามีชื่อเดียวกันหลายอันในสคริปเดียวก็พอ

ส่วนฟังชั่นแบบปกติที่บอกไปตอนแรกว่าเป็นชุดคำสั่งที่้เราสร้างมาใช้เองเพื่อความสะดวกก็ยังทำได้อยู่ เพียงแต่ว่าอย่าไปใช้ชื่อซ้ำกับพวกข้าง วิธีทำก็ให้พิม void ตั้งชื่อ ใส่วงเล็บเปิดปิด แล้วใส่ปีกกา จะเขียนอะไรก็เอาไว้ข้างในนั้น

วิธีเรียกใช้ฟังชั่น แค่พิมชื่อ วงเล็บเปิดปิด เซมิโคลอน ก็เรียบร้อย