万能游戏框架(一)——设计模式之工厂模式
来源:互联网 发布:京东域名买谁的 编辑:程序博客网 时间:2024/05/02 00:10
设计模式
一、工厂模式:所有的对象的创造,都有一个对象去创造
1.一个简单的工厂模式的例子
public class Food{ public virtual void ShowMe() { }}public class TomatoFood:Food{ public override void ShowMe() { base.ShowMe(); Print("TomatoFood"); }}public class EggFood:Food{ public override void ShowMe() { base.ShowMe(); Print("EggFood"); }}public class Factory{ public Food ShowFactory(string name) { if(name=="egg") { return new EggFood(); } else if(name=="tomato") { return new TomatoFood(); } }}public class Main{ public void MainShow() { Factory temFactory=new Factory(); Food tmpFood =temFactory.ShowFactory("egg"); temFood.ShowMe(); Food tmpFood2 =temFactory.ShowFactory("tomato"); temFood2.ShowMe(); }}
2.工厂模式在Unity中的应用
一个图片包含着多张图片的情况下,可以进行如下的处理:
- 在Inspector中,将Texture Type改成Sprite(2D and UI),Sprite Mode改成Multiple,再点击Sprtie Editor按钮进行切割,如下图所示
- 创建C#脚本SpriteFactory,代码如下,运用工厂模式
public class SpriteFactory:MonoBehaviour{ public Object[] allSprite; //加载所有的资源 void Start() { allSprite = Resources.LoadAll("Number"); } //工厂方法 public GameObject GetImage(int index) { GameObject temObj = new GameObject("tmpGame"); Image tmpImage = tmpObj.AddComponent<Image>(); tmpImage.sprite = allSprite[index] as Sprite; return temObj; } //计数器 int allIndex = 0; void Update() { if(Input.GetKeyDown(keyCode.A)) { //计数器自加1,并生成对应的对象 allIndex++; GameObject temObj = GetImage(allIndex%9); //新生成的Sprite对象的transform设定为挂载此脚本的物体的transform,后再修改其位置 temObj.transform.parent = transform; temObj.transform.position = new Vector3(allIndex*2,0,0); } }}
- 可将上诉内容形成一个新的功能类,代码如下
public void LoadSprite(string name){ allSprite = Resources.LoadAll(name);}public GameObject GetSprite(int index){ GameObject temObj = new GameObject("tmpGame"); Image tmpImage = tmpObj.AddComponent<Image>(); tmpImage.sprite = allSprite[index] as Sprite; return temObj;}
3.小结
工厂模式的流程图
0 0
- 万能游戏框架(一)——设计模式之工厂模式
- 设计模式之(一)——工厂方法模式
- 设计模式之 工厂模式(一)
- 设计模式之工厂模式(一)
- 设计模式之工厂模式(一)
- 设计模式之工厂模式(一)
- 设计模式之工厂设计模式(一:简单工厂模式与工厂方法模式)
- 设计模式—简单工厂(一)
- Java设计模式之工厂模式(一):简单工厂模式+工厂方法模式
- Java设计模式(一) 设计模式初探——简单工厂和工厂方法模式
- 设计模式之工厂模式(一)之简单工厂模式
- 简单工厂模式——设计模式(一)
- Java常用设计模式(一)——工厂模式
- 设计模式(一)——简单工厂模式
- 设计模式详解——工厂模式(一)
- java设计模式(一)——普通工厂模式
- 设计模式(一)——简单工厂模式
- 设计模式之——工厂模式
- 人生--记得坚持
- 面试--单例模式(75)
- 加锁情况下生产者消费者的应用
- CentOS7 基于Hadoop2.7 的Spark2.0集群搭建
- Java HashMap 集合
- 万能游戏框架(一)——设计模式之工厂模式
- 在Pyhon中通过pip方式安装numpy、matplotlib、scipy、Scikit-learn包
- SPOJ TBATTLE - Thor vs Frost Giants [数论+二分]
- AlloyTeam代码规范
- 简单IF语句的简化写法->三目运算符
- 免费馅饼
- android opengles光照效果-散射光
- http Cookie与Session的讲解
- Java_集合体系之ArrayList详解、源码及示例