工程模式,其实就是对某个过程的封装;使传入不同的参数,得到不同的产品,封装后只留有接口以调用。
忽略过程,只看结果。用在创建新的对象,例如酷跑游戏的金币,传递坐标,个数,就即可生成,或者多个怪物
根据传入参数的不同,new出不同的对象
这是一段用来根据传入的位置和序号,生产不同的Sprite图片的代码:
public class Factory
{
Transform parent;
public Factory(Transform tmp)
{
parent = tmp;
InitialImage();
}
Sprite[] allSprite;
public void InitialImage()
{
//加载所有的精灵到数组
allSprite = Resources.LoadAll<Sprite>("路径");
}
public GameObject CreatSprite(Vector3 pos, byte index)
{
GameObject tmpObj = new GameObject();
tmpObj.transform.position = pos;
tmpObj.transform.SetParent(parent, false);
Image tmpImage = tmpObj.AddComponent<Image>();
//防止越界
index = (byte)(index % allSprite.Length);
tmpImage.sprite = allSprite[index];
return tmpObj;
}
}