public void ResetAll() { StopAllCoroutines(); foreach (ModuleMech moduleMech in Mechs) { moduleMech.PoolRecycle(); } MechCount = 0; HeroCount = 0; SoldierCount = 0; ClientPlayer = null; previewMechPlace = PREVIEW_MECH_PLACES_NO_PREVIEW_MECH_NOW; Mechs.Clear(); Heros.Clear(); Soldiers.Clear(); MechCount = 0; HeroCount = 0; SoldierCount = 0; RemoveMechs.Clear(); AddPrePassMechQueue.Clear(); CLIENT_TEMP_ID = -100; relatedSlots.Clear(); if (currentSummonPreviewMechCard) { currentSummonPreviewMechCard.PoolRecycle(); } if (CurrentSummonPreviewMech) { CurrentSummonPreviewMech.PoolRecycle(); } }
public ModuleMech AddMech_PrePass(CardInfo_Mech mechCardInfo, int mechId, int clientMechTempId) { if (ClientPlayer == null) { return(null); } previewMechPlace = PREVIEW_MECH_PLACES_NO_PREVIEW_MECH_NOW; bool isSummonedBeforeByPreview = false; if (clientMechTempId != (int)Const.SpecialMechID.ClientTempMechIDNormal) { foreach (ModuleMech moduleMech in Mechs) { if (moduleMech.M_ClientTempMechID == clientMechTempId) //匹配 { moduleMech.M_MechID = mechId; //赋予正常ID moduleMech.M_ClientTempMechID = (int)Const.SpecialMechID.ClientTempMechIDNormal; //恢复普通 isSummonedBeforeByPreview = true; break; } } } if (!isSummonedBeforeByPreview) { ModuleMech mech = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.ModuleMech].AllocateGameObject <ModuleMech>(transform); mech.transform.position = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.ModuleMech].transform.position; mech.Initiate(mechCardInfo, ClientPlayer); mech.transform.Rotate(Vector3.up, 180); mech.M_MechID = mechId; AddPrePassMechQueue.Enqueue(mech); MechCount++; if (!mechCardInfo.MechInfo.IsSoldier) { HeroCount++; } else { SoldierCount++; } return(mech); } return(null); }