Beispiel #1
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (!collision.CompareTag("Nail Attack") || Time.time < _nextTime)
            {
                return;
            }

            _nextTime = Time.time + 0.25f;

            GameCameras cam = GameCameras.instance;

            if (cam != null)
            {
                cam.cameraShakeFSM.SendEvent("EnemyKillShake");
            }

            float        degrees      = 0f;
            PlayMakerFSM damagesEnemy = PlayMakerFSM.FindFsmOnGameObject(collision.gameObject, "damages_enemy");

            if (damagesEnemy != null)
            {
                degrees = damagesEnemy.FsmVariables.FindFsmFloat("direction").Value;
            }

            Vector3 position = Ref.Hero.transform.position;
            Vector3 euler    = Vector3.zero;

            switch (DirectionUtils.GetCardinalDirection(degrees))
            {
            case 0:
                Ref.Hero.RecoilLeft();
                position = new Vector3(position.x + 2, position.y, 0.002f);
                break;

            case 1:
                Ref.Hero.RecoilDown();
                position = new Vector3(position.x, position.y + 2, 0.002f);
                euler    = new Vector3(0, 0, 90);
                break;

            case 2:
                Ref.Hero.RecoilRight();
                position = new Vector3(position.x - 2, position.y, 0.002f);
                euler    = new Vector3(0, 0, 180);
                break;

            default:
                position = new Vector3(position.x, position.y - 2, 0.002f);
                euler    = new Vector3(0, 0, 270);
                break;
            }

            GameObject effect = ObjectCache.TinkEffect;

            effect.transform.localPosition            = position;
            effect.transform.localRotation            = Quaternion.Euler(euler);
            effect.GetComponent <AudioSource>().pitch = (85 + Rnd.Next(30)) / 100f;

            effect.SetActive(true);
        }
Beispiel #2
0
        public void SwitchCamera(GameCameras cameraType)
        {
            DeactivateAllCameras();
            switch (cameraType)
            {
            case GameCameras.Menu:
                SetCamera(_menuCamera, false, 0);
                break;

            case GameCameras.InGame:
                SetCamera(_inGameCamera, false, 0);
                break;
            }
        }