สร้างโลกของคุณเอง
การเขียนสคริปต์

ฟังก์ชันของเหตุการณ์

8min

ฟังก์ชันเหตุการณ์เป็นฟังก์ชันพิเศษที่ถูกเรียกโดยอัตโนมัติในระหว่างวงจรชีวิตของ GameObject หรือส่วนประกอบในเอนจิน Unity ดังนั้นจึงเรียกว่าฟังก์ชันเหตุการณ์วงจรชีวิตด้วย

ฟังก์ชันเหตุการณ์จะถูกเรียกโดยอัตโนมัติโดยเอนจิน Unity ในช่วงเวลาที่กำหนด

ฟังก์ชันเหตุการณ์เป็นฟังก์ชันพิเศษที่ถูกเรียกโดยอัตโนมัติในระหว่างวงจรชีวิตของ GameObject หรือส่วนประกอบในเอนจิน Unity ดังนั้นจึงเรียกว่าฟังก์ชันเหตุการณ์วงจรชีวิตด้วย

แผนภาพการไหลของวงจรชีวิตสคริปต์ ZEPETO
แผนภาพการไหลของวงจรชีวิตสคริปต์ ZEPETO




เหตุการณ์การเริ่มต้น

  • คุณสามารถใช้เหตุการณ์การเริ่มต้นเพื่อเรียกใช้โค้ดการเริ่มต้นก่อนการอัปเดต
  • ฟังก์ชัน Start จะถูกเรียกก่อนการอัปเดตฟิสิกส์ใด ๆ และก่อนเฟรมแรก ในขณะที่ฟังก์ชัน Awake จะถูกเรียกสำหรับแต่ละวัตถุในฉากเมื่อเรียกฉากขึ้น
  • ฟังก์ชัน Start และ Awake สำหรับวัตถุต่าง ๆ จะถูกเรียกในลำดับแบบสุ่ม แต่การเรียกทั้งหมดของ Awake จะเสร็จก่อนที่ Start จะถูกเรียก
  • นี่หมายความว่าฟังก์ชัน Start สามารถใช้การเริ่มต้นอื่น ๆ ที่ดำเนินการก่อนหน้านี้ในฟังก์ชัน Awake



เหตุการณ์อัปเดตปกติ

  • การอัปเดตปกติหมายถึงการอัปเดตทั้งหมดที่เรียกทุกเฟรม。
  • พวกเขาเปลี่ยนตำแหน่ง สถานะ และพฤติกรรมของวัตถุก่อนที่แต่ละเฟรมจะถูกเรนเดอร์.
  • ZEPETOScript ให้แนวทางในการประมวลผลการคำนวณในฟังก์ชัน Update.

เหตุการณ์ฟิสิกส์

  • เหตุการณ์ฟิสิกส์เรียกฟังก์ชันเหตุการณ์ผ่านสคริปต์ที่เพิ่มใน GameObject.
  • ฟังก์ชัน OnCollisionEnter, OnCollisionStay และ OnCollisionExit จะถูกเรียกเมื่อมีการสัมผัส เก็บ และทำลาย.
  • ฟังก์ชัน OnTriggerEnter, OnTriggerStay และ OnTriggerExit จะถูกเรียกเมื่อคอลลิเดอร์ของวัตถุถูกกำหนดเป็นทริกเกอร์ (เช่น คอลลิเดอร์ที่ไม่ตอบสนองทางกายภาพต่อการชน แต่เพียงแค่ตรวจจับเท่านั้น).
  • ฟังก์ชันดังกล่าวอาจถูกเรียกหลายครั้งติดต่อกันหากมีการตรวจจับการสัมผัสหลายครั้งในระหว่างการอัปเดตฟิสิกส์ และดังนั้นพารามิเตอร์จะถูกส่งไปยังฟังก์ชันที่ให้รายละเอียดเกี่ยวกับการชน (ตำแหน่ง ตัวตนของวัตถุ).

เหตุการณ์ GUI

  • ZEPETOScript รองรับเหตุการณ์ที่เรนเดอร์การควบคุม GUI และตอบสนองต่อการคลิกจากองค์ประกอบต่างๆ พวกเขาทำงานแตกต่างจากการอัปเดตเฟรมปกติ ดังนั้นตรรกะที่เกี่ยวข้องกับ UI ควรอยู่ในฟังก์ชัน OnGUI.

เหตุการณ์เมาส์

  • ใน ZEPETOScript รองรับเหตุการณ์ที่ตอบสนองต่อการโต้ตอบด้วยเมาส์
  • อย่างไรก็ตาม เหตุการณ์เมาส์ต้องการ Collider หรือ Collider2D ที่มีอยู่ใน GameObject ที่เกี่ยวข้อง และจะถูกเรียกใช้เมื่อ Collider นั้นถูกคลิกด้วยเมาส์
  • OnMouseDown() จะถูกเรียกเมื่อผู้ใช้คลิกปุ่มเมาส์
  • OnMouseUp() จะถูกเรียกเมื่อผู้ใช้ปล่อยปุ่มเมาส์
  • OnMouseOver() จะถูกเรียกทุกเฟรมในขณะที่เคอร์เซอร์เมาส์อยู่เหนือ Collider หรือ Collider2D ของ GameObject



เหตุการณ์การสิ้นสุด

  • เหตุการณ์การสิ้นสุดจะถูกเรียกในวัตถุที่เปิดใช้งานทั้งหมดในฉาก
  • ฟังก์ชัน OnDisable จะถูกเรียกเมื่อวัตถุที่กำหนดถูกปิดใช้งานหรือไม่ทำงาน และ OnApplicationQuit จะถูกเรียกใน GameObjects ทั้งหมดก่อนที่แอปพลิเคชันจะปิด

📘 ฟังก์ชันเหตุการณ์ของ Unity https://docs.unity3d.com/kr/current/Manual/EventFunctions.html



ฟังก์ชันเหตุการณ์ทั้งหมดที่รองรับโดย ZEPETOScript จะถูกระบุไว้ในตัวอย่างโค้ดด้านล่าง

Sample_MonoBehaviourLifeCycle




ตรวจสอบหน้าจอผลลัพธ์ของโค้ดทดสอบด้านล่าง.

Document image


คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันเหตุการณ์ของ ZEPETOScript ได้โดยการคลิกที่ลิงก์ด้านล่างนี้.

📘 ลำดับการดำเนินการสำหรับฟังก์ชันเหตุการณ์ https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html



อัปเดต 11 Oct 2024
Doc contributor
หน้านี้ช่วยคุณได้หรือไม่?