From 8e35e4280e6878c879913f85756ec0c07452bfb8 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Fri, 19 May 2023 00:25:57 +0200 Subject: [PATCH] The logo now bops to the beat --- .../UI/Common/Opening/Animations/LogoBop.anim | 2 +- .../UI/Common/Opening/Animations/Reveal.anim | 2 +- Assets/Scenes/Title.unity | 5 ++- Assets/Scripts/TitleManager.cs | 44 ++++++++++++++++++- 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/Assets/Resources/Sprites/UI/Common/Opening/Animations/LogoBop.anim b/Assets/Resources/Sprites/UI/Common/Opening/Animations/LogoBop.anim index 50b639b2d..6caf31b3f 100644 --- a/Assets/Resources/Sprites/UI/Common/Opening/Animations/LogoBop.anim +++ b/Assets/Resources/Sprites/UI/Common/Opening/Animations/LogoBop.anim @@ -2268,7 +2268,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 + m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Resources/Sprites/UI/Common/Opening/Animations/Reveal.anim b/Assets/Resources/Sprites/UI/Common/Opening/Animations/Reveal.anim index 2c3182d51..f37ff0506 100644 --- a/Assets/Resources/Sprites/UI/Common/Opening/Animations/Reveal.anim +++ b/Assets/Resources/Sprites/UI/Common/Opening/Animations/Reveal.anim @@ -2588,7 +2588,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 + m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Scenes/Title.unity b/Assets/Scenes/Title.unity index a168e7e6f..9bdfc5d77 100644 --- a/Assets/Scenes/Title.unity +++ b/Assets/Scenes/Title.unity @@ -2821,7 +2821,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: createButton: {fileID: 2094622677} - Bpm: 114 + logoAnim: {fileID: 869323824} + bpm: 114 --- !u!82 &1811344143 AudioSource: m_ObjectHideFlags: 0 @@ -2833,7 +2834,7 @@ AudioSource: serializedVersion: 4 OutputAudioMixerGroup: {fileID: -7454359775428337364, guid: e76f74363e1893a42bd3ebe9643b7d12, type: 2} m_audioClip: {fileID: 8300000, guid: db628a16ac450d442970008255720d2d, type: 3} - m_PlayOnAwake: 1 + m_PlayOnAwake: 0 m_Volume: 1 m_Pitch: 1 Loop: 1 diff --git a/Assets/Scripts/TitleManager.cs b/Assets/Scripts/TitleManager.cs index f500b7766..24609a804 100644 --- a/Assets/Scripts/TitleManager.cs +++ b/Assets/Scripts/TitleManager.cs @@ -10,10 +10,52 @@ namespace HeavenStudio { [SerializeField] private Button createButton; - [SerializeField] private float Bpm = 114f; + [SerializeField] private Animator logoAnim; + + [SerializeField] private float bpm = 114f; + + private AudioSource musicSource; + + private double songPosBeat; + private double songPos; + private double time; + private double targetBopBeat; + + private double lastAbsTime; private void Start() { + musicSource = GetComponent(); createButton.onClick.AddListener(delegate { GlobalGameManager.LoadScene("Editor"); Jukebox.PlayOneShot("ui/UIEnter"); }); + musicSource.Play(); + } + + private void Update() + { + if (songPos >= musicSource.clip.length) + { + time = 0; + targetBopBeat = 0; + } + double absTime = Time.realtimeSinceStartup; + double dt = absTime - lastAbsTime; + lastAbsTime = absTime; + + time += dt; + + songPos = time; + + songPosBeat = SecsToBeats(songPos); + + if (songPosBeat >= targetBopBeat) + { + logoAnim.Play("LogoBop", 0, 0); + targetBopBeat += 1; + } + } + + public double SecsToBeats(double s) + { + return s / 60f * bpm; } } }