万能游戏框架(一)——设计模式之工厂模式
2017-01-10 00:17
211 查看
设计模式
一、工厂模式:所有的对象的创造,都有一个对象去创造
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.小结
工厂模式的流程图相关文章推荐
- 游戏程序的设计模式--工厂模式
- Android开发框架/库学习,设计模式之工厂模式
- Retrofit框架设计-构建者+工厂模式高级应用
- Net框架中的设计模式之Builder(构造者)--兼谈抽象工厂和composite模式
- 设计模式在游戏中的应用--工厂方法(五)
- Retrofit 框架设计+构建者+工厂模式高级应用
- Hibernate框架设计模式:工厂模式
- Net框架中的设计模式之Builder(构造者)--兼谈抽象工厂和composite模式
- Android框架设计模式(二)——(抽象)工厂模式
- PureMVC游戏框架解析 理解其中包含的设计模式
- C#--抽象工厂设计模式--三层框架
- 游戏程序的设计模式--工厂模式
- Retrofit框架设计-构建者+工厂模式高级应用
- 工厂设计模式(对弈游戏系统)
- 通过学习spring优秀框架来学习设计模式---单例、工厂
- 游戏中的设计模式:工厂模式
- 将设计模式运用于游戏设计:工厂方法
- 设计模式在游戏中的运用(工厂模式)
- C#设计模式之简单工厂篇
- 设计模式[2]-旧话重提之-各种工厂模式