纳金网
标题:
物体与物体之间的消息传递(二)
[打印本页]
作者:
刀锋狼
时间:
2014-4-30 03:28
标题:
物体与物体之间的消息传递(二)
除了上一节所说的方式外,物体之间的消息传体还可以用事件委托的方式。
三个物体AA,BB,CC
AA上挂了一个委托事件的脚本
using UnityEngine;
using System.Collections;
public class DelegetEvent : MonoBehaviour {
public delegate void EventHandler(GameObject obj); //委托
public event EventHandler MouseOver; //事件
void OnMouseOver() { //鼠标离开触发
if (MouseOver != null) {
MouseOver(this.gameObject);
}
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
复制代码
BB和CC都挂上事件监听的脚本
using UnityEngine;
using System.Collections;
public class ListenEvent : MonoBehaviour {
// Use this for initialization
void Start () {
//GameObject.Find("CubeSource") 是找到某一个名字为CubeSource的物体
GameObject obj = GameObject.Find("CubeSource");
//obj.GetComponent<DelegetEvent>() 找到CubeSource物体上的脚本DelegetEvent
DelegetEvent de = obj.GetComponent<DelegetEvent>();
de.MouseOver += de_MouseOver;
}
void de_MouseOver(GameObject obj)
{
this.transform.Rotate(new Vector3(0,1,0)); //物体旋转
Debug.Log(obj.name);
}
void Update () {
}
}
复制代码
点击运行后,只要鼠标离开AA物体,BB和CC物体都会旋转了。移到AA物体上,BB和CC就停止旋转了。这个就是事件的委托和监听,他可以作为一个物体交互多个物体的方式
作者:
hyui
时间:
2014-4-30 03:55
Thank you for sharing! ) ) )
欢迎光临 纳金网 (http://rs.narkii.com/club/)
Powered by Discuz! X2.5