如何自定義消息?
如果想自定義消息,是比較簡(jiǎn)單的。在UnityEngine.EventSystems中有個(gè)名為‘IEventSystemHandler’的接口。從這接口的功能是通過消息傳遞系統(tǒng)接收事件的目標(biāo)。我們來(lái)用一個(gè)彈跳案例來(lái)說(shuō)明這個(gè)功能。
首先是定義接口
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public interface ICustomMessageTarget : IEventSystemHandler {
void Jump();
// void Message2();
}
一旦接口被定義了,就可以通過MonoBehaviour來(lái)使用這個(gè)接口。在這個(gè)例子中,當(dāng)摁下鼠標(biāo)左鍵時(shí),會(huì)發(fā)送對(duì)應(yīng)的消息。定義的功能將被執(zhí)行。
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class NewBehaviour : MonoBehaviour {
public GameObject mubiao;
// Use this for initialization
public void Update () {
if(Input.GetMouseButtonDown(0)){
ExecuteEvents.Execute(mubiao, null, MyEventF);
}
}
public void MyEventF(ICustomMessageTarget handler, baseEventData eventData){
handler.Jump ();
}
}
消息發(fā)出后,需要一個(gè)目標(biāo)也就是Cube來(lái)接收這個(gè)消息,當(dāng)接收到消息之后,會(huì)執(zhí)行跳躍的命令。
using UnityEngine;
using System.Collections;
//using UnityEngine.EventSystems;
public class CustomMessageTarget : MonoBehaviour,ICustomMessageTarget {
Rigidbody myRig;
void Start(){
myRig = this.GetComponent();
}
public void Jump(){
myRig.velocity = Vector3.up*6;
}
}
實(shí)例下載鏈接:http://pan.baidu.com/s/1hrxF9Ec 密碼:kwd1
更多AR/VR資訊請(qǐng)關(guān)注微信:arinchina 網(wǎng)站:arinchina.com