public static void Cache(EActorType type, int nResId) { string strRolePrefab = null; switch (type) { case EActorType.Hero: ResActor resHero = DataReader <ResActor> .Get(nResId); if (null == resHero) { Debug.LogError("Error Hero ID = " + nResId); return; } strRolePrefab = resHero.prefab; break; case EActorType.Monster: ResActor resMonster = DataReader <ResActor> .Get(nResId); if (null == resMonster) { Debug.LogError("Error Hero ID = " + nResId); return; } strRolePrefab = resMonster.prefab; break; } Object cPrefab = CResourceSys.Instance.LoadRole(strRolePrefab); if (null == cPrefab) { Debug.LogError("can't load prefabs id:" + nResId); return; } GameObject objRole = ObjectPoolSys.Instance.Cache(cPrefab); objRole.transform.parent = HeroRoot; objRole.transform.localScale = Vector3.one; objRole.transform.localPosition = Vector3.zero; objRole.transform.localEulerAngles = Vector3.zero; }
public SceneObject Create(int id, Vector3 pos) { ResActor data = DataReader <ResActor> .Get(id); if (data == null) { return(null); } Object cPrefab; GameObject model; SceneObject obj = null; switch ((EActorType)data.type) { case EActorType.Hero: cPrefab = CResourceSys.Instance.LoadRole(data.prefab); if (cPrefab == null) { return(null); } model = ObjectPoolSys.Instance.Create(cPrefab); obj = model.AddUniqueComponent <Hero>(); obj.transform.parent = HeroRoot; (obj as Hero).position = pos; (obj as Hero).Data = data; obj.EnterScene(); break; case EActorType.Monster: cPrefab = CResourceSys.Instance.LoadRole(data.prefab); if (cPrefab == null) { return(null); } model = ObjectPoolSys.Instance.Create(cPrefab); obj = model.AddUniqueComponent <Monster>(); obj.transform.parent = MonsterRoot; (obj as Monster).position = pos; (obj as Monster).Data = data; obj.EnterScene(); break; case EActorType.GunItem: cPrefab = CResourceSys.Instance.LoadItem(data.prefab); if (cPrefab == null) { return(null); } model = ObjectPoolSys.Instance.Create(cPrefab); obj = model.AddUniqueComponent <GunItem>(); obj.transform.parent = ItemRoot; obj.transform.position = pos; (obj as GunItem).SetSkill(data.skills[0]); obj.EnterScene(); break; case EActorType.ExpendItem: cPrefab = CResourceSys.Instance.LoadItem(data.prefab); if (cPrefab == null) { return(null); } model = ObjectPoolSys.Instance.Create(cPrefab); obj = model.AddUniqueComponent <ExpendItem>(); obj.transform.parent = ItemRoot; obj.transform.position = pos; (obj as ExpendItem).SetSkill(data.skills[0]); obj.EnterScene(); break; } return(obj); }