//隐藏实例 public void HideEntity(UInt64 sGUID) { if (!AllEntitys.ContainsKey(sGUID)) { return; } Ientity entity = null; //如果字典中存在这个实例并且实例类型是Player if (EntityManager.AllEntitys.TryGetValue(sGUID, out entity) && entity.entityType == EntityType.Player) { // if (PlayerManager.Instance.LocalAccount.ObjType == ObPlayerOrPlayer.PlayerType) { Iplayer.AddOrDelEnemy((Iplayer)entity, false); } } Iselfplayer player = PlayerManager.Instance.LocalPlayer; if (player != null && player.SyncLockTarget == AllEntitys[sGUID]) { //锁定对象实例为空 player.SetSyncLockTarget(null); } //隐藏血条 AllEntitys[sGUID].HideBloodBar(); //禁用实例 AllEntitys[sGUID].realObject.active = false; }
public static int HandleDelectEntity(UInt64 sGUID) { if (!AllEntitys.ContainsKey(sGUID)) { return((int)ReturnRet.eT_DelEntityFailed); } Ientity entity = null; if (EntityManager.AllEntitys.TryGetValue(sGUID, out entity) && entity.entityType == EntityType.Player) { if (PlayerManager.Instance.LocalAccount.ObjType == ObPlayerOrPlayer.PlayerType) { Iplayer.AddOrDelEnemy((Iplayer)entity, false); } } Iselfplayer player = PlayerManager.Instance.LocalPlayer; if (player != null && player.SyncLockTarget == AllEntitys[sGUID]) { player.SetSyncLockTarget(null); } if (entity.entityType == EntityType.Building) { MonoBehaviour.DestroyImmediate(AllEntitys[sGUID].realObject); } else { //删除GameObject ObjectPool.Instance.ReleaseGO(AllEntitys[sGUID].resPath, AllEntitys[sGUID].realObject, PoolObjectTypeEnum.Entity); } AllEntitys[sGUID].DestroyBloodBar(); AllEntitys[sGUID] = null; AllEntitys.Remove(sGUID); return((int)ReturnRet.eT_Normal); }