(Fix) Loading Screen

This commit is contained in:
2026-06-24 17:28:54 +02:00
parent 7291acab91
commit 144b3bfbc4
18 changed files with 1257 additions and 548 deletions
+354
View File
@@ -0,0 +1,354 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1467519895388300042
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4530942015993292516}
- component: {fileID: 640685929507075600}
- component: {fileID: 8004279594609801697}
- component: {fileID: 6210998126118184323}
m_Layer: 5
m_Name: RawImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4530942015993292516
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467519895388300042}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4330893296756181241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &640685929507075600
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467519895388300042}
m_CullTransparentMesh: 1
--- !u!114 &8004279594609801697
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467519895388300042}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.RawImage
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!328 &6210998126118184323
VideoPlayer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467519895388300042}
m_Enabled: 1
m_VideoClip: {fileID: 32900000, guid: b934ac5a789301e43ac6f471a318cd3b, type: 3}
m_TargetCameraAlpha: 1
m_TargetCamera3DLayout: 0
m_TargetCamera: {fileID: 0}
m_TargetTexture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
m_TimeReference: 0
m_TargetMaterialRenderer: {fileID: 0}
m_TargetMaterialProperty: <noninit>
m_RenderMode: 2
m_AspectRatio: 2
m_DataSource: 0
m_TimeUpdateMode: 2
m_PlaybackSpeed: 1
m_AudioOutputMode: 2
m_TargetAudioSources: []
m_DirectAudioVolumes: []
m_Url:
m_EnabledAudioTracks:
m_DirectAudioMutes:
m_ControlledAudioTrackCount: 0
m_PlayOnAwake: 0
m_SkipOnDrop: 1
m_Looping: 0
m_WaitForFirstFrame: 1
m_FrameReadyEventEnabled: 0
m_VideoShaders: []
--- !u!1 &3154080954364521771
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9193447597108539175}
- component: {fileID: 7588534362789153403}
- component: {fileID: 4709856196407652826}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9193447597108539175
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3154080954364521771}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6956993613265752017}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7588534362789153403
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3154080954364521771}
m_CullTransparentMesh: 1
--- !u!114 &4709856196407652826
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3154080954364521771}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3191702848673662068
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4330893296756181241}
m_Layer: 5
m_Name: Spach Screen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4330893296756181241
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3191702848673662068}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4530942015993292516}
m_Father: {fileID: 6956993613265752017}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8677966506035882811
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6956993613265752017}
- component: {fileID: 6133113902096782194}
- component: {fileID: 7806603601828432257}
- component: {fileID: 7021588227111962773}
- component: {fileID: 4438823835892580401}
- component: {fileID: 3061605827138363901}
m_Layer: 5
m_Name: SplashCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6956993613265752017
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
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: 9193447597108539175}
- {fileID: 4330893296756181241}
m_Father: {fileID: 0}
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!223 &6133113902096782194
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 5000
m_TargetDisplay: 0
--- !u!114 &7806603601828432257
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &7021588227111962773
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!225 &4438823835892580401
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &3061605827138363901
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8677966506035882811}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fa15413694b8834479471597e5ca825d, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SplashScreenController
videoPlayer: {fileID: 6210998126118184323}
videoImage: {fileID: 8004279594609801697}
renderTexture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
fadeOutDuration: 0.5
fadeOutEase: 5
@@ -1,6 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 20292f7ac06f54c4ea68d8e953565f86 guid: b0a7d152aef64334883a26c9c954d403
TextScriptImporter: PrefabImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
+447 -2
View File
@@ -144,6 +144,116 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 644616578240863000, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3} m_CorrespondingSourceObject: {fileID: 644616578240863000, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
m_PrefabInstance: {fileID: 2017677970} m_PrefabInstance: {fileID: 2017677970}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &932487654
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 3061605827138363901, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: fadeOutDuration
value: 0.75
objectReference: {fileID: 0}
- target: {fileID: 6133113902096782194, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_SortingOrder
value: 32767
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6956993613265752017, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8677966506035882811, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
propertyPath: m_Name
value: SplashCanvas
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
--- !u!1 &932487655 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 8677966506035882811, guid: b0a7d152aef64334883a26c9c954d403, type: 3}
m_PrefabInstance: {fileID: 932487654}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1431263253 --- !u!1 &1431263253
GameObject: GameObject:
m_ObjectHideFlags: 11 m_ObjectHideFlags: 11
@@ -200,6 +310,8 @@ MonoBehaviour:
- _gameObject: {fileID: 461851942} - _gameObject: {fileID: 461851942}
_prefab: Assets/Plugins/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED _prefab: Assets/Plugins/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED
- Module.prefab - Module.prefab
- _gameObject: {fileID: 932487655}
_prefab: Assets/GAME/Prefabs/UI/SplashCanvas.prefab
--- !u!4 &1431263255 --- !u!4 &1431263255
Transform: Transform:
m_ObjectHideFlags: 11 m_ObjectHideFlags: 11
@@ -215,6 +327,143 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1655756636
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1655756640}
- component: {fileID: 1655756639}
- component: {fileID: 1655756638}
- component: {fileID: 1655756637}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1655756637
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1655756636}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!81 &1655756638
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1655756636}
m_Enabled: 1
--- !u!20 &1655756639
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1655756636}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1655756640
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1655756636}
serializedVersion: 2
m_LocalRotation: {x: 0.0056904936, y: -0.001941351, z: -0.00008342272, w: -0.99998194}
m_LocalPosition: {x: 1274.0485, y: 702.55, z: -1533.1309}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2017677970 --- !u!1001 &2017677970
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -227,6 +476,30 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: Init_Manager value: Init_Manager
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488537520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488540520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3} - target: {fileID: 3491771655488540520, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.x propertyPath: m_AnchorMax.x
value: 0 value: 0
@@ -239,6 +512,114 @@ PrefabInstance:
propertyPath: m_AnchorMin.y propertyPath: m_AnchorMin.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488576394, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488595880, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488608470, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488612060, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488612060, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488612060, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488634692, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3491771655488794738, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3} - target: {fileID: 3491771655488794738, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0.000034332275 value: 0.000034332275
@@ -251,6 +632,66 @@ PrefabInstance:
propertyPath: m_Value propertyPath: m_Value
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3491771655516389002, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: startMinimized
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3491771655516389002, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: popupVisibility
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3491771655516389002, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: avoidScreenCutout
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705127471182616160, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3705224969354217102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4965406541838574643, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3} - target: {fileID: 4965406541838574643, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: 0
@@ -291,8 +732,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents:
m_RemovedGameObjects: [] - {fileID: 3491771655516414816, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
m_RemovedGameObjects:
- {fileID: 3491771655510529102, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 3fb44d71f7c08954d8dcf499eea57508, type: 3}
@@ -332,3 +775,5 @@ SceneRoots:
m_Roots: m_Roots:
- {fileID: 1431263255} - {fileID: 1431263255}
- {fileID: 2017677970} - {fileID: 2017677970}
- {fileID: 932487654}
- {fileID: 1655756640}
+82 -503
View File
@@ -44743,113 +44743,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 1943840481686832250, guid: b624eb0dda237994d8d9b91e71be14ea, type: 3} m_CorrespondingSourceObject: {fileID: 1943840481686832250, guid: b624eb0dda237994d8d9b91e71be14ea, type: 3}
m_PrefabInstance: {fileID: 1517619341} m_PrefabInstance: {fileID: 1517619341}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &254786487
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 254786488}
- component: {fileID: 254786490}
- component: {fileID: 254786489}
- component: {fileID: 254786491}
m_Layer: 5
m_Name: RawImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &254786488
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 254786487}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1317925562}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &254786489
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 254786487}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.RawImage
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!222 &254786490
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 254786487}
m_CullTransparentMesh: 1
--- !u!328 &254786491
VideoPlayer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 254786487}
m_Enabled: 1
m_VideoClip: {fileID: 32900000, guid: b934ac5a789301e43ac6f471a318cd3b, type: 3}
m_TargetCameraAlpha: 1
m_TargetCamera3DLayout: 0
m_TargetCamera: {fileID: 0}
m_TargetTexture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
m_TimeReference: 0
m_TargetMaterialRenderer: {fileID: 0}
m_TargetMaterialProperty: <noninit>
m_RenderMode: 2
m_AspectRatio: 2
m_DataSource: 0
m_TimeUpdateMode: 2
m_PlaybackSpeed: 1
m_AudioOutputMode: 2
m_TargetAudioSources: []
m_DirectAudioVolumes: []
m_Url:
m_EnabledAudioTracks:
m_DirectAudioMutes:
m_ControlledAudioTrackCount: 0
m_PlayOnAwake: 0
m_SkipOnDrop: 1
m_Looping: 0
m_WaitForFirstFrame: 1
m_FrameReadyEventEnabled: 0
m_VideoShaders: []
--- !u!1001 &254800006 --- !u!1001 &254800006
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -90512,7 +90405,6 @@ RectTransform:
- {fileID: 975457364} - {fileID: 975457364}
- {fileID: 177589890} - {fileID: 177589890}
- {fileID: 1000816234} - {fileID: 1000816234}
- {fileID: 1888798132}
- {fileID: 231042140} - {fileID: 231042140}
- {fileID: 97763626} - {fileID: 97763626}
m_Father: {fileID: 1036516496} m_Father: {fileID: 1036516496}
@@ -133226,81 +133118,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 3552718611955523198, guid: 56f986943fa82864394e61d72414fd0a, type: 3} m_CorrespondingSourceObject: {fileID: 3552718611955523198, guid: 56f986943fa82864394e61d72414fd0a, type: 3}
m_PrefabInstance: {fileID: 463224892} m_PrefabInstance: {fileID: 463224892}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &769435689
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 769435690}
- component: {fileID: 769435692}
- component: {fileID: 769435691}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &769435690
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 769435689}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1082966175}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &769435691
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 769435689}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &769435692
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 769435689}
m_CullTransparentMesh: 1
--- !u!1001 &769877267 --- !u!1001 &769877267
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -136239,7 +136056,6 @@ MonoBehaviour:
- {fileID: 975457365} - {fileID: 975457365}
- {fileID: 177589891} - {fileID: 177589891}
- {fileID: 1000816235} - {fileID: 1000816235}
- {fileID: 1888798133}
- {fileID: 231042141} - {fileID: 231042141}
defaultPanel: {fileID: 1270833944} defaultPanel: {fileID: 1270833944}
escapeFallbackPanel: {fileID: 0} escapeFallbackPanel: {fileID: 0}
@@ -175594,7 +175410,6 @@ Transform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 527371216} - {fileID: 527371216}
- {fileID: 1082966175}
- {fileID: 1978709205} - {fileID: 1978709205}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -184515,140 +184330,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 31030231758592610, guid: 73362c9b46a5b1d47a67e05320cbf324, type: 3} m_CorrespondingSourceObject: {fileID: 31030231758592610, guid: 73362c9b46a5b1d47a67e05320cbf324, type: 3}
m_PrefabInstance: {fileID: 479434487} m_PrefabInstance: {fileID: 479434487}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &1082966171
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1082966175}
- component: {fileID: 1082966174}
- component: {fileID: 1082966173}
- component: {fileID: 1082966172}
- component: {fileID: 1082966177}
- component: {fileID: 1082966176}
m_Layer: 5
m_Name: SplashCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!114 &1082966172
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &1082966173
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &1082966174
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 5000
m_TargetDisplay: 0
--- !u!224 &1082966175
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
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: 769435690}
- {fileID: 1317925562}
m_Father: {fileID: 1036516496}
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 &1082966176
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fa15413694b8834479471597e5ca825d, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SplashScreenController
videoPlayer: {fileID: 254786491}
videoImage: {fileID: 254786489}
renderTexture: {fileID: 8400000, guid: fa5cab9dda2f0a44880e1720b84d1305, type: 2}
fadeOutDuration: 0.5
fadeOutEase: 5
--- !u!225 &1082966177
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1082966171}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1001 &1082984588 --- !u!1001 &1082984588
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -200886,7 +200567,6 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1864310051}
- {fileID: 788705990} - {fileID: 788705990}
- {fileID: 47787598} - {fileID: 47787598}
- {fileID: 1781598443} - {fileID: 1781598443}
@@ -221037,42 +220717,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 1865462917792640134, guid: 3509cc298abc88947a6039b32df1582e, type: 3} m_CorrespondingSourceObject: {fileID: 1865462917792640134, guid: 3509cc298abc88947a6039b32df1582e, type: 3}
m_PrefabInstance: {fileID: 1069808220} m_PrefabInstance: {fileID: 1069808220}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &1317925561
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1317925562}
m_Layer: 5
m_Name: Spach Screen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1317925562
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1317925561}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 254786488}
m_Father: {fileID: 1082966175}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &1318081467 --- !u!1001 &1318081467
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -257908,6 +257552,85 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 31030231758592610, guid: 73362c9b46a5b1d47a67e05320cbf324, type: 3} m_CorrespondingSourceObject: {fileID: 31030231758592610, guid: 73362c9b46a5b1d47a67e05320cbf324, type: 3}
m_PrefabInstance: {fileID: 465916992} m_PrefabInstance: {fileID: 465916992}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &1471463644
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1471463647}
- component: {fileID: 1471463646}
- component: {fileID: 1471463645}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1471463645
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471463644}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!114 &1471463646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471463644}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1471463647
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471463644}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1471483972 stripped --- !u!1 &1471483972 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 3608565221961673181, guid: ed38accba62b7c94184fc0834de42aa7, type: 3} m_CorrespondingSourceObject: {fileID: 3608565221961673181, guid: ed38accba62b7c94184fc0834de42aa7, type: 3}
@@ -325229,85 +324952,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 114002040} m_Father: {fileID: 114002040}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1864310048
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1864310051}
- component: {fileID: 1864310050}
- component: {fileID: 1864310049}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1864310049
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1864310048}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!114 &1864310050
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1864310048}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1864310051
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1864310048}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -49.00837, y: 0, z: -48.92608}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1190823797}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1864385754 stripped --- !u!1 &1864385754 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 7848062430336066766, guid: 72699399f6de5954aa85fd6e6fe905fe, type: 3} m_CorrespondingSourceObject: {fileID: 7848062430336066766, guid: 72699399f6de5954aa85fd6e6fe905fe, type: 3}
@@ -328835,73 +328479,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 3608565221961673181, guid: ed38accba62b7c94184fc0834de42aa7, type: 3} m_CorrespondingSourceObject: {fileID: 3608565221961673181, guid: ed38accba62b7c94184fc0834de42aa7, type: 3}
m_PrefabInstance: {fileID: 1189315893} m_PrefabInstance: {fileID: 1189315893}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &1888798131
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1888798132}
- component: {fileID: 1888798134}
- component: {fileID: 1888798133}
m_Layer: 5
m_Name: 'CreditsPanel '
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1888798132
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1888798131}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 527371216}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1888798133
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1888798131}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 657a2ad4cbef2c741bb6ef740874225b, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::CreditsPanel
showDuration: 0.25
hideDuration: 0.15
showEase: 27
hideEase: 5
showScaleFrom: 0.9
backButton: {fileID: 0}
--- !u!225 &1888798134
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1888798131}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 0
m_IgnoreParentGroups: 0
--- !u!1 &1888958765 stripped --- !u!1 &1888958765 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 3552718611955523198, guid: 56f986943fa82864394e61d72414fd0a, type: 3} m_CorrespondingSourceObject: {fileID: 3552718611955523198, guid: 56f986943fa82864394e61d72414fd0a, type: 3}
@@ -343604,7 +343181,7 @@ Canvas:
m_AdditionalShaderChannelsFlag: 25 m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0 m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingOrder: 0 m_SortingOrder: 8000
m_TargetDisplay: 0 m_TargetDisplay: 0
--- !u!114 &1978709209 --- !u!114 &1978709209
MonoBehaviour: MonoBehaviour:
@@ -343625,6 +343202,7 @@ MonoBehaviour:
fadeInEase: 6 fadeInEase: 6
fadeOutEase: 5 fadeOutEase: 5
minimumDisplayTime: 1.5 minimumDisplayTime: 1.5
settleDelay: 0.75
quoteDuration: 4 quoteDuration: 4
quoteFadeDuration: 0.4 quoteFadeDuration: 0.4
--- !u!225 &1978709210 --- !u!225 &1978709210
@@ -371860,3 +371438,4 @@ SceneRoots:
- {fileID: 1036516496} - {fileID: 1036516496}
- {fileID: 114002040} - {fileID: 114002040}
- {fileID: 1373238770} - {fileID: 1373238770}
- {fileID: 1471463647}
Binary file not shown.
@@ -1,3 +1,4 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using FishNet; using FishNet;
using FishNet.Connection; using FishNet.Connection;
@@ -29,6 +30,10 @@ namespace Ashwild.Network
[Tooltip("The single source of truth for the gameplay scene loaded over the network.")] [Tooltip("The single source of truth for the gameplay scene loaded over the network.")]
[SerializeField] private string gameSceneName = "TestScene"; [SerializeField] private string gameSceneName = "TestScene";
[Tooltip("Max seconds to wait for the loading curtain to fully fade in before loading the game " +
"scene anyway. Safety net so a missing/disabled LoadingScreen can never soft-lock the host.")]
[SerializeField] private float curtainWaitTimeout = 3f;
[Header("Player")] [Header("Player")]
[Tooltip("The networked player prefab (NetworkObject + PlayerNetworkController).")] [Tooltip("The networked player prefab (NetworkObject + PlayerNetworkController).")]
[SerializeField] private NetworkObject playerPrefab; [SerializeField] private NetworkObject playerPrefab;
@@ -61,6 +66,12 @@ namespace Ashwild.Network
/// </summary> /// </summary>
private bool pendingSceneLoad; private bool pendingSceneLoad;
/// <summary>
/// Set once the loading curtain has fully faded in; gates the heavy game scene load so the
/// activation freeze happens behind an opaque curtain. Reset at the start of every host launch.
/// </summary>
private bool curtainShown;
/// <summary> /// <summary>
/// Round-robin cursor over the available spawn points. /// Round-robin cursor over the available spawn points.
/// </summary> /// </summary>
@@ -107,6 +118,7 @@ namespace Ashwild.Network
networkManager.ServerManager.OnRemoteConnectionState += HandleRemoteState; networkManager.ServerManager.OnRemoteConnectionState += HandleRemoteState;
networkManager.ClientManager.OnClientConnectionState += HandleClientState; networkManager.ClientManager.OnClientConnectionState += HandleClientState;
networkManager.SceneManager.OnClientPresenceChangeEnd += HandleClientPresenceEnd; networkManager.SceneManager.OnClientPresenceChangeEnd += HandleClientPresenceEnd;
PlayerEvents.LoadingCurtainShown += HandleLoadingCurtainShown;
} }
/// <summary> /// <summary>
@@ -120,6 +132,7 @@ namespace Ashwild.Network
networkManager.ServerManager.OnRemoteConnectionState -= HandleRemoteState; networkManager.ServerManager.OnRemoteConnectionState -= HandleRemoteState;
networkManager.ClientManager.OnClientConnectionState -= HandleClientState; networkManager.ClientManager.OnClientConnectionState -= HandleClientState;
networkManager.SceneManager.OnClientPresenceChangeEnd -= HandleClientPresenceEnd; networkManager.SceneManager.OnClientPresenceChangeEnd -= HandleClientPresenceEnd;
PlayerEvents.LoadingCurtainShown -= HandleLoadingCurtainShown;
} }
/// <summary> /// <summary>
@@ -151,6 +164,7 @@ namespace Ashwild.Network
PlayerEvents.RaiseSessionStarting(); PlayerEvents.RaiseSessionStarting();
Log("Starting host (server + client) over Steam…"); Log("Starting host (server + client) over Steam…");
curtainShown = false;
pendingSceneLoad = true; pendingSceneLoad = true;
bool serverOk = networkManager.ServerManager.StartConnection(); bool serverOk = networkManager.ServerManager.StartConnection();
@@ -215,6 +229,26 @@ namespace Ashwild.Network
if (networkManager.ServerManager.Started) networkManager.ServerManager.StopConnection(true); if (networkManager.ServerManager.Started) networkManager.ServerManager.StopConnection(true);
} }
/// <summary>
/// Leaves the current session and returns to the menu scene behind the loading curtain. Mirrors
/// the host launch: it raises the curtain, waits for it to fully fade in (so the menu-load freeze
/// is hidden), tears the session down, loads the menu, then signals MenuReady to drop the curtain.
/// Orchestrated here — not on the per-scene GameUIManager — because this object persists across
/// the scene swap while the caller is destroyed by the load.
/// </summary>
public void ReturnToMenu(string menuSceneName)
{
if (string.IsNullOrWhiteSpace(menuSceneName))
{
Debug.LogError("[NetworkSession] ReturnToMenu called with no menu scene name.", this);
return;
}
PlayerEvents.RaiseReturningToMenu();
curtainShown = false;
StartCoroutine(ReturnToMenuRoutine(menuSceneName));
}
#endregion #endregion
#region Connection Handlers #region Connection Handlers
@@ -235,7 +269,7 @@ namespace Ashwild.Network
if (pendingSceneLoad) if (pendingSceneLoad)
{ {
pendingSceneLoad = false; pendingSceneLoad = false;
LoadGameSceneNetworked(); StartCoroutine(LoadGameSceneWhenCurtainShown());
} }
} }
else if (args.ConnectionState == LocalConnectionState.Stopped) else if (args.ConnectionState == LocalConnectionState.Stopped)
@@ -268,6 +302,12 @@ namespace Ashwild.Network
} }
} }
/// <summary>
/// The loading curtain finished fading in — release the gate so the deferred game scene
/// load can proceed (see <see cref="LoadGameSceneWhenCurtainShown"/>).
/// </summary>
private void HandleLoadingCurtainShown() => curtainShown = true;
/// <summary> /// <summary>
/// A *remote* client connected to or disconnected from our server; updates the count. /// A *remote* client connected to or disconnected from our server; updates the count.
/// </summary> /// </summary>
@@ -343,6 +383,53 @@ namespace Ashwild.Network
#region Internal Helpers #region Internal Helpers
/// <summary>
/// Defers the heavy networked scene load until the loading curtain has fully faded in
/// (PlayerEvents.LoadingCurtainShown), so the unavoidable activation freeze of a big scene
/// happens behind an already-opaque curtain instead of stalling the frame the curtain was
/// meant to appear on. Falls back to loading anyway after <see cref="curtainWaitTimeout"/> so
/// a missing or disabled LoadingScreen can never soft-lock the host. Runs on unscaled time.
/// </summary>
private IEnumerator LoadGameSceneWhenCurtainShown()
{
float start = Time.unscaledTime;
while (!curtainShown && Time.unscaledTime - start < curtainWaitTimeout)
yield return null;
if (!curtainShown)
Log($"Loading curtain not reported within {curtainWaitTimeout}s — loading scene anyway.");
LoadGameSceneNetworked();
}
/// <summary>
/// Waits for the curtain to fully fade in (or the timeout), tears the session down, loads the
/// menu scene locally (Single — the persistent NetworkManager survives), then raises MenuReady
/// so the curtain drops once the menu is up. Runs on the persistent NetworkManager object so it
/// outlives the game scene being unloaded. Uses unscaled time.
/// </summary>
private IEnumerator ReturnToMenuRoutine(string menuSceneName)
{
float start = Time.unscaledTime;
while (!curtainShown && Time.unscaledTime - start < curtainWaitTimeout)
yield return null;
StopSession();
AsyncOperation op = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(menuSceneName, LoadSceneMode.Single);
if (op != null)
{
while (!op.isDone)
yield return null;
}
else
{
Debug.LogError($"[NetworkSession] Could not load menu scene '{menuSceneName}' — is it in Build Settings?", this);
}
PlayerEvents.RaiseMenuReady();
}
/// <summary> /// <summary>
/// Loads the gameplay scene as a global networked scene, replacing the menu. /// Loads the gameplay scene as a global networked scene, replacing the menu.
/// </summary> /// </summary>
@@ -150,6 +150,9 @@ namespace Ashwild.Player
public static event Action<string> SessionError; // human-readable failure reason public static event Action<string> SessionError; // human-readable failure reason
public static event Action<int> RemotePlayerCountChanged; // number of *other* connected clients public static event Action<int> RemotePlayerCountChanged; // number of *other* connected clients
public static event Action LocalPlayerSpawned; // the local owned player NetworkObject is ready public static event Action LocalPlayerSpawned; // the local owned player NetworkObject is ready
public static event Action LoadingCurtainShown; // loading curtain finished fading in — safe to start the heavy scene load behind it
public static event Action ReturningToMenu; // leaving the session back to the menu — raise the curtain over the swap
public static event Action MenuReady; // the menu scene has finished loading — lower the curtain
public static event Action<ulong, string, string> InviteReceived; // inviter SteamID64, inviter name, connect code public static event Action<ulong, string, string> InviteReceived; // inviter SteamID64, inviter name, connect code
// ============================================================ // ============================================================
@@ -330,6 +333,9 @@ namespace Ashwild.Player
public static void RaiseSessionError(string reason) { Log(nameof(SessionError)); SessionError?.Invoke(reason); } public static void RaiseSessionError(string reason) { Log(nameof(SessionError)); SessionError?.Invoke(reason); }
public static void RaiseRemotePlayerCountChanged(int count) { Log(nameof(RemotePlayerCountChanged)); RemotePlayerCountChanged?.Invoke(count); } public static void RaiseRemotePlayerCountChanged(int count) { Log(nameof(RemotePlayerCountChanged)); RemotePlayerCountChanged?.Invoke(count); }
public static void RaiseLocalPlayerSpawned() { Log(nameof(LocalPlayerSpawned)); LocalPlayerSpawned?.Invoke(); } public static void RaiseLocalPlayerSpawned() { Log(nameof(LocalPlayerSpawned)); LocalPlayerSpawned?.Invoke(); }
public static void RaiseLoadingCurtainShown() { Log(nameof(LoadingCurtainShown)); LoadingCurtainShown?.Invoke(); }
public static void RaiseReturningToMenu() { Log(nameof(ReturningToMenu)); ReturningToMenu?.Invoke(); }
public static void RaiseMenuReady() { Log(nameof(MenuReady)); MenuReady?.Invoke(); }
/// <summary> /// <summary>
/// A friend invited the local player to their session (delivered by Steam). Carries the /// A friend invited the local player to their session (delivered by Steam). Carries the
+8 -2
View File
@@ -147,13 +147,19 @@ namespace Ashwild.UI
} }
/// <summary> /// <summary>
/// Leaves the session and returns to the main menu scene. /// Leaves the session and returns to the main menu scene behind the loading curtain. The
/// transition is owned by the persistent NetworkSessionManager (it survives the scene swap,
/// this manager does not); falls back to a direct, uncovered load only if it is missing.
/// </summary> /// </summary>
public void QuitToMenu() public void QuitToMenu()
{ {
if (NetworkSessionManager.Instance != null) if (NetworkSessionManager.Instance != null)
NetworkSessionManager.Instance.StopSession(); {
NetworkSessionManager.Instance.ReturnToMenu(menuSceneName);
return;
}
Debug.LogWarning("[GameUIManager] NetworkSessionManager missing — loading menu directly without the loading curtain.", this);
SceneManager.LoadScene(menuSceneName); SceneManager.LoadScene(menuSceneName);
} }
+84 -13
View File
@@ -15,9 +15,11 @@ namespace Ashwild.UI
/// switch behind a quote-cycling curtain. /// switch behind a quote-cycling curtain.
/// ///
/// Place it on its own high-sorting-order Canvas in the menu scene (mirror SplashScreenController). /// Place it on its own high-sorting-order Canvas in the menu scene (mirror SplashScreenController).
/// It is driven entirely by the PlayerEvents bus: SessionStarting/SessionJoining raise it, /// It is driven entirely by the PlayerEvents bus: SessionStarting/SessionJoining raise it for the
/// LocalPlayerSpawned lowers it, and SessionError/SessionStopped lower it as a safety net so a /// menu→game transition (lowered by LocalPlayerSpawned), and ReturningToMenu raises it for the
/// failed host never leaves the player stuck behind the curtain. /// game→menu transition (lowered by MenuReady once the menu has loaded). SessionError lowers it as
/// a safety net so a failed host never leaves the player stuck behind the curtain; SessionStopped
/// does the same except while a return-to-menu is in flight, where that teardown event is expected.
/// </summary> /// </summary>
[DisallowMultipleComponent] [DisallowMultipleComponent]
[RequireComponent(typeof(CanvasGroup))] [RequireComponent(typeof(CanvasGroup))]
@@ -41,6 +43,12 @@ namespace Ashwild.UI
[Tooltip("Minimum time the curtain stays up once raised, so an instant load doesn't flash.")] [Tooltip("Minimum time the curtain stays up once raised, so an instant load doesn't flash.")]
[SerializeField] private float minimumDisplayTime = 1.5f; [SerializeField] private float minimumDisplayTime = 1.5f;
[Tooltip("Extra time the curtain holds after the ready signal (player spawned / menu loaded) " +
"before fading out, so the scene's first heavy frames (object pop-in, shader warmup) " +
"settle behind it instead of stuttering on screen. Stacks as the max with the " +
"remaining minimum display time.")]
[SerializeField] private float settleDelay = 0.75f;
[Header("Quote Cycling")] [Header("Quote Cycling")]
[Tooltip("How long each quote stays on screen before swapping to the next.")] [Tooltip("How long each quote stays on screen before swapping to the next.")]
[SerializeField] private float quoteDuration = 4f; [SerializeField] private float quoteDuration = 4f;
@@ -68,6 +76,13 @@ namespace Ashwild.UI
/// </summary> /// </summary>
private float shownAt; private float shownAt;
/// <summary>
/// True while the curtain is covering a return-to-menu transition. SessionStopped fires during
/// that teardown, so this flag tells the curtain to ignore it and wait for MenuReady instead —
/// otherwise the curtain would drop the instant the session stopped, before the menu has loaded.
/// </summary>
private bool awaitingMenu;
/// <summary> /// <summary>
/// Index of the quote currently displayed, so the next pick can avoid repeating it. /// Index of the quote currently displayed, so the next pick can avoid repeating it.
/// </summary> /// </summary>
@@ -82,6 +97,12 @@ namespace Ashwild.UI
/// <summary> /// <summary>
/// Enforces the singleton, persists across the menu→game scene swap, and starts hidden. /// Enforces the singleton, persists across the menu→game scene swap, and starts hidden.
///
/// Detaches to a root object before <see cref="Object.DontDestroyOnLoad"/>: that call is a
/// no-op on a child, so a nested curtain would be destroyed the moment FishNet unloads the menu
/// (ReplaceOption.All) — leaving the load uncovered and, later, no curtain at all to raise on
/// the return to menu. Promoting it here keeps the scene authoring free to nest it under a
/// layout object while still guaranteeing it survives every scene swap.
/// </summary> /// </summary>
private void Awake() private void Awake()
{ {
@@ -91,6 +112,7 @@ namespace Ashwild.UI
return; return;
} }
instance = this; instance = this;
transform.SetParent(null, false);
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
canvasGroup = GetComponent<CanvasGroup>(); canvasGroup = GetComponent<CanvasGroup>();
@@ -107,6 +129,8 @@ namespace Ashwild.UI
PlayerEvents.SessionStarting += HandleSessionBeginning; PlayerEvents.SessionStarting += HandleSessionBeginning;
PlayerEvents.SessionJoining += HandleSessionJoining; PlayerEvents.SessionJoining += HandleSessionJoining;
PlayerEvents.LocalPlayerSpawned += HandleLocalPlayerSpawned; PlayerEvents.LocalPlayerSpawned += HandleLocalPlayerSpawned;
PlayerEvents.ReturningToMenu += HandleReturningToMenu;
PlayerEvents.MenuReady += HandleMenuReady;
PlayerEvents.SessionError += HandleSessionError; PlayerEvents.SessionError += HandleSessionError;
PlayerEvents.SessionStopped += HandleSessionStopped; PlayerEvents.SessionStopped += HandleSessionStopped;
} }
@@ -119,6 +143,8 @@ namespace Ashwild.UI
PlayerEvents.SessionStarting -= HandleSessionBeginning; PlayerEvents.SessionStarting -= HandleSessionBeginning;
PlayerEvents.SessionJoining -= HandleSessionJoining; PlayerEvents.SessionJoining -= HandleSessionJoining;
PlayerEvents.LocalPlayerSpawned -= HandleLocalPlayerSpawned; PlayerEvents.LocalPlayerSpawned -= HandleLocalPlayerSpawned;
PlayerEvents.ReturningToMenu -= HandleReturningToMenu;
PlayerEvents.MenuReady -= HandleMenuReady;
PlayerEvents.SessionError -= HandleSessionError; PlayerEvents.SessionError -= HandleSessionError;
PlayerEvents.SessionStopped -= HandleSessionStopped; PlayerEvents.SessionStopped -= HandleSessionStopped;
} }
@@ -140,12 +166,30 @@ namespace Ashwild.UI
/// <summary> /// <summary>
/// Raises the curtain when the local player starts hosting a session. /// Raises the curtain when the local player starts hosting a session.
/// </summary> /// </summary>
private void HandleSessionBeginning() => Show(); private void HandleSessionBeginning()
{
awaitingMenu = false;
Show();
}
/// <summary> /// <summary>
/// Raises the curtain when the local player begins joining a remote session. /// Raises the curtain when the local player begins joining a remote session.
/// </summary> /// </summary>
private void HandleSessionJoining(string code) => Show(); private void HandleSessionJoining(string code)
{
awaitingMenu = false;
Show();
}
/// <summary>
/// Raises the curtain over a return-to-menu transition and arms the wait for MenuReady, so the
/// upcoming SessionStopped (part of the teardown) does not drop it prematurely.
/// </summary>
private void HandleReturningToMenu()
{
awaitingMenu = true;
Show();
}
/// <summary> /// <summary>
/// Lowers the curtain once the local player has spawned into the loaded game scene. /// Lowers the curtain once the local player has spawned into the loaded game scene.
@@ -153,14 +197,32 @@ namespace Ashwild.UI
private void HandleLocalPlayerSpawned() => Hide(); private void HandleLocalPlayerSpawned() => Hide();
/// <summary> /// <summary>
/// Safety net: a connection failure must drop the curtain so the menu becomes usable again. /// Lowers the curtain once the menu scene has finished loading on a return-to-menu transition.
/// </summary> /// </summary>
private void HandleSessionError(string reason) => Hide(); private void HandleMenuReady()
{
awaitingMenu = false;
Hide();
}
/// <summary> /// <summary>
/// Safety net: if the session tears down before a player spawns, never leave the curtain up. /// Safety net: a connection failure must drop the curtain so the menu becomes usable again.
/// </summary> /// </summary>
private void HandleSessionStopped() => Hide(); private void HandleSessionError(string reason)
{
awaitingMenu = false;
Hide();
}
/// <summary>
/// Safety net for a session that tears down before a player spawns. Skipped while returning to
/// the menu, where SessionStopped is expected and the curtain must stay up until MenuReady.
/// </summary>
private void HandleSessionStopped()
{
if (awaitingMenu) return;
Hide();
}
#endregion #endregion
@@ -169,6 +231,12 @@ namespace Ashwild.UI
/// <summary> /// <summary>
/// Fades the curtain in (blocking input underneath) and starts cycling quotes. Ignored when /// Fades the curtain in (blocking input underneath) and starts cycling quotes. Ignored when
/// already shown so re-entrant session events don't restart the animation. /// already shown so re-entrant session events don't restart the animation.
///
/// Raises <see cref="PlayerEvents.LoadingCurtainShown"/> only once the fade-in has fully
/// completed: NetworkSessionManager waits for that signal before kicking off the heavy game
/// scene load, so the unavoidable activation freeze always happens behind an already-opaque
/// curtain instead of stalling the very frame the curtain was meant to appear on. Killing the
/// tween early (an instant Hide) suppresses the signal, which is the intended behaviour.
/// </summary> /// </summary>
private void Show() private void Show()
{ {
@@ -182,15 +250,18 @@ namespace Ashwild.UI
curtainTween = canvasGroup.DOFade(1f, fadeInDuration) curtainTween = canvasGroup.DOFade(1f, fadeInDuration)
.SetEase(fadeInEase) .SetEase(fadeInEase)
.SetUpdate(true); .SetUpdate(true)
.OnComplete(PlayerEvents.RaiseLoadingCurtainShown);
ShowNextQuote(instant: true); ShowNextQuote(instant: true);
StartQuoteCycle(); StartQuoteCycle();
} }
/// <summary> /// <summary>
/// Fades the curtain out and stops the quote cycle. Honours the minimum display time so an /// Fades the curtain out and stops the quote cycle. The fade is delayed by the larger of the
/// instant load still shows the loading screen for a readable beat instead of flashing. /// remaining minimum display time (so an instant load still shows the curtain for a readable
/// beat instead of flashing) and the settle delay (so the scene's first heavy frames after the
/// ready signal happen behind the curtain rather than stuttering on screen).
/// </summary> /// </summary>
private void Hide() private void Hide()
{ {
@@ -198,7 +269,7 @@ namespace Ashwild.UI
isShown = false; isShown = false;
float elapsed = Time.unscaledTime - shownAt; float elapsed = Time.unscaledTime - shownAt;
float delay = Mathf.Max(0f, minimumDisplayTime - elapsed); float delay = Mathf.Max(settleDelay, minimumDisplayTime - elapsed);
curtainTween?.Kill(); curtainTween?.Kill();
curtainTween = canvasGroup.DOFade(0f, fadeOutDuration) curtainTween = canvasGroup.DOFade(0f, fadeOutDuration)
+179 -12
View File
@@ -1,58 +1,171 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.Video; using UnityEngine.Video;
using UnityEngine.SceneManagement;
using DG.Tweening; using DG.Tweening;
namespace Ashwild.UI namespace Ashwild.UI
{ {
/// <summary> /// <summary>
/// Plays a full-screen splash video at launch, then fades out to reveal the menu underneath. /// Boot splash: plays a full-screen video at launch while loading the menu scene additively in
/// Decoupled from UIManager: it lives on its own high-sorting-order Canvas and simply covers /// the background, then hands off to it. It lives on its own high-sorting-order Canvas in a tiny
/// the menu until the clip ends. /// bootstrap scene (0_Init) so the menu — and the persistent objects it carries (NetworkManager,
/// NetworkSessionManager, LoadingScreen) — initialize hidden beneath the splash. Once BOTH the
/// video has ended AND the menu scene has finished loading, it fades out, makes the menu the
/// active scene, and unloads its own bootstrap scene.
///
/// Loading the menu in parallel (not after) means the splash playback time doubles as the menu's
/// loading screen, so the swap is seamless with no black flash. When <see cref="menuSceneName"/>
/// is left empty the controller falls back to legacy overlay mode: it simply fades out to reveal
/// a menu already present in the same scene, and never unloads anything.
/// </summary> /// </summary>
[DisallowMultipleComponent]
[RequireComponent(typeof(CanvasGroup))] [RequireComponent(typeof(CanvasGroup))]
public class SplashScreenController : MonoBehaviour public class SplashScreenController : MonoBehaviour
{ {
#region Serialized Fields
[Header("References")] [Header("References")]
[SerializeField] private VideoPlayer videoPlayer; [SerializeField] private VideoPlayer videoPlayer;
[SerializeField] private RawImage videoImage; [SerializeField] private RawImage videoImage;
[SerializeField] private RenderTexture renderTexture; [SerializeField] private RenderTexture renderTexture;
[Header("Boot")]
[Tooltip("Menu scene to load additively while the splash plays, then hand off to. Leave empty " +
"for legacy overlay mode (fade out to reveal a menu already in this scene).")]
[SerializeField] private string menuSceneName = "MenuScene";
[Header("Fade Out")] [Header("Fade Out")]
[SerializeField] private float fadeOutDuration = 0.5f; [SerializeField] private float fadeOutDuration = 0.5f;
[SerializeField] private Ease fadeOutEase = Ease.InQuad; [SerializeField] private Ease fadeOutEase = Ease.InQuad;
#endregion
#region State
private CanvasGroup canvasGroup; private CanvasGroup canvasGroup;
/// <summary>
/// True once the handoff (fade out + unload) has begun, so it can never run twice.
/// </summary>
private bool finished; private bool finished;
/// <summary>
/// True once the splash video has ended (or was skipped because none is assigned).
/// </summary>
private bool videoFinished;
/// <summary>
/// True once the menu scene has finished loading (or immediately in legacy overlay mode).
/// </summary>
private bool menuReady;
private Tween fadeTween;
#endregion
#region Unity Lifecycle
/// <summary>
/// Caches the CanvasGroup and covers the screen immediately so whatever loads underneath
/// (the menu) initializes hidden.
/// </summary>
private void Awake() private void Awake()
{ {
canvasGroup = GetComponent<CanvasGroup>(); canvasGroup = GetComponent<CanvasGroup>();
// Cover everything immediately so the menu initializes hidden underneath.
canvasGroup.alpha = 1f; canvasGroup.alpha = 1f;
canvasGroup.blocksRaycasts = true; canvasGroup.blocksRaycasts = true;
canvasGroup.interactable = true; canvasGroup.interactable = true;
} }
/// <summary>
/// Subscribes to the video end event.
/// </summary>
private void OnEnable() private void OnEnable()
{ {
if (videoPlayer != null) if (videoPlayer != null)
videoPlayer.loopPointReached += OnVideoFinished; videoPlayer.loopPointReached += OnVideoFinished;
} }
/// <summary>
/// Unsubscribes — mirrors OnEnable exactly.
/// </summary>
private void OnDisable() private void OnDisable()
{ {
if (videoPlayer != null) if (videoPlayer != null)
videoPlayer.loopPointReached -= OnVideoFinished; videoPlayer.loopPointReached -= OnVideoFinished;
} }
/// <summary>
/// Kicks off the background menu load and starts the splash video in parallel.
/// </summary>
private void Start() private void Start()
{
BeginMenuLoad();
BeginVideo();
}
/// <summary>
/// Kills the fade tween so it never animates a destroyed CanvasGroup on teardown.
/// </summary>
private void OnDestroy() => fadeTween?.Kill();
#endregion
#region Menu Load
/// <summary>
/// Starts loading the menu scene additively. Overlay mode (no scene name, or the splash already
/// lives in the menu scene) marks the menu ready at once and never loads/unloads anything — this
/// also guards against a misconfiguration where the splash sits in the menu scene yet names it,
/// which would otherwise make the handoff unload the menu out from under itself. An already-loaded
/// target is likewise treated as ready, guarding against a double-load.
/// </summary>
private void BeginMenuLoad()
{
if (IsOverlayMode())
{
menuReady = true;
return;
}
if (SceneManager.GetSceneByName(menuSceneName).isLoaded)
{
menuReady = true;
return;
}
AsyncOperation op = SceneManager.LoadSceneAsync(menuSceneName, LoadSceneMode.Additive);
if (op == null)
{
Debug.LogError($"[Splash] Could not start loading menu scene '{menuSceneName}' — is it in Build Settings?", this);
menuReady = true;
return;
}
op.completed += _ =>
{
menuReady = true;
TryHandoff();
};
}
#endregion
#region Video
/// <summary>
/// Prepares and plays the splash video, preparing first to avoid a black flash on the first
/// frame. When no player/clip is assigned the video step is skipped so the handoff still runs.
/// </summary>
private void BeginVideo()
{ {
if (videoPlayer == null || videoPlayer.clip == null) if (videoPlayer == null || videoPlayer.clip == null)
{ {
Debug.LogWarning("SplashScreenController: no VideoPlayer/clip assigned, skipping splash."); Debug.LogWarning("[Splash] No VideoPlayer/clip assigned skipping splash video.", this);
FadeOut(); videoFinished = true;
TryHandoff();
return; return;
} }
@@ -60,11 +173,13 @@ namespace Ashwild.UI
videoPlayer.renderMode = VideoRenderMode.RenderTexture; videoPlayer.renderMode = VideoRenderMode.RenderTexture;
videoPlayer.targetTexture = renderTexture; videoPlayer.targetTexture = renderTexture;
// Prepare first to avoid a black flash / stutter on the first frame.
videoPlayer.prepareCompleted += OnPrepared; videoPlayer.prepareCompleted += OnPrepared;
videoPlayer.Prepare(); videoPlayer.Prepare();
} }
/// <summary>
/// Plays the clip once it is prepared.
/// </summary>
private void OnPrepared(VideoPlayer vp) private void OnPrepared(VideoPlayer vp)
{ {
vp.prepareCompleted -= OnPrepared; vp.prepareCompleted -= OnPrepared;
@@ -73,23 +188,75 @@ namespace Ashwild.UI
vp.Play(); vp.Play();
} }
private void OnVideoFinished(VideoPlayer vp) => FadeOut(); /// <summary>
/// Marks the video done and attempts the handoff.
/// </summary>
private void OnVideoFinished(VideoPlayer vp)
{
videoFinished = true;
TryHandoff();
}
private void FadeOut() #endregion
#region Handoff
/// <summary>
/// Fades out and hands off only once both the video has ended and the menu is loaded, so the
/// splash never cuts the menu's load short nor lingers after the clip.
/// </summary>
private void TryHandoff()
{ {
if (finished) return; if (finished) return;
if (!videoFinished || !menuReady) return;
FadeOutAndHandoff();
}
/// <summary>
/// Fades the curtain out, then makes the menu the active scene and unloads this bootstrap
/// scene (in overlay mode it just deactivates itself, leaving the surrounding scene intact).
/// </summary>
private void FadeOutAndHandoff()
{
finished = true; finished = true;
canvasGroup.blocksRaycasts = false; canvasGroup.blocksRaycasts = false;
canvasGroup.interactable = false; canvasGroup.interactable = false;
canvasGroup.DOFade(0f, fadeOutDuration) fadeTween = canvasGroup.DOFade(0f, fadeOutDuration)
.SetEase(fadeOutEase) .SetEase(fadeOutEase)
.OnComplete(() => .OnComplete(CompleteHandoff);
}
/// <summary>
/// Stops the video and either unloads this bootstrap scene (after promoting the menu to the
/// active scene) or simply deactivates the overlay when running in legacy overlay mode.
/// </summary>
private void CompleteHandoff()
{ {
if (videoPlayer != null) videoPlayer.Stop(); if (videoPlayer != null) videoPlayer.Stop();
if (IsOverlayMode() || !SceneManager.GetSceneByName(menuSceneName).isLoaded)
{
gameObject.SetActive(false); gameObject.SetActive(false);
}); return;
} }
SceneManager.SetActiveScene(SceneManager.GetSceneByName(menuSceneName));
SceneManager.UnloadSceneAsync(gameObject.scene);
}
/// <summary>
/// True when there is no separate menu scene to hand off to: either no name is set, or the
/// splash itself lives in the named scene. In that case the splash is just an overlay above an
/// already-present menu and must never unload its own scene.
/// </summary>
private bool IsOverlayMode()
{
return string.IsNullOrWhiteSpace(menuSceneName)
|| gameObject.scene.name == menuSceneName;
}
#endregion
} }
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
{"TestSuite":"","Date":0,"Player":{"Development":false,"ScreenWidth":0,"ScreenHeight":0,"ScreenRefreshRate":0,"Fullscreen":false,"Vsync":0,"AntiAliasing":0,"Batchmode":false,"RenderThreadingMode":"Split","MtRendering":false,"GraphicsJobs":false,"GpuSkinning":true,"Platform":"","ColorSpace":"","AnisotropicFiltering":"","BlendWeights":"","GraphicsApi":"","ScriptingBackend":"IL2CPP","AndroidTargetSdkVersion":"AndroidApiLevelAuto","AndroidBuildSystem":"Gradle","BuildTarget":"StandaloneWindows64","StereoRenderingPath":"MultiPass"},"Hardware":{"OperatingSystem":"","DeviceModel":"","DeviceName":"","ProcessorType":"","ProcessorCount":0,"GraphicsDeviceName":"","SystemMemorySizeMB":0},"Editor":{"Version":"6000.3.18f1","Branch":"6000.3/staging","Changeset":"5ebeb53e4c07","Date":1781016895},"Dependencies":["com.unity.2d.sprite@1.0.0","com.unity.ai.navigation@2.0.13","com.unity.burst@1.8.29","com.unity.collab-proxy@2.12.4","com.unity.collections@2.6.6","com.unity.editorcoroutines@1.1.0","com.unity.ext.nunit@2.0.5","com.unity.ide.rider@3.0.40","com.unity.ide.visualstudio@2.0.26","com.unity.inputsystem@1.19.0","com.unity.mathematics@1.3.3","com.unity.modules.accessibility@1.0.0","com.unity.modules.adaptiveperformance@1.0.0","com.unity.modules.ai@1.0.0","com.unity.modules.androidjni@1.0.0","com.unity.modules.animation@1.0.0","com.unity.modules.assetbundle@1.0.0","com.unity.modules.audio@1.0.0","com.unity.modules.cloth@1.0.0","com.unity.modules.director@1.0.0","com.unity.modules.hierarchycore@1.0.0","com.unity.modules.imageconversion@1.0.0","com.unity.modules.imgui@1.0.0","com.unity.modules.jsonserialize@1.0.0","com.unity.modules.particlesystem@1.0.0","com.unity.modules.physics@1.0.0","com.unity.modules.physics2d@1.0.0","com.unity.modules.screencapture@1.0.0","com.unity.modules.subsystems@1.0.0","com.unity.modules.terrain@1.0.0","com.unity.modules.terrainphysics@1.0.0","com.unity.modules.tilemap@1.0.0","com.unity.modules.ui@1.0.0","com.unity.modules.uielements@1.0.0","com.unity.modules.umbra@1.0.0","com.unity.modules.unityanalytics@1.0.0","com.unity.modules.unitywebrequest@1.0.0","com.unity.modules.unitywebrequestassetbundle@1.0.0","com.unity.modules.unitywebrequestaudio@1.0.0","com.unity.modules.unitywebrequesttexture@1.0.0","com.unity.modules.unitywebrequestwww@1.0.0","com.unity.modules.vectorgraphics@1.0.0","com.unity.modules.vehicles@1.0.0","com.unity.modules.video@1.0.0","com.unity.modules.vr@1.0.0","com.unity.modules.wind@1.0.0","com.unity.modules.xr@1.0.0","com.unity.multiplayer.center@1.0.1","com.unity.nuget.mono-cecil@1.11.6","com.unity.render-pipelines.core@17.3.0","com.unity.render-pipelines.universal@17.3.0","com.unity.render-pipelines.universal-config@17.0.3","com.unity.searcher@4.9.4","com.unity.shadergraph@17.3.0","com.unity.test-framework.performance@3.5.0","com.unity.test-framework@1.6.0","com.unity.timeline@1.8.12","com.unity.ugui@2.0.0","com.unity.visualscripting@1.9.11"],"Results":[]}
@@ -1 +0,0 @@
{"MeasurementCount":-1}
@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7ad871b73de89a043995971d03574d93
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -5,6 +5,9 @@ EditorBuildSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Scenes: m_Scenes:
- enabled: 1
path: Assets/GAME/Scenes/0_Init.unity
guid: 0eaa44a17bc75f74fa8a70ab8cbf22fb
- enabled: 1 - enabled: 1
path: Assets/GAME/Scenes/MenuScene.unity path: Assets/GAME/Scenes/MenuScene.unity
guid: 8c0360124e5bea64781f06c2708833eb guid: 8c0360124e5bea64781f06c2708833eb
+1 -1
View File
@@ -13,7 +13,7 @@ PlayerSettings:
useOnDemandResources: 0 useOnDemandResources: 0
accelerometerFrequency: 60 accelerometerFrequency: 60
companyName: Highland Game Studio companyName: Highland Game Studio
productName: Aetheris productName: Emberwild
defaultCursor: {fileID: 2800000, guid: 80f044bf43884bf498e2d9aaecb1bbe5, type: 3} defaultCursor: {fileID: 2800000, guid: 80f044bf43884bf498e2d9aaecb1bbe5, type: 3}
cursorHotspot: {x: 0, y: 0} cursorHotspot: {x: 0, y: 0}
m_SplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} m_SplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1}