原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1114/187.html
Unity项目架构设计与开发管理
对于刚接触Unity的初学者来说还是非常有经验的开发者来说,掌握项目架构设计与开发管理是迟早要掌握的知识点,为了能够帮到大家,下面我们常州游戏开发培训-幻天网络就给大家介绍下Unity项目架构设计与开发管理的知识。
1.EmptyGO
2.SimpleGameManager
3.ManagerofManagers
4.MVCS(StrageloC)
5.MVVM(uFrame)
…….
1.EmptyGo
1.EmptyGo
//MainManager
EventManager
//Streamline messaging between classes.
AudioManager
//Control audio playback from one place.
GUIManager
//Centralize the controls to handle clicks.etc.
PoolManager
//Persist prefab instances in RAM and display them as needed.
LevelManager
//Queue up leves and perform transitions between them. 这里有个插件可以参考一下:Mad LeveManager
GameManager
//manage the core game mechanics.usually projects pecific.
SaveManger
//Save and load user preferences and achievements.这里有个插件可以参考一下:Save Manager
MenuManger
//Control all menus animations contents and behaviors.
一个中型以上的项目至少有:
一个中型以上的项目至少有:
1. Level Manager
2. Pool Manager
3. Save Manager
1. GameManager
2. EvemtManager
3. MenuManager
4. GUIManager
5. AudioManager
内存管理问题:a simple pool design:
内存管理问题:a simple pool design:
public GameObject Spawn(GameOjbect go)
{
GameObject temp = null;
if(dormantObjects.Count > 0)
{
foreach(GameObject dob in dormantObjects)
{
if(dob.name == go.name)
{
temp = dob;
dormantObjects.Remove(temp);
return temp;
}
}
}
temp = GameObject.Instantiate(go) as GameObject;
temp.name = go.name;
return temp;
}
public void Despawn(GameObject go)
{
go.transform.parent = PoolManager.transform;
go.SetActive(false);
dormantObjects.Add(go);
Trim();
}
public void Trim()
{
while(dormantObjects.Count > Capacity)
{
GameObject dob = dormantObjects[0];
dormantObjects.RemoveAt(0);
Destroy(dob);
}
}
4.StrageIOC
4.StrageIOC
IBinder.Bind<Key>().To<Value>();
IBinder.Bind<key>().To<value>().ToName(name);
上篇:上一篇:Unity3d游戏开发框架-标志量,数学管理类,时间管
下篇:下一篇:TRANSFORM_TEX详解