Unity 设计模式之 迭代器模式的实例介绍

 时间:2024-10-12 21:25:45

1、打开Unity,新建一个空工程,具体如下图

Unity 设计模式之 迭代器模式的实例介绍

2、在工程中,新建几个脚本,然后双击打开,具体如下图

Unity 设计模式之 迭代器模式的实例介绍

3、脚本的具体代码和代码说明如下图

Unity 设计模式之 迭代器模式的实例介绍
Unity 设计模式之 迭代器模式的实例介绍
Unity 设计模式之 迭代器模式的实例介绍
Unity 设计模式之 迭代器模式的实例介绍
Unity 设计模式之 迭代器模式的实例介绍

4、Iterator 脚本具体内容如下:publicabstractclassIterator{//用于定义得到开始对象,的倒下一个对象,判断是否到结尾 //当前对象等抽象方法,统一接口 publicabstractobjectFirst(); publicabstractobjectNext(); publicabstractboolIsDone(); publicabstractobjectCurrentItem();}

5、Aggregate脚本具体内容如下:publicabstractclassAggregate{//创建迭代器 publicabstractIteratorCreateIterator();}

6、ConcreteIterator脚本具体粝简肯惧内容如下:publicclassConcreteIterator:Iterator{//创建一个具体的聚集对象 privateCo荏鱿胫协ncreteAggregateaggregate; privateintcurrent=0;//初始化时将具体的聚集对象传入 publicConcreteIterator(ConcreteAggregateaggregate){ this.aggregate=aggregate; }//等到聚集第一个对象 publicoverrideobjectFirst() { returnaggregate[0]; }//等到聚集下一个对象 publicoverrideobjectNext() { objectret=null;current++; if(current<aggregate.Count){ ret=aggregate[current]; }returnret; }//判断当前是否比阿尼到结尾,到结尾返回true publicoverrideboolIsDone() { returncurrent>=aggregate.Count?true:false; }//返回当前的聚集对象 publicoverrideobjectCurrentItem() { returnaggregate[current]; }}

7、ConcreteAggregate脚本具体内容如下:usingSystem.Collections.Ge荏鱿胫协neric;publicclassConcreteAggregate:Aggregate{//声明一个IList泛型变量,用于存放聚合对象 privateIList<object>items=newList<object>();publicoverrideIteratorCreateIterator() { returnnewConcreteIterator(this); }//返回聚集总个数 publicintCount{ get{ returnitems.Count; } } //声明一个索引器 publicobjectthis[intindex]{ get{returnitems[index];} set{items.Insert(index,value);} }}

8、ConcreteAggregate脚本具体内容如下:usingUnityEngine;publicclassTest:MonoBehaviour{ConcreteAggregatea;//Usethisforinitialization voidStart(){ //创建一个聚合对象 a=newConcreteAggregate(); a[0]="帅哥"; a[1]="美女"; a[2]="大叔"; a[3]="大婶";//创建一个迭代器 Iteratori=newConcreteIterator(a);//遍历迭代器中所有成员 while(!i.IsDone()){ Debug.Log(i.CurrentItem()+"请买票"); i.Next(); } }}

9、脚本编译正确,回到Unity界面,在场景中新建一个 GameObject,并把 Test 脚本赋给 GameObject,具体如下图

Unity 设计模式之 迭代器模式的实例介绍

10、运行场景,控制台 Console 打印如下图

Unity 设计模式之 迭代器模式的实例介绍

11、到此,《Unity 设计模式之 迭代器模式的实例介绍》讲解结束,谢谢

  • 'ascii' codec can't encode 解决方案Python2.7
  • Win7查看某个端口被占用的解决方法
  • mac版Navicat如何设置总是显示选项卡栏?
  • regexbuddy使用教程
  • Redis 字符串(string)命令使用指南
  • 热门搜索
    建军节手抄报内容20字 三爱三节手抄报内容 绿色手抄报内容 三年级重阳节手抄报 我为队旗添光彩手抄报 手抄报名字 关于普法的手抄报 科学手抄报图片 木偶奇遇记手抄报 尊师重教的手抄报