protected void Tick_LeaveSceneCoin(int deltaTimeMs) { var sceneStates = playerData.playerZoo.scenePlayerDataMSS.sceneStates; var msg = BroadcastLeaveSceneCoin.PreSend(); var leaveSceneCoinData = GlobalDataManager.GetInstance().leaveSceneCoinData; bool isAddedCoin = false; for (int i = 0; i < sceneStates.Count; i++) { var sceneState = sceneStates[i]; if ((sceneState.enterCount > 0 || sceneState.sceneId == GameConst.First_SceneID) && sceneState.sceneId != playerData.playerZoo.currSceneID) { var perMinCoin = PlayerDataModule.LeaveScenePerMinCoin(sceneState.sceneId, true); perMinCoin = perMinCoin * deltaTimeMs / 60000; if (perMinCoin > 0) { isAddedCoin = true; playerData.playerZoo.playerCoin.AddCoinByScene(sceneState.sceneId, perMinCoin); msg.AddSceneCoin(sceneState.sceneId, perMinCoin); leaveSceneCoinData.AddCoin(sceneState.sceneId, perMinCoin); } } } if (isAddedCoin) { //发送离开金币收入消息 BroadcastLeaveSceneCoin.Send(); //广播金币收入变化 MessageManager.GetInstance().Send((int)GameMessageDefine.BroadcastCoinOfPlayerDataMSSC); } }
private void OnLeaveSceneCoinChanged(Message message) { BroadcastLeaveSceneCoin msg = message as BroadcastLeaveSceneCoin; MapPiece piece; int ownedGroup = -1; foreach (var kv in msg.sceneCoinDict) { piece = GetMapPiece(kv.Key, out ownedGroup); //GameObject effGo = GameObject.Instantiate(coinEffectTmpl.gameObject); var cellScene = Config.sceneConfig.getInstace().getCell(kv.Key); var cellMoney = Config.moneyConfig.getInstace().getCell(cellScene.moneyid); //transform.Find(cellMoney.mapmoneyeffect); GameObject effGo = GameObject.Instantiate(transform.Find(cellMoney.mapmoneyeffect).gameObject); effGo.gameObject.SetActive(true); effGo.transform.SetParent(transform); effGo.transform.localScale = Vector3.one; effGo.transform.position = piece.tipsBubbleAnchor.position; var p = effGo.GetComponentInChildren <ParticleSystem>(); p.time = 0; p.Play(true); Text quantityText = effGo.transform.Find("UIFlutterText/Text").GetComponent <Text>(); quantityText.text = MinerBigInt.ToDisplay(msg.sceneCoinDict[kv.Key]); Animator txtAnimator = quantityText.GetComponent <Animator>(); txtAnimator.enabled = true; txtAnimator.Play("UINumber", 0, 0); GameManager.GetInstance().StartCoroutine(WaitDestroyObject(1, effGo)); } //UpdatePieceCoinDisplay(); }