示例#1
0
        /// <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);
                }
            }
        }