Пример #1
0
        public static string ToString(this RhythmSequenceKeyframeRating rating)
        {
            switch (rating)
            {
            case RhythmSequenceKeyframeRating.PERFECT:
                return("PERFECT!!");

            case RhythmSequenceKeyframeRating.GOOD:
                return("GOOD!");

            case RhythmSequenceKeyframeRating.MISS:
                return("MISS");
            }
            return("");
        }
Пример #2
0
        private void HandleKeyframeHit(RhythmSequenceKeyframe keyframe, RhythmSequenceKeyframeRating rating)
        {
            string prefabName = "";

            switch (rating)
            {
            case RhythmSequenceKeyframeRating.PERFECT:
                prefabName = "PerfectFloatingTextSFX";
                CameraController.Main <CameraController>().Shake(GameConstants.Instance.kAttackShakeMagnitude * 0.6f, GameConstants.Instance.kAttackShakeDuration * 2.0f);
                SoundManager.Instance.PlaySoundFile(2);
                break;

            case RhythmSequenceKeyframeRating.GOOD:
                prefabName = "GoodFloatingTextSFX";
                CameraController.Main <CameraController>().Shake(GameConstants.Instance.kAttackShakeMagnitude * 0.4f, GameConstants.Instance.kAttackShakeDuration * 1.5f);
                SoundManager.Instance.PlaySoundFile(0);
                break;

            case RhythmSequenceKeyframeRating.MISS:
            default:
                prefabName = "MissFloatingTextSFX";
                CameraController.Main <CameraController>().Shake(GameConstants.Instance.kAttackShakeMagnitude * 0.2f, GameConstants.Instance.kAttackShakeDuration);
                SoundManager.Instance.PlaySoundFile(1);
                break;
            }

            GameObject floatingTextSFXObject = Toolbox.GetInstance <ObjectPoolManager>().Instantiate(prefabName);

            floatingTextSFXObject.transform.SetParent(CanvasUtil.MainCanvas.transform, worldPositionStays: false);

            RectTransform rectTransform    = (RectTransform)floatingTextSFXObject.transform;
            Vector2       anchoredPosition = rectTransform.anchoredPosition;

            if (this.transform.position.x > 0.0f)
            {
                anchoredPosition = anchoredPosition.SetX(-anchoredPosition.x);
            }

            rectTransform.anchoredPosition = anchoredPosition + (Vector2)Camera.main.WorldToScreenPoint(this.transform.position);

            FloatingTextSFX floatingTextSFX = floatingTextSFXObject.GetComponent <FloatingTextSFX>();

            floatingTextSFX.SetText(rating.ToString());

            this._visualizerMap[keyframe].FadeAway();
            this._visualizerMap.Remove(keyframe);
        }
Пример #3
0
        private void HandleKeyframeHit(RhythmSequenceKeyframe keyframe, RhythmSequenceKeyframeRating rating)
        {
            switch (rating)
            {
            case RhythmSequenceKeyframeRating.PERFECT:
                this._result.perfectHitCount++;
                break;

            case RhythmSequenceKeyframeRating.GOOD:
                this._result.goodHitCount++;
                break;

            case RhythmSequenceKeyframeRating.MISS:
                this._result.missCount++;
                break;
            }
        }