查看: 978|回复: 2
打印 上一主题 下一主题

[其他] 物体与物体之间的消息传递(二)

[复制链接]

711

主题

10

听众

5805

积分

高级设计师

Rank: 6Rank: 6

纳金币
2954
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-4-30 03:28:44 |只看该作者 |倒序浏览
除了上一节所说的方式外,物体之间的消息传体还可以用事件委托的方式。
三个物体AA,BB,CC
AA上挂了一个委托事件的脚本
  1. using UnityEngine;
  2. using System.Collections;

  3. public class DelegetEvent : MonoBehaviour {

  4.     public delegate void EventHandler(GameObject obj); //委托
  5.     public event EventHandler MouseOver; //事件
  6.      
  7.     void OnMouseOver() { //鼠标离开触发
  8.         if (MouseOver != null) {
  9.             MouseOver(this.gameObject);
  10.         }
  11.     }

  12.     // Use this for initialization
  13.     void Start () {
  14.     }
  15.     // Update is called once per frame
  16.     void Update () {
  17.      
  18.     }
  19. }
复制代码
BB和CC都挂上事件监听的脚本
  1. using UnityEngine;
  2. using System.Collections;

  3. public class ListenEvent : MonoBehaviour {


  4.     // Use this for initialization
  5.     void Start () {
  6.         //GameObject.Find("CubeSource") 是找到某一个名字为CubeSource的物体
  7.         GameObject obj = GameObject.Find("CubeSource");
  8.         //obj.GetComponent<DelegetEvent>() 找到CubeSource物体上的脚本DelegetEvent
  9.         DelegetEvent de = obj.GetComponent<DelegetEvent>();
  10.         de.MouseOver += de_MouseOver;
  11.     }

  12.     void de_MouseOver(GameObject obj)
  13.     {
  14.         this.transform.Rotate(new Vector3(0,1,0)); //物体旋转
  15.         Debug.Log(obj.name);
  16.     }
  17.      
  18.     void Update () {
  19.      
  20.     }
  21. }
复制代码
点击运行后,只要鼠标离开AA物体,BB和CC物体都会旋转了。移到AA物体上,BB和CC就停止旋转了。这个就是事件的委托和监听,他可以作为一个物体交互多个物体的方式
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-4-30 03:55:45 |只看该作者
Thank you for sharing! ) ) )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-12 04:23 , Processed in 0.157618 second(s), 26 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部