/// <summary> /// 移动摄影机到指定轨道 /// </summary> /// <param name="trackID"> 轨道的ID 0 - 23 对应 1 - 24 品 </param> /// <param name="rant"> 缓动率,1表示一下移动过去,0表示不动 </param> public static void MoveCamera(int trackID, float rant = 0.1f) { if (!Main) { return; } trackID = Mathf.Clamp(trackID, 2, 21); MoveCamera(new Vector2(TheStageSetting.TrackPos(trackID).x, Main.CameraAimPos.y), rant); }
void Update() { step++; ///* if (GamePlaying && StageMicrophone.IsReady) { float[] f = StageMicrophone.GetData(StageMicrophone.SamplePosition() - StageMicrophone.sampleRate, StageMicrophone.sampleRate); for (int i = 0; i < f.Length - 1; i++) { Debug.DrawLine( new Vector3((float)(i - 1), f[i] * 10000f, 0f), new Vector3((float)i, f[i + 1] * 10000f, 0f), Color.red ); } StageMicrophone.Main.Source.time = Mathf.Max(((float)StageMicrophone.SamplePosition() / StageMicrophone.sampleRate) - 0.02f, 0f); } //*/ // Ani TheStageSetting.MenuAni.SetBool("GamePlaying", GamePlaying); TheStageSetting.MainBtnAni.SetBool("SignedIn", IsSignedIn); // Menu Random Note if (!GamePlaying) { RandomAddNote( Time + TheStageSetting.ShowNoteTime, 0, 24, 0, 6, 0f, 0.9f ); // if (step >= 200){ // step = 0; // Stage.AddNote(new NoteInfo( // 7, // 6, // Time + TheStageSetting.ShowNoteTime, // 0, 7 // )); // } } // Aim Movement int cameraID = (int)TheStageSetting.TrackID(TheStageSetting.CameraPos).x; for (int i = 0; i < TheStageSetting.FretSigns.Length; i++) { TheStageSetting.FretSigns[i].color = Color.Lerp( TheStageSetting.FretSigns[i].color, GamePlaying && Mathf.Abs(cameraID - i) < 4 ? TheStageSetting.FretSignColor : Color.clear, 0.1f ); } ShowingScore = StageScore.CurrentScore >= StageScore.FullScore ? (int)StageScore.FullScore : (int)Mathf.Lerp( ShowingScore, (GamePlaying ? StageScore.CurrentScore : 0), 0.9f ); TheStageSetting.ScoreTXT = ShowingScore; TheStageSetting.TitleBGM.volume = Mathf.Lerp( TheStageSetting.TitleBGM.volume, GamePlaying ? 0f: 1f, 0.02f ); if (GamePlaying && TheStageSetting.TitleBGM.volume < 0.01f) { TheStageSetting.TitleBGM.Pause(); } TheStageSetting.TrackBackSR.color = Color.Lerp( TheStageSetting.TrackBackSR.color, GamePlaying ? TheStageSetting.TrackBackColor : Color.clear, 0.01f ); TheStageSetting.GuitarBody.color = TheStageSetting.GuitarHead.color = Color.Lerp( TheStageSetting.GuitarBody.color, GamePlaying ? Color.clear : TheStageSetting.GuitarColor, 0.01f ); TheStageSetting.MainCamera.localPosition = Vector3.Lerp( TheStageSetting.MainCamera.localPosition, GamePlaying ? TheStageSetting.CameraPlayingPos : TheStageSetting.CameraMenuPos, 0.16f ); TheStageSetting.MainCamera.localRotation = Quaternion.Lerp( TheStageSetting.MainCamera.localRotation, GamePlaying ? TheStageSetting.CameraPlayingRot : TheStageSetting.CameraMenuRot, 0.16f ); TheStageSetting.CameraPos = Vector3.Lerp(TheStageSetting.CameraPos, CameraAimPos, CameraMoveRant); TheStageSetting.CameraRot = Quaternion.Lerp(TheStageSetting.CameraRot, CameraAimRot, CameraRotRant); for (int i = 0; i < 6; i++) { TheStageSetting.Strings[i].color = Color.Lerp(TheStageSetting.Strings[i].color, StringAimColors[i], StringColorRant); TheStageSetting.StringLights[i].color = Color.Lerp(TheStageSetting.Strings[i].color, StringAimColors[i], StringColorRant); } for (int i = 0; i < 24; i++) { TheStageSetting.TrackHighLights[i].color = Color.Lerp(TheStageSetting.TrackHighLights[i].color, TrackHightLightAimColors[i], TrackHightLightColorRant); } for (int i = 0; i < 6; i++) { Vector3 pos = StringAimPos[i] + (StringAimPos[i] - TheStageSetting.StringTFs[i].position) * StringShackRant; TheStageSetting.StringTFs[i].position = pos; } for (int i = 0; i < 25; i++) { TheStageSetting.FretWireLights[i].color = Color.Lerp(TheStageSetting.FretWireLights[i].color, FretWireLightAimColors[i], FretWireLightColorRant); } // Msg InputManager.StageUpdate(); }