美文网首页
Unity3d-c#-观察者设计模式-猫抓老鼠

Unity3d-c#-观察者设计模式-猫抓老鼠

作者: MFGame | 来源:发表于2018-08-29 14:41 被阅读0次

    在这个例子中运用了委托事件机制
    讲述了事件和委托的区别
    最大的区别是:
    事件是特殊的受限的委托,事件只能在类内部调用,不能在类的外部调用起到保护作用,可以在类的外部通过+=添加事件

    1、首先是Cat的类代码如下:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System;

    public class Cat {
    private string name;
    private string color;

    public event Action catCome;//事件不能在类的外部触发,只能在类的内部触发。 委托都可以触发。
    public Cat(string name,string color)
    {
    this.name=name;
    this.color=color;
    }

    public void CatComing()
    {
    Debug.Log(color+"的猫"+name+"过来了");
    if(catCome!=null)
    {
    catCome();
    }
    }
    }

    2、其次是Mouse的类代码如下:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class Mouse {
    private string name;
    private string color;
    public Mouse(string name,string color,Cat cat)
    {
    this.name=name;
    this.color=color;
    cat.catCome+=RunAway;
    }

    public void RunAway()
    {
    Debug.Log(color +"的老鼠"+name+"说猫来了");
    }
    }

    3、最后是Main方法代码如下:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class GameManager : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Cat cat=new Cat("加菲猫","黄色");
        Mouse mouse1=new Mouse("米奇","黑色",cat);
        Mouse mouse2=new Mouse("airu","白色",cat);
        cat.CatComing();
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
    

    }

    相关文章

      网友评论

          本文标题:Unity3d-c#-观察者设计模式-猫抓老鼠

          本文链接:https://www.haomeiwen.com/subject/rizhwftx.html