วันศุกร์ที่ 9 พฤษภาคม พ.ศ. 2557

[สอน C# for Unity] ตอนที่ 3 : สิ่งสำคัญสิ่งสุดท้าย if... else....



เอาละครับ ก่อนจะมาลงมือเขียนสคริปให้เกมของเรา ยังมีอีกอย่างนึงที่จำเป็นมากในการเขียนเกม
นั่นคือเงื่อนไข หรืออาจจะเรียกว่ากฎก็ได้ ว่าถ้าสิ่งไหนเกิดขึ้นเเล้วจะมีอะไรเกิดขึ้นตามมา


  • ถ้าโดนยิง -> ตาย จบเกม
  • ถ้าคลิกโดนและเวลายังไม่หมด -> ได้คะแนน
  • ถ้ากดปุ่ม spacebar -> กระโดด




ในโค้ด C# เราจะใช้คำว่า if เพื่อเปิดประโยคเงื่อนไข ตามด้วยวงเล็บ ( ) ที่มีเงื่อนไขอยู่ข้างในแล้วใส่สิ่งที่ต้องการให้เกิดขึ้นในปีกกา { } ที่อยู่ข้างหลังหรือข้างใต้เงื่อนไข 
(การเว้นวรรคกับเว้นบรรทัดมีค่าเหมือนกัน)

ในบางครั้งที่คำสั่งตามท้ายเงื่อนไขมีแค่คำสั่งเดียว เราสามารถไม่ใส่ปีกกาได้ แต่เมื่อไหร่ที่มีสองคำสั่งจะทำให้เกิดการรันโค้ดที่ผิดหากไม่ใส่ปีกกา นำไปสู่ "BUG" อันเป็นที่เกรงกลัวของเหล่าโปรแกรมเมอร์ทั้งหลาย ~ ~

เงื่อนไข
  • เงื่อนไขจะมีลักษณะข้อความที่บอกได้ว่าเป็นจริงหรือเปล่า true หรือ false
  • อาจจะเป็นตัวแปร bool หรือเป็นสมการ ที่สองข้างเชื่อมด้วยเครื่องหมาย == , < , <= , > , >= เหมือนกับวิชาเลข
ถ้าอยากจะใส่หลายๆเงื่อนไขในวงเล็บเดียว จะต้องใช้สัญลักษณ์
[และ && ] , [ หรือ || ] , [ วงเล็บ () ] มาช่วย แบบเดียวกับตรรกศาสตร์
( รื้อฟื้นความหลังสำหรับบางท่าน 55+ )



ตัวอย่างค่าที่นำมาเช็ค
  • เช็คตำแหน่งได้จากค่า transform.position ว่ามากว่าเท่าไหร่ น้อยกว่าไหนก็ว่ากันไป
  • เช็คการกดปุ่มได้จาก Input.GetKey(KeyCode) ถ้ากดเเล้วจะเป็น true
  • เช็คชื่อวัตถุจากค่า gameObject.name



สิ่งที่เกิดขึ้นหลังจากเช็คเงื่อนไข
  • คำถามถูกผิดก็ต้องมีทั้งคำตอบว่าถูกและคำตอบว่าผิด
  • เวลาที่มันถูก คอมจะไปอ่านคำสั่งในปีกกาใต้ if
  • แต่ถ้าผิด คอมจะไปอ่านคำสั่งในปีกกา else แทน
  • คำสั่งที่อยู่ข้างในจะเป็นคำสั่งแบบไหนก็ได้ 
    • อาจจะเป็นเอาตัวแปรมาบวกกัน
    • อาจจะสั่งให้เคลื่อนที่
    • อาจจะสั่งให้หมุน
    • อาจจะสั่งให้เปลี่ยนสี

จากข้างบนนี้จะเป็นตัวอย่างวิธีการ ดึงค่าตำเเหน่งมาเปรียบเทียบค่า และ เช็คการกดปุ่ม เพื่อใช้ในการควบคุมวัตถุแบบง่ายๆ แบบตัวอย่าง web player ใน ลิ้งด้านล่าวนี้ โหลดโปรเจค Unity คลิก
ให้เห็นกันไปเลยว่ามีโค้ดแค่นี้จริงๆนะ มะได้โม้ว