手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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 设计模式之 迭代器模式的实例介绍》讲解结束,谢谢

© 手抄报圈