/// <summary> /// Raises the pickup coin event. /// </summary> /// <param name="eventParam">Event parameter.</param> void OnPickupCoin(IEventParam eventParam) { SoundManager.instance.PlaySoundByName("coin_pickup"); EventPlayerPickUpCoin eventPickup = (EventPlayerPickUpCoin)eventParam; Vector3 screenPos = UnityEngine.Camera.main.WorldToScreenPoint(eventPickup.position); GameObject coin = Instantiate(coinUiPrefab, screenPos, Quaternion.identity); coin.transform.SetParent(gameObject.transform); coin.transform.DOMove(coinText.transform.position, 1f) .SetEase(Ease.OutExpo) .OnComplete(() => { coinText.text = String.Format("{0:00000}", eventPickup.totalCoins); Destroy(coin); _animation.Play("hud_coins_inc"); }); }
/// <summary> /// Raises the trigger enter event. /// </summary> void OnTriggerEnter(Collider coll) { if (coll.gameObject.CompareTag("Coin")) { int x = (int)coll.transform.position.x; int y = (int)coll.transform.position.z; if (_gameManager.GetMaze().PickUpCoin(x, y)) { _gameManager.GetPlayerData().AddCoin(); EventPlayerPickUpCoin coinEvent = new EventPlayerPickUpCoin() { totalCoins = _gameManager.GetPlayerData().Coins, position = coll.gameObject.transform.position, coin = coll.gameObject }; EventManager.TriggerEvent("Player.PickupCoin", coinEvent); Destroy(coll.gameObject); } } }