public void PlayStart() { Int32 state = 0; if (PlayerManager.Instance.LocalAccount.ObType == ObPlayerOrPlayer.PlayerObType) { state = 1; } GameMapObjs GameBuilding = GameObject.FindObjectOfType(typeof(GameMapObjs)) as GameMapObjs; EntityManager.ClearHomeBase(); if (GameBuilding != null) { for (int id = 0; id < GameBuilding.transform.childCount; id++) { Transform child = GameBuilding.transform.GetChild(id); int objId = 0; try { objId = Convert.ToInt32(child.name); } catch (Exception e) { Debug.LogError(e.ToString()); continue; } int infoId = GetMapObjIndex(objId); if (ConfigReader.MapObjXmlInfoDict.ContainsKey(infoId)) { MapObjConfigInfo configInfp = ConfigReader.MapObjXmlInfoDict[infoId]; int type = configInfp.eObjectTypeID; int index = configInfp.un32ObjIdx; int camp = configInfp.n32Camp; UInt64 sGUID = (UInt64)index; EntityManager.HandleDelectEntity(sGUID); Ientity item = NpcManager.Instance.HandleCreateEntity(sGUID, (EntityCampType)camp); item.MapObgId = objId; item.realObject = child.gameObject; item.objTransform = child.gameObject.transform; item.GameObjGUID = sGUID; item.NpcGUIDType = type; item.ObjTypeID = (uint)type; item.entityType = (EntityType)ConfigReader.GetNpcInfo(type).NpcType; item.SetHp(1); item.SetHpMax(1); EntityManager.Instance.SetCommonProperty(item, type); item.RealEntity = EntityManager.AddBuildEntityComponent(item); NpcManager.Instance.AddEntity(sGUID, item); EntityManager.AddHomeBase(item); GuideBuildingTips.Instance.AddBuildingTips(item); } } } LoadBaseDate.Instance().LoadBase(); }
/// <summary> /// 爆炸特效 /// </summary> /// <param name="entity"></param> public static void SetLoadJianTaBaoZha(Ientity entity, bool Replace = true) { if (entity.NPCCateChild != ENPCCateChild.eNPCChild_BUILD_Summon && Replace) { BuildReplaceObject(entity); } GameObject root = null; //Vector3 pos = entity.EntityFSMPosition; Vector3 pos = entity.realObject.transform.position; //if (entity.NpcGUIDType != Ientity.JIDI_A && entity.NpcGUIDType != Ientity.JIDI_B) if (!EntityManager.GetHomeBaseList().Contains(entity)) { string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath; if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false) { return; } //GameObject CreateEffect = Resources.Load(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha) as GameObject; //ResourceUnit CreateEffectUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, ResourceType.PREFAB); //GameObject CreateEffect = CreateEffectUnit.Asset as GameObject; NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null); if (normalEffect == null) { return; } //root = GameObject.Instantiate(CreateEffect) as GameObject; //if (root != null) // root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); } else { if (entity.IsSameCamp(EntityCampType.CampTypeA)) { pos.y += 6f; LoadBaseDate.Instance().BaseA.gameObject.SetActive(true); LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z); return; } LoadBaseDate.Instance().BaseB.gameObject.SetActive(true); LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z); } }
/// <summary> /// 爆炸特效 /// </summary> /// <param name="entity"></param> public static void SetLoadJianTaBaoZha(IEntity entity, bool Replace = true) { if (entity.NPCCateChild != NPCCateChildEnum.BUILD_Summon && Replace) { BuildReplaceObject(entity); } GameObject root = null; Vector3 pos = entity.realObject.transform.position; if (!EntityManager.GetHomeBaseList().Contains(entity)) { string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath; if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false) { return; } NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null); if (normalEffect == null) { return; } //root = GameObject.Instantiate(CreateEffect) as GameObject; //if (root != null) // root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); } else { if (entity.IsSameCamp(EntityCampTypeEnum.A)) { pos.y += 6f; LoadBaseDate.Instance().BaseA.gameObject.SetActive(true); LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z); return; } LoadBaseDate.Instance().BaseB.gameObject.SetActive(true); LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z); } }
//游戏开始 游戏Bulidings创建 public void PlayStart() { //if (PlayerManager.Instance.LocalAccount.ObjType == ObPlayerOrPlayer.PlayerObType) //{ // state = 1; //} //场景中的对象 箭塔 防御塔, 售货员 产生小兵的基地 GameMapObjs GameBuilding = FindObjectOfType(typeof(GameMapObjs)) as GameMapObjs; //根据场景不同,个数不同 //清除基地 EntityManager.ClearHomeBase(); if (GameBuilding != null) { //获取配置文件并生成初始化 for (int id = 0; id < GameBuilding.transform.childCount; id++) { Transform child = GameBuilding.transform.GetChild(id); int objId = 0; try { objId = Convert.ToInt32(child.name);//将对象名称转化为整型 } catch (Exception e) { Debug.LogError(e.ToString()); continue; } int infoId = GetMapObjIndex(objId); //获取地图对象索引 if (ConfigReader.MapObjXmlInfoDict.ContainsKey(infoId)) //获取对象配置文件并生成对象 { //获取配置文件 MapObjConfigInfo configInfp = ConfigReader.MapObjXmlInfoDict[infoId]; int type = configInfp.eObjectTypeID; int index = configInfp.un32ObjIdx; int camp = configInfp.n32Camp; UInt64 sGUID = (UInt64)index; //生成并初始化 EntityManager.HandleDelectEntity(sGUID); IEntity item = NpcManager.Instance.HandleCreateEntity(sGUID, (EntityCampTypeEnum)camp); item.MapObgId = objId; item.realObject = child.gameObject; item.objTransform = child.gameObject.transform; item.GameObjGUID = sGUID; item.NpcGUIDType = type; item.ObjTypeID = (uint)type; item.entityType = (EntityTypeEnum)ConfigReader.GetNpcInfo(type).NpcType; item.SetHp(1); item.SetHpMax(1); EntityManager.Instance.SetCommonProperty(item, type); item.RealEntity = EntityManager.AddBuildEntityComponent(item); NpcManager.Instance.AddEntity(sGUID, item); EntityManager.AddHomeBase(item); GuideBuildingTips.Instance.AddBuildingTips(item); } } } //加载基地销毁特效,并设置为禁用 LoadBaseDate.Instance().LoadBase(); }