สร้างโลกของคุณเอง
การเขียนสคริปต์
UnityEvent
4นาที
unity มอบ unityevents เพื่อทำให้ผู้ใช้สามารถใช้เหตุการณ์และตัวแทน c# ได้ง่ายขึ้น unityevents เป็นวิธีการส่งอาร์กิวเมนต์จากวัตถุที่แตกต่างกันหรือส่งข้อความเมื่อมีการตอบสนองบางอย่างที่ตรงตามข้อกำหนด ในการใช้ unityevent ใน zepetoscript คุณต้องประกาศในรูปแบบดังต่อไปนี้ ก่อนอื่นให้เพิ่มคำสั่งนำเข้าเหมือนที่แสดงด้านล่างเพื่อใช้คลาส unityevent typescript import { unityevent } from 'unityengine events'; ดูตัวอย่างโค้ดการเชื่อมต่อสำหรับ unityevent event import { zepetoscriptbehaviour } from 'zepeto script'; import { unityevent } from 'unityengine events'; import { button } from 'unityengine ui'; export default class event extends zepetoscriptbehaviour { public btn button; private mevent unityevent; start() { // สร้างอินสแตนซ์ใหม่ของ unityevent และกำหนดให้กับ mevent this mevent = new unityevent(); // เพิ่มผู้ฟังใหม่ให้กับ mevent ผู้ฟังนี้จะเรียกใช้เมธอด ping เมื่อ mevent ถูกเรียก this mevent addlistener(() => this ping()); // ตรวจสอบว่ามีการคลิกปุ่มและ mevent ไม่เป็น null this btn onclick addlistener(() => { if (this mevent != null) { // หากเงื่อนไขข้างต้นเป็นจริง จะเรียกใช้ mevent this mevent invoke(); } }); } ping() { console log('ping'); } } คำอธิบายสคริปต์ ในตัวอย่างข้างต้น unityevent ที่ชื่อว่า ‘mevent’ จะถูกเรียกใช้ทุกครั้งที่มีการกดปุ่ม และจะเรียกใช้เมธอด ‘ping’ เมื่อ ‘mevent’ ถูกเรียก ดังนั้นทุกครั้งที่มีการกดปุ่ม ข้อความ 'ping' จะถูกพิมพ์ลงในคอนโซล หากเหตุการณ์ที่คุณกำลังจะเชื่อมต่อมีพารามิเตอร์ คุณต้องเพิ่มคำสั่งนำเข้า unityevent ตามที่แสดงด้านล่าง typescript import { unityevent$1 } from 'unityengine events'; 👍 เคล็ดลับ unityevent$1 เป็นเวอร์ชันทั่วไปของ unityevent ตัวอย่างเช่น หากคุณต้องการสร้างเหตุการณ์ที่รับค่าจำนวนเต็ม คุณสามารถใช้ unityevent$1\<int> โปรดทราบว่าประเภทพารามิเตอร์ของ unityevent$1 จะต้องเป็นไปตาม c# ตัวอย่างโค้ดเมื่อใช้ unityevent$1 กับพารามิเตอร์มีดังนี้ event import { zepetoscriptbehaviour } from 'zepeto script'; import { unityevent$1 } from 'unityengine events'; import { input } from 'unityengine'; export default class event extends zepetoscriptbehaviour { private meventint unityevent$1\<int>; private countnum number; start() { this meventint = new unityevent$1\<int>(); this meventint addlistener(num => this count(num)); this countnum = 0; } update() { if ((input anykeydown) && (this meventint != null)) { this meventint invoke(this countnum); ++this countnum; if (this countnum > 100) { this countnum = 0; } } } count(num) { console log(`count ${num}`); } } คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ unityevents ได้โดยการคลิกที่ลิงก์ด้านล่าง 📘 unityevents https //docs unity3d com/kr/530/scriptreference/events unityevent html https //docs unity3d com/kr/530/scriptreference/events unityevent html