เช่น w a s d เพื่อเดิน spacebar เพื่อกระโดด แต่สำหรับบางเกมเราต้องคอยเชคว่าผู้เล่นกดปุ่มไหนเพื่อนำไปเชคว่าผู้เล่นกดถูกปุ่มหรือเปล่า เช่นเกมแนวกดตาม เกมพิมดีด เกมเต้น
ที่นี้ตามปกติในเกมประเภทแรกเราจะใช้ Input.GetKey("a") ในการเชคว่าเอ้ะมีการกดปุ่ม A ในเฟรมนี้มั้ยส่วนในเกมประเภทหลังที่พูดถึงถ้าจะทำแบบเดียวกันจะต้องไล่เชคปุ่มบนคีบอร์ดที่มีเป็นร้อยปุ่ม(มั้ง) เปลืองทั้งเวลาและทรัพยากรณ์ CPU เพราะฉะนั้นปกติเราจะใช้ Event ในการเชคกันครับ
ขั้นแรกให้ประกาศ Event ขึ้นมา ที่นี้ให้ชื่อว่า e ครับ
แล้วสั่งให้ตัวแปรนี้รับค่า current event(Input ปัจจุบัน)
Event e = Event.current;จากนั้นให้เชคว่ามีปุ่มที่กดไหม ถ้ามีก็ให้พิมออกมาว่าปุ่มไหน
if (e.isKey) Debug.Log("Detected character: " + e.character);รวมเป็นโค้ดที่แสดงผลว่ากดปุ่มอะไรไป
public class ExampleClass : MonoBehaviour { void Update() { Event e = Event.current; if (e.isKey) Debug.Log("CharacterTyped : " + e.character); } }ต่อไปลองเปลี่ยนเป็นการเชคดูบ้าง นำ e.character มาเทียบกับ 'a' พอเสร็จจะได้โค้ดหน้าตาตามนี้
public class ExampleClass : MonoBehaviour { void Update() { Event e = Event.current; if (e.isKey) if(e.character.ToString() == 'a') Debug.Log("a is pressed"); } }สำหรับตัว Event นอกจากจะเชคค่าตัวอักษรที่พิมเข้ามา ยังสามารถเชตอย่างอื่นได้อีกเพียบดูได้จากลิ้งด้นล่างนี้ครับ
อ้างอิง
docs.unity3d.com/460/Documentation/ScriptReference/Event.html
docs.unity3d.com/460/Documentation/ScriptReference/Event-character.html