add settings menu to title screen

make the title screen properly play after the opening
This commit is contained in:
minenice55 2023-08-16 08:03:47 -04:00
parent 1ab426ba34
commit 70f88eb0ba
6 changed files with 605 additions and 304 deletions

View file

@ -92,7 +92,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: 752 value: 656
inSlope: 0 inSlope: 0
outSlope: 0 outSlope: 0
tangentMode: 136 tangentMode: 136
@ -111,7 +111,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: -415 value: -64
inSlope: 0 inSlope: 0
outSlope: 0 outSlope: 0
tangentMode: 136 tangentMode: 136
@ -796,7 +796,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: 752 value: 656
inSlope: 0 inSlope: 0
outSlope: 0 outSlope: 0
tangentMode: 136 tangentMode: 136
@ -815,7 +815,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: -415 value: -64
inSlope: 0 inSlope: 0
outSlope: 0 outSlope: 0
tangentMode: 136 tangentMode: 136

View file

@ -644,7 +644,19 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 348029484} m_TargetGraphic: {fileID: 348029484}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls:
- m_Target: {fileID: 1811344142}
m_TargetAssemblyTypeName: HeavenStudio.TitleManager, Assembly-CSharp
m_MethodName: SettingsPressed
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &348029484 --- !u!114 &348029484
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2703,8 +2715,8 @@ MonoBehaviour:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 20 width: 16
height: 20 height: 16
--- !u!222 &1178120461 --- !u!222 &1178120461
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2802,7 +2814,19 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1336149020} m_TargetGraphic: {fileID: 1336149020}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls:
- m_Target: {fileID: 1811344142}
m_TargetAssemblyTypeName: HeavenStudio.TitleManager, Assembly-CSharp
m_MethodName: CreatePressed
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1336149020 --- !u!114 &1336149020
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3184,6 +3208,107 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1433046562} m_GameObject: {fileID: 1433046562}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1436596916
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1436596917}
- component: {fileID: 1436596920}
- component: {fileID: 1436596919}
- component: {fileID: 1436596918}
m_Layer: 0
m_Name: SettingsCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1436596917
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1436596916}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1955961795}
m_Father: {fileID: 1811344141}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &1436596918
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1436596916}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &1436596919
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1436596916}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1280, y: 720}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &1436596920
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1436596916}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 681648914}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 805687615
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!1 &1482915176 --- !u!1 &1482915176
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3813,6 +3938,7 @@ Transform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 551511482} - {fileID: 551511482}
- {fileID: 1436596917}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -3838,11 +3964,12 @@ MonoBehaviour:
- {fileID: 1400026815} - {fileID: 1400026815}
pressAnyKeyAnim: {fileID: 976586349} pressAnyKeyAnim: {fileID: 976586349}
bpm: 114 bpm: 114
offset: 0.082 offset: 0
bg: {fileID: 1178120460} bg: {fileID: 1178120460}
bgXSpeed: -0.08 bgXSpeed: -0.08
bgYSpeed: 0.08 bgYSpeed: 0.08
logoHoverCollider: {fileID: 1269393217} logoHoverCollider: {fileID: 1269393217}
settingsPanel: {fileID: 1955961796}
--- !u!82 &1811344143 --- !u!82 &1811344143
AudioSource: AudioSource:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4282,6 +4409,159 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1950835122} m_GameObject: {fileID: 1950835122}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1001 &1955961794
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1436596917}
m_Modifications:
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[0].name
value: General Settings
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[1].name
value: Controllers
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[2].name
value: Credits / Legal
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[3].name
value: Credits / Legal
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[0].tabPrefab
value:
objectReference: {fileID: 1084161799213900017, guid: a6621c8f4ea64664d8c9bdc8c937a8f1, type: 3}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[1].tabPrefab
value:
objectReference: {fileID: 3918594455367347232, guid: e79e692a9c7cf1e4c8bd4c0888713d20, type: 3}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[2].tabPrefab
value:
objectReference: {fileID: 3276216359486296925, guid: 95d6187a550fa8345a588291e28a2a85, type: 3}
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: tabs.Array.data[3].tabPrefab
value:
objectReference: {fileID: 3276216359486296925, guid: 95d6187a550fa8345a588291e28a2a85, type: 3}
- target: {fileID: 8995444695466730804, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_Name
value: SettingsMenu
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730804, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
--- !u!224 &1955961795 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8995444695466730805, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
m_PrefabInstance: {fileID: 1955961794}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1955961796 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
m_PrefabInstance: {fileID: 1955961794}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d82cc04699de2e54483ca0e0468d9ed2, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1958951423 --- !u!1 &1958951423
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4797,7 +5077,19 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 2098364311} m_TargetGraphic: {fileID: 2098364311}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls:
- m_Target: {fileID: 1811344142}
m_TargetAssemblyTypeName: HeavenStudio.TitleManager, Assembly-CSharp
m_MethodName: QuitPressed
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &2098364311 --- !u!114 &2098364311
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View file

@ -11,6 +11,7 @@ namespace HeavenStudio.Editor
private void LateUpdate() private void LateUpdate()
{ {
if (Editor.instance == null) return;
for (int i = 0; i < transform.childCount; i++) for (int i = 0; i < transform.childCount; i++)
{ {
if (Editor.MouseInRectTransform(transform.GetChild(i).GetComponent<RectTransform>())) if (Editor.MouseInRectTransform(transform.GetChild(i).GetComponent<RectTransform>()))

View file

@ -3,6 +3,7 @@ using System.Collections.Generic;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine; using UnityEngine;
using HeavenStudio.Util; using HeavenStudio.Util;
using HeavenStudio.Common;
using Starpelly; using Starpelly;
using System.Linq; using System.Linq;
@ -28,6 +29,8 @@ namespace HeavenStudio
[SerializeField] private Collider2D logoHoverCollider; [SerializeField] private Collider2D logoHoverCollider;
[SerializeField] private SettingsDialog settingsPanel;
private AudioSource musicSource; private AudioSource musicSource;
private double songPosBeat; private double songPosBeat;
@ -38,6 +41,7 @@ namespace HeavenStudio
private int loops; private int loops;
private double lastAbsTime; private double lastAbsTime;
private double startTime;
private bool altBop; private bool altBop;
@ -51,7 +55,8 @@ namespace HeavenStudio
{ {
menuAnim = GetComponent<Animator>(); menuAnim = GetComponent<Animator>();
musicSource = GetComponent<AudioSource>(); musicSource = GetComponent<AudioSource>();
musicSource.Play(); musicSource.PlayScheduled(AudioSettings.dspTime);
startTime = Time.realtimeSinceStartupAsDouble;
var _rand = new System.Random(); var _rand = new System.Random();
starAnims = starAnims.OrderBy(_ => _rand.Next()).ToList(); starAnims = starAnims.OrderBy(_ => _rand.Next()).ToList();
} }
@ -65,7 +70,7 @@ namespace HeavenStudio
targetBopBeat = 0; targetBopBeat = 0;
loops++; loops++;
} }
double absTime = Time.realtimeSinceStartup; double absTime = Time.realtimeSinceStartupAsDouble - startTime;
double dt = absTime - lastAbsTime; double dt = absTime - lastAbsTime;
lastAbsTime = absTime; lastAbsTime = absTime;
@ -80,7 +85,7 @@ namespace HeavenStudio
menuAnim.Play("Revealed", 0, 0); menuAnim.Play("Revealed", 0, 0);
pressAnyKeyAnim.Play("PressKeyFadeOut", 0, 0); pressAnyKeyAnim.Play("PressKeyFadeOut", 0, 0);
} }
if (loops == 0) if (loops == 0 && !logoRevealed)
{ {
float normalizedBeat = GetPositionFromBeat(4, 1); float normalizedBeat = GetPositionFromBeat(4, 1);
if (normalizedBeat > 0 && normalizedBeat <= 1f) if (normalizedBeat > 0 && normalizedBeat <= 1f)
@ -121,9 +126,9 @@ namespace HeavenStudio
altBop = !altBop; altBop = !altBop;
} }
targetBopBeat += 1; targetBopBeat += 1;
if (logoRevealed && logoHoverCollider.OverlapPoint(Camera.main.ScreenToWorldPoint(Input.mousePosition))) if ((!settingsPanel.IsOpen) && logoRevealed && logoHoverCollider.OverlapPoint(Camera.main.ScreenToWorldPoint(Input.mousePosition)))
{ {
SoundByte.PlayOneShotScheduled("count-ins/cowbell", AudioSettings.dspTime + BeatsToSecs(targetBopBeat - songPosBeat, bpm)); SoundByte.PlayOneShot("count-ins/cowbell");
} }
} }
} }
@ -162,7 +167,10 @@ namespace HeavenStudio
public void SettingsPressed() public void SettingsPressed()
{ {
// show the settings menu prefab settingsPanel.SwitchSettingsDialog();
// notes:
// gameplay settings currently don't work due to the overlay pereview requiring the screen composition setup from a gameplay prefab
// adding the attract screen will fix this since we'd need to add that prefab for it anyways
} }
public void QuitPressed() public void QuitPressed()

View file

@ -27,7 +27,7 @@ namespace HeavenStudio.Editor
{ {
SecretCounter++; SecretCounter++;
Debug.Log("SecretCounter: " + SecretCounter); Debug.Log("SecretCounter: " + SecretCounter);
if (SecretCounter == 10) if (SecretCounter == 10 && Editor.instance != null)
{ {
secretObject.SetActive(true); secretObject.SetActive(true);
} }