如何自定义消息?
如果想自定义消息,是比较简单的。在UnityEngine.EventSystems中有个名为‘IEventSystemHandler’的接口。从这接口的功能是通过消息传递系统接收事件的目标。我们来用一个弹跳案例来说明这个功能。
首先是定义接口
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public interface ICustomMessageTarget : IEventSystemHandler {
void Jump();
// void Message2();
}
一旦接口被定义了,就可以通过MonoBehaviour来使用这个接口。在这个例子中,当摁下鼠标左键时,会发送对应的消息。定义的功能将被执行。
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 ();
}
}
消息发出后,需要一个目标也就是Cube来接收这个消息,当接收到消息之后,会执行跳跃的命令。
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;
}
}
实例下载链接:http://pan.baidu.com/s/1hrxF9Ec 密码:kwd1
更多AR/VR资讯请关注微信:arinchina 网站:arinchina.com