private void OnScenarioEvent(object sender, ScenarioSignalEventArgs e) { var ev = e.Data; var appealType = commonResourceProperties.appealType; switch (ev.type) { case (int)ScenarioDataType.AppealStart: { if (appealType == AppealType.None) { break; } var triggerName = CommonAnimationControllerBuilder.GetEnterTriggerNameFromAppealType(appealType); _cameraAnimator.SetTrigger(triggerName); _cameraAnimator.SetLayerWeight((int)appealType, 1); Debug.Log($"Enter appeal: {triggerName}"); break; } case (int)ScenarioDataType.AppealEnd: { if (appealType == AppealType.None) { break; } var triggerName = CommonAnimationControllerBuilder.GetExitTriggerNameFromAppealType(appealType); _cameraAnimator.SetTrigger(triggerName); _cameraAnimator.SetLayerWeight((int)appealType, 0); Debug.Log($"Exit appeal: {triggerName}"); break; } default: break; } }
private void OnScenarioEvent(object sender, ScenarioSignalEventArgs e) { var ev = e.Data; switch (ev.type) { case (int)ScenarioDataType.FormationChange: { var appealType = commonResourceProperties.appealType; if (ev.layer == 0 || ev.layer == (int)appealType) { var formation = ev.formation; Vector4 idolOffset; if (formation.Length < placement.formationNumber) { idolOffset = Vector4.zero; } else { idolOffset = formation[placement.formationNumber - 1]; } var t = _modelRoot.transform; var euler = t.localEulerAngles; euler.y = idolOffset.w; t.localEulerAngles = euler; t.localPosition = new Vector3(idolOffset.x, idolOffset.y, idolOffset.z); } break; } case (int)ScenarioDataType.DanceAnimationSeekFrame: { if (ev.idol == placement.formationNumber + 10) { var seconds = (float)ev.seekFrame / FrameRate.Mltd; _modelAnimator.PlayInFixedTime(CommonAnimationControllerBuilder.SeekFrameTargetName, (int)AppealType.None, seconds); } break; } case (int)ScenarioDataType.AppealStart: { var appealType = commonResourceProperties.appealType; if (appealType == AppealType.None) { break; } var triggerName = CommonAnimationControllerBuilder.GetEnterTriggerNameFromAppealType(appealType); _modelAnimator.SetTrigger(triggerName); _modelAnimator.SetLayerWeight((int)appealType, 1); break; } case (int)ScenarioDataType.AppealEnd: { var appealType = commonResourceProperties.appealType; if (appealType == AppealType.None) { break; } var triggerName = CommonAnimationControllerBuilder.GetExitTriggerNameFromAppealType(appealType); _modelAnimator.SetTrigger(triggerName); _modelAnimator.SetLayerWeight((int)appealType, 0); break; } default: break; } }