From 2d0f41242f7f0420a60656ea547957d4a4e8ef7f Mon Sep 17 00:00:00 2001 From: Robbie Cargill Date: Sun, 7 Jan 2024 16:35:30 +0000 Subject: [PATCH] First commit (still in process of refactoring so some bugginess) --- .gitignore | 53 + Materials.meta | 8 + Materials/AlwaysOnTopUI.mat | 129 ++ Materials/AlwaysOnTopUI.mat.meta | 8 + Prefabs.meta | 8 + Prefabs/SubtitlePanel.prefab | 1590 +++++++++++++++++ Prefabs/SubtitlePanel.prefab.meta | 7 + README.md | 9 + README.md.meta | 7 + Scripts.meta | 3 + Scripts/R0bbie.VRSubtitles.asmdef | 18 + Scripts/R0bbie.VRSubtitles.asmdef.meta | 7 + Scripts/ScriptableObjects.meta | 8 + .../CharacterSubtitleData.cs | 19 + .../CharacterSubtitleData.cs.meta | 11 + Scripts/SubtitlePanel.cs | 606 +++++++ Scripts/SubtitlePanel.cs.meta | 3 + Scripts/Utils.meta | 3 + Scripts/Utils/FaceCamera.cs | 30 + Scripts/Utils/FaceCamera.cs.meta | 11 + Scripts/Utils/Math.cs | 32 + Scripts/Utils/Math.cs.meta | 3 + Shaders.meta | 8 + Shaders/UI-AlwaysOnTop.shader | 117 ++ Shaders/UI-AlwaysOnTop.shader.meta | 10 + UI.meta | 8 + UI/ButtonIcons.meta | 8 + UI/ButtonIcons/ic_a.png | Bin 0 -> 863 bytes UI/ButtonIcons/ic_a.png.meta | 159 ++ UI/ButtonIcons/ic_playstation_square.png | Bin 0 -> 314 bytes UI/ButtonIcons/ic_playstation_square.png.meta | 159 ++ UI/ButtonIcons/ic_playstation_x.png | Bin 0 -> 465 bytes UI/ButtonIcons/ic_playstation_x.png.meta | 159 ++ UI/ButtonIcons/ic_touchpad_press.png | Bin 0 -> 1762 bytes UI/ButtonIcons/ic_touchpad_press.png.meta | 159 ++ UI/ButtonIcons/ic_x.png | Bin 0 -> 860 bytes UI/ButtonIcons/ic_x.png.meta | 158 ++ UI/ic_arrow_forward.png | Bin 0 -> 790 bytes UI/ic_arrow_forward.png.meta | 158 ++ UI/ic_slash.png | Bin 0 -> 325 bytes UI/ic_slash.png.meta | 159 ++ UI/subtitle_arrow.png | Bin 0 -> 631 bytes UI/subtitle_arrow.png.meta | 158 ++ UI/subtitle_bg.png | Bin 0 -> 1118 bytes UI/subtitle_bg.png.meta | 158 ++ UI/subtitle_icons_tab.png | Bin 0 -> 1482 bytes UI/subtitle_icons_tab.png.meta | 159 ++ UI/tooltip_bg.png | Bin 0 -> 4434 bytes UI/tooltip_bg.png.meta | 159 ++ package.json | 21 + package.json.meta | 7 + 51 files changed, 4497 insertions(+) create mode 100644 .gitignore create mode 100644 Materials.meta create mode 100644 Materials/AlwaysOnTopUI.mat create mode 100644 Materials/AlwaysOnTopUI.mat.meta create mode 100644 Prefabs.meta create mode 100644 Prefabs/SubtitlePanel.prefab create mode 100644 Prefabs/SubtitlePanel.prefab.meta create mode 100644 README.md create mode 100644 README.md.meta create mode 100644 Scripts.meta create mode 100644 Scripts/R0bbie.VRSubtitles.asmdef create mode 100644 Scripts/R0bbie.VRSubtitles.asmdef.meta create mode 100644 Scripts/ScriptableObjects.meta create mode 100644 Scripts/ScriptableObjects/CharacterSubtitleData.cs create mode 100644 Scripts/ScriptableObjects/CharacterSubtitleData.cs.meta create mode 100644 Scripts/SubtitlePanel.cs create mode 100644 Scripts/SubtitlePanel.cs.meta create mode 100644 Scripts/Utils.meta create mode 100644 Scripts/Utils/FaceCamera.cs create mode 100644 Scripts/Utils/FaceCamera.cs.meta create mode 100644 Scripts/Utils/Math.cs create mode 100644 Scripts/Utils/Math.cs.meta create mode 100644 Shaders.meta create mode 100644 Shaders/UI-AlwaysOnTop.shader create mode 100644 Shaders/UI-AlwaysOnTop.shader.meta create mode 100644 UI.meta create mode 100644 UI/ButtonIcons.meta create mode 100644 UI/ButtonIcons/ic_a.png create mode 100644 UI/ButtonIcons/ic_a.png.meta create mode 100644 UI/ButtonIcons/ic_playstation_square.png create mode 100644 UI/ButtonIcons/ic_playstation_square.png.meta create mode 100644 UI/ButtonIcons/ic_playstation_x.png create mode 100644 UI/ButtonIcons/ic_playstation_x.png.meta create mode 100644 UI/ButtonIcons/ic_touchpad_press.png create mode 100644 UI/ButtonIcons/ic_touchpad_press.png.meta create mode 100644 UI/ButtonIcons/ic_x.png create mode 100644 UI/ButtonIcons/ic_x.png.meta create mode 100644 UI/ic_arrow_forward.png create mode 100644 UI/ic_arrow_forward.png.meta create mode 100644 UI/ic_slash.png create mode 100644 UI/ic_slash.png.meta create mode 100644 UI/subtitle_arrow.png create mode 100644 UI/subtitle_arrow.png.meta create mode 100644 UI/subtitle_bg.png create mode 100644 UI/subtitle_bg.png.meta create mode 100644 UI/subtitle_icons_tab.png create mode 100644 UI/subtitle_icons_tab.png.meta create mode 100644 UI/tooltip_bg.png create mode 100644 UI/tooltip_bg.png.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e8f3c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# Visual Studio Cache +.vs/ +.vscode/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.opendb +*.sublime-* + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.unitypackage.meta + +# Unity3D Generated File On Crash Reports +sysinfo.txt + +# Builds +*.apk +*.unitypackage +*.ipa + +# Documentation +Documentation/api/ +Documentation/scripting/ +_site/ +/**/obj/ +/**/obj.meta +Documentation/obj* +UserSettings + +# OS junk +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db +Thumbs.db.meta +.vsconfig \ No newline at end of file diff --git a/Materials.meta b/Materials.meta new file mode 100644 index 0000000..18e245f --- /dev/null +++ b/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a9cd9eba9ccb0c49bc080c0e5484ba8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Materials/AlwaysOnTopUI.mat b/Materials/AlwaysOnTopUI.mat new file mode 100644 index 0000000..c2af97b --- /dev/null +++ b/Materials/AlwaysOnTopUI.mat @@ -0,0 +1,129 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7644535210831368121 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 5 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AlwaysOnTopUI + m_Shader: {fileID: 4800000, guid: 968c47519aed5614385f271f2ffe400f, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _UseUIAlphaClip: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Materials/AlwaysOnTopUI.mat.meta b/Materials/AlwaysOnTopUI.mat.meta new file mode 100644 index 0000000..da35152 --- /dev/null +++ b/Materials/AlwaysOnTopUI.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c488b71589fb9947a7012153c571a60 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Prefabs.meta b/Prefabs.meta new file mode 100644 index 0000000..735d535 --- /dev/null +++ b/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a5501dcabaab92459324d9a57c5f562 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Prefabs/SubtitlePanel.prefab b/Prefabs/SubtitlePanel.prefab new file mode 100644 index 0000000..e59346b --- /dev/null +++ b/Prefabs/SubtitlePanel.prefab @@ -0,0 +1,1590 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1623996491481361533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2636482521783881379} + - component: {fileID: 6730117551663720532} + - component: {fileID: 8852351174783637203} + m_Layer: 5 + m_Name: CharacterAvatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2636482521783881379 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623996491481361533} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000000091672} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3358733699817874047} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 1.383, y: 0.000000052154} + m_SizeDelta: {x: 0.4928, y: 0.4928} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6730117551663720532 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623996491481361533} + m_CullTransparentMesh: 1 +--- !u!114 &8852351174783637203 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623996491481361533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 62f9c49a2e7c71f4fa24347fd7e64f8d, type: 3} + 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 &2129299230812553588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4455441879795903936} + - component: {fileID: 6415340218863793221} + - component: {fileID: 8119712438176251017} + - component: {fileID: 2656914181307583644} + m_Layer: 5 + m_Name: IconsTab_ContinueAX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4455441879795903936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129299230812553588} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.890758, y: 2.8907583, z: 2.8907588} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7335961214303784018} + - {fileID: 2251538178895301260} + - {fileID: 1580235773013876843} + - {fileID: 3212883509800107264} + m_Father: {fileID: 8206365756572713235} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 5.115, y: -0.42999965} + m_SizeDelta: {x: 0.5513, y: 0.1911} + m_Pivot: {x: 1, y: 0} +--- !u!222 &6415340218863793221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129299230812553588} + m_CullTransparentMesh: 1 +--- !u!114 &8119712438176251017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129299230812553588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 0.98039216} + 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: 21300000, guid: b4119a45eae036e428912a20a5cc5d80, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 578.1 +--- !u!225 &2656914181307583644 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129299230812553588} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &2820695558251073951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7504039118829645734} + - component: {fileID: 409397712791719695} + - component: {fileID: 1082639240850277438} + m_Layer: 5 + m_Name: CharacterArrow_Below + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7504039118829645734 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2820695558251073951} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.8907585, y: 2.8907585, z: 2.8907585} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8206365756572713235} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 2.7495522, y: -0.33645058} + m_SizeDelta: {x: 0.10192966, y: 0.13797605} + m_Pivot: {x: 1, y: 0} +--- !u!222 &409397712791719695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2820695558251073951} + m_CullTransparentMesh: 1 +--- !u!114 &1082639240850277438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2820695558251073951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 70f4f5ffc88f2004296ea8b96cf5de9b, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3534616969232252626 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1373721496085598135} + - component: {fileID: 8686571445337605657} + - component: {fileID: 6009452310428294501} + m_Layer: 5 + m_Name: CharacterArrow_Above + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1373721496085598135 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3534616969232252626} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.8907588, y: 2.8907588, z: 2.8907585} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3358733699817874047} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 3.151814, y: 0.7747325} + m_SizeDelta: {x: 0.10130068, y: 0.13855618} + m_Pivot: {x: 1, y: 0} +--- !u!222 &8686571445337605657 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3534616969232252626} + m_CullTransparentMesh: 1 +--- !u!114 &6009452310428294501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3534616969232252626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 70f4f5ffc88f2004296ea8b96cf5de9b, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3686489747117711839 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4086184599646897269} + - component: {fileID: 6459827059616694516} + - component: {fileID: 458814215843862935} + m_Layer: 5 + m_Name: SubtitlePanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4086184599646897269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3686489747117711839} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.21918344, y: 0.21918344, z: 0.21918344} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 7092960676321949509} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6459827059616694516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3686489747117711839} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 28210b801bf4495888187e4b2100b580, type: 3} + m_Name: + m_EditorClassIdentifier: + characterAvatar: {fileID: 8852351174783637203} + characterNameText: {fileID: 4004227375674336817} + subtitleText: {fileID: 5295078120000833486} + panelCanvasGroup: {fileID: 7048934755500838325} + waitForInput: 0 + posPanelAtCameraDistance: 0.35 + followCameraMovementSpeed: 2 + followCameraRotationSpeed: 2 + leftArrow: {fileID: 5152615251012800842} + rightArrow: {fileID: 3805096325462870586} + aboveArrow: {fileID: 6009452310428294501} + belowArrow: {fileID: 1082639240850277438} + continueIcons: {fileID: 2656914181307583644} + smlTextScale: 0.18 + medTextScale: 0.25 + lrgTextScale: 0.35 + subPopupSound: {fileID: 0} + subContinuedSound: {fileID: 0} + defaultFont: {fileID: 11400000, guid: de8cbbbee65f98f47bb0003ab49a3dbe, type: 2} + defaultFontMat: {fileID: 2179149693825883034, guid: de8cbbbee65f98f47bb0003ab49a3dbe, type: 2} +--- !u!82 &458814215843862935 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3686489747117711839} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &3742923853129494734 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7092960676321949509} + - component: {fileID: 1332671120315044627} + - component: {fileID: 2353905238682454744} + - component: {fileID: 7048934755500838325} + - component: {fileID: 6343340904796840198} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7092960676321949509 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742923853129494734} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 2.24} + m_LocalScale: {x: 0.43431, y: 0.43431, z: 0.43431} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 7864460304299211347} + m_Father: {fileID: 4086184599646897269} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -0.83} + m_SizeDelta: {x: 2.9597, y: 1.484} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &1332671120315044627 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742923853129494734} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + 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: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 1026511411 + m_SortingOrder: 1 + m_TargetDisplay: 0 +--- !u!114 &2353905238682454744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742923853129494734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!225 &7048934755500838325 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742923853129494734} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &6343340904796840198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742923853129494734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4ac2d9c3cd7269f4ea6e999c8d290673, type: 3} + m_Name: + m_EditorClassIdentifier: + cameraToFace: {fileID: 0} +--- !u!1 &3821911504852678618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3212883509800107264} + - component: {fileID: 8535472725611522059} + - component: {fileID: 554300934412339272} + m_Layer: 5 + m_Name: NextSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3212883509800107264 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3821911504852678618} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.00000030621} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4455441879795903936} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -0.06345001, y: 0.049978} + m_SizeDelta: {x: 0.12455, y: 0.084322} + m_Pivot: {x: 1, y: 0} +--- !u!222 &8535472725611522059 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3821911504852678618} + m_CullTransparentMesh: 1 +--- !u!114 &554300934412339272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3821911504852678618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 05ab3b2f5f860da42b3308df0666a551, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4233227887956693538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 588066419015376800} + - component: {fileID: 1752941597897739442} + - component: {fileID: 5152615251012800842} + m_Layer: 5 + m_Name: CharacterArrow_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &588066419015376800 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4233227887956693538} + 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: 7864460304299211347} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0.229, y: -0.0698756} + m_SizeDelta: {x: 0.1029, y: 0.13910039} + m_Pivot: {x: 1, y: 0} +--- !u!222 &1752941597897739442 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4233227887956693538} + m_CullTransparentMesh: 1 +--- !u!114 &5152615251012800842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4233227887956693538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 70f4f5ffc88f2004296ea8b96cf5de9b, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4832342303736423635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1580235773013876843} + - component: {fileID: 1947009714917912394} + - component: {fileID: 8926382981271264552} + m_Layer: 5 + m_Name: InputButtonImage_A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1580235773013876843 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4832342303736423635} + 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: 4455441879795903936} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -0.209, y: 0.0496} + m_SizeDelta: {x: 0.0847, y: 0.0847} + m_Pivot: {x: 1, y: 0} +--- !u!222 &1947009714917912394 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4832342303736423635} + m_CullTransparentMesh: 1 +--- !u!114 &8926382981271264552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4832342303736423635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 6135d65b5835cb54b9e8f2b4dbd198e5, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5590524971924766116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7864460304299211347} + - component: {fileID: 4816826068471460779} + m_Layer: 5 + m_Name: Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7864460304299211347 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5590524971924766116} + 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: 7524876526750024510} + - {fileID: 588066419015376800} + - {fileID: 5999340192114725065} + m_Father: {fileID: 7092960676321949509} + 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.5, y: 0.5} +--- !u!114 &4816826068471460779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5590524971924766116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 3 + m_AspectRatio: 2 +--- !u!1 &5645798182469769964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7524876526750024510} + - component: {fileID: 2519910650168509611} + - component: {fileID: 2645359887910049494} + - component: {fileID: 272288140555956624} + - component: {fileID: 400161868991256516} + - component: {fileID: 6595115160552594830} + m_Layer: 5 + m_Name: PanelContentLayout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7524876526750024510 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0069186003, y: 0.006918599, z: 0.07267926} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3358733699817874047} + - {fileID: 6923517754992682737} + - {fileID: 8206365756572713235} + m_Father: {fileID: 7864460304299211347} + 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.018600035} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2519910650168509611 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_CullTransparentMesh: 0 +--- !u!114 &2645359887910049494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 0.98039216} + 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: 21300000, guid: d02e18318f69d214baa5df0f3bf53f38, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 4.3 +--- !u!114 &272288140555956624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!225 &400161868991256516 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &6595115160552594830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5645798182469769964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 17 + m_Right: 16 + m_Top: 24 + m_Bottom: 2 + m_ChildAlignment: 6 + m_Spacing: 18.8 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &5952778009618716271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3358733699817874047} + - component: {fileID: 454129724802477532} + m_Layer: 5 + m_Name: CharInfoBox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3358733699817874047 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5952778009618716271} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 50, y: 50.00001, z: 4.7596793} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1373721496085598135} + - {fileID: 2636482521783881379} + - {fileID: 2875732262952399327} + m_Father: {fileID: 7524876526750024510} + 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: 2.3, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &454129724802477532 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5952778009618716271} + m_CullTransparentMesh: 1 +--- !u!1 &6845430390962046494 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5999340192114725065} + - component: {fileID: 5598622399753074422} + - component: {fileID: 3805096325462870586} + m_Layer: 5 + m_Name: CharacterArrow_Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5999340192114725065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6845430390962046494} + 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: 7864460304299211347} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -0.22929697, y: -0.0698756} + m_SizeDelta: {x: 0.101386346, y: 0.13854447} + m_Pivot: {x: 1, y: 0} +--- !u!222 &5598622399753074422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6845430390962046494} + m_CullTransparentMesh: 1 +--- !u!114 &3805096325462870586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6845430390962046494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 70f4f5ffc88f2004296ea8b96cf5de9b, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6867292548679422840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6923517754992682737} + - component: {fileID: 954089161236753221} + - component: {fileID: 5295078120000833486} + m_Layer: 5 + m_Name: SubtitleText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6923517754992682737 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867292548679422840} + 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: 7524876526750024510} + 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: 298.33, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &954089161236753221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867292548679422840} + m_CullTransparentMesh: 0 +--- !u!114 &5295078120000833486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867292548679422840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_text: Okay... here's some dialogue which a character is speaking. Hello! These + are words. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 11.42 + m_fontSizeBase: 11.42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7392010392370224915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2251538178895301260} + - component: {fileID: 3171725829654739138} + - component: {fileID: 1065260413298751308} + m_Layer: 5 + m_Name: SlashIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2251538178895301260 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7392010392370224915} + 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: 4455441879795903936} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -0.30100018, y: 0.0496} + m_SizeDelta: {x: 0.0847, y: 0.0847} + m_Pivot: {x: 1, y: 0} +--- !u!222 &3171725829654739138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7392010392370224915} + m_CullTransparentMesh: 1 +--- !u!114 &1065260413298751308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7392010392370224915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: 91419ac6c2fa8cc47a7a7abae52de0e1, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8044956739428389513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2875732262952399327} + - component: {fileID: 497072990557677775} + - component: {fileID: 4004227375674336817} + m_Layer: 5 + m_Name: CharacaterNameText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2875732262952399327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8044956739428389513} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.02, y: 0.019999983, z: 0.2100981} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3358733699817874047} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 4.717, y: 0} + m_SizeDelta: {x: 298.33, y: 13.66} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &497072990557677775 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8044956739428389513} + m_CullTransparentMesh: 0 +--- !u!114 &4004227375674336817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8044956739428389513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_text: 'REMI:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4284977191 + m_fontColor: {r: 0.15294118, g: 0.5647059, b: 0.40392157, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 11.42 + m_fontSizeBase: 11.42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 134.55745, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8423575832568657702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8206365756572713235} + - component: {fileID: 7582077800667496784} + m_Layer: 5 + m_Name: PanelPositioner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8206365756572713235 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8423575832568657702} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 50, y: 50.00001, z: 4.7596793} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4455441879795903936} + - {fileID: 7504039118829645734} + m_Father: {fileID: 7524876526750024510} + 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: 2.3, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7582077800667496784 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8423575832568657702} + m_CullTransparentMesh: 1 +--- !u!1 &9202381912050885212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7335961214303784018} + - component: {fileID: 906291164184874959} + - component: {fileID: 684975227713827945} + m_Layer: 5 + m_Name: InputButtonImage_X + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7335961214303784018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9202381912050885212} + 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: 4455441879795903936} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -0.348, y: 0.0496} + m_SizeDelta: {x: 0.0847, y: 0.0847} + m_Pivot: {x: 1, y: 0} +--- !u!222 &906291164184874959 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9202381912050885212} + m_CullTransparentMesh: 1 +--- !u!114 &684975227713827945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9202381912050885212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 5c488b71589fb9947a7012153c571a60, type: 2} + 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_Sprite: {fileID: 21300000, guid: a35284d7b18465840ac8858491eff441, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Prefabs/SubtitlePanel.prefab.meta b/Prefabs/SubtitlePanel.prefab.meta new file mode 100644 index 0000000..e78d72a --- /dev/null +++ b/Prefabs/SubtitlePanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1021ae91acd0fc469e6e6ffc834ac21 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/README.md b/README.md new file mode 100644 index 0000000..df56f68 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Timeline System + +Package to allow setup of a linear timeline of steps with attached commands. + +# Dependencies + +- TriInspector + +These plugins/packages must be in the project prior to import, or they will throw some errors in the console. diff --git a/README.md.meta b/README.md.meta new file mode 100644 index 0000000..09a7377 --- /dev/null +++ b/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 182b5172a718cd34c9c5fbf4c99f08ba +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts.meta b/Scripts.meta new file mode 100644 index 0000000..5a79ac9 --- /dev/null +++ b/Scripts.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cb2362ba350849a087699706fa764f62 +timeCreated: 1703175805 \ No newline at end of file diff --git a/Scripts/R0bbie.VRSubtitles.asmdef b/Scripts/R0bbie.VRSubtitles.asmdef new file mode 100644 index 0000000..8a8a027 --- /dev/null +++ b/Scripts/R0bbie.VRSubtitles.asmdef @@ -0,0 +1,18 @@ +{ + "name": "R0bbie.VRSubtitles", + "rootNamespace": "R0bbie.VRSubtitles", + "references": [ + "Unity.TextMeshPro", + "TriInspector", + "com.leantween" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Scripts/R0bbie.VRSubtitles.asmdef.meta b/Scripts/R0bbie.VRSubtitles.asmdef.meta new file mode 100644 index 0000000..e6b1890 --- /dev/null +++ b/Scripts/R0bbie.VRSubtitles.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c8f0711b0a3aca64cb4b374db73e6e55 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/ScriptableObjects.meta b/Scripts/ScriptableObjects.meta new file mode 100644 index 0000000..c70c054 --- /dev/null +++ b/Scripts/ScriptableObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a3880b8b87eb7146a6d63b286efd436 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/ScriptableObjects/CharacterSubtitleData.cs b/Scripts/ScriptableObjects/CharacterSubtitleData.cs new file mode 100644 index 0000000..958a15c --- /dev/null +++ b/Scripts/ScriptableObjects/CharacterSubtitleData.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace R0bbie.VRSubtitles +{ + /// + /// Defines how a character's subtitles should be displayed + /// + [CreateAssetMenu(fileName = "CharacterSubtitleData_RENAME", menuName = "VR Subtitles/Character Subtitle Data")] + public class CharacterSubtitleData : ScriptableObject + { + public string subtitleDisplayName; + public Sprite avatar; + public Color textNameColour; + + public float subtitlePositionOffset; + + // TODO: Allow a fixed arrow direction override here? + } +} \ No newline at end of file diff --git a/Scripts/ScriptableObjects/CharacterSubtitleData.cs.meta b/Scripts/ScriptableObjects/CharacterSubtitleData.cs.meta new file mode 100644 index 0000000..6df13cc --- /dev/null +++ b/Scripts/ScriptableObjects/CharacterSubtitleData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7eccd0693474f1943bef9505d068fc4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/SubtitlePanel.cs b/Scripts/SubtitlePanel.cs new file mode 100644 index 0000000..cadb052 --- /dev/null +++ b/Scripts/SubtitlePanel.cs @@ -0,0 +1,606 @@ +using System; +using TMPro; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.UI; +using Quaternion = UnityEngine.Quaternion; +using Vector3 = UnityEngine.Vector3; +using TriInspector; + +namespace R0bbie.VRSubtitles +{ + /// + /// Class to handle dialogue panel UI + /// + [RequireComponent(typeof(AudioSource))] + public class SubtitlePanel : MonoBehaviour + { + // Exposed Variables + [Title("UI Child Refs")] + [SerializeField] Image characterAvatar; + [SerializeField] TMP_Text characterNameText; + [SerializeField] TMP_Text subtitleText; + //[SerializeField] TextAnimatorPlayer animatorPlayer; + [SerializeField] CanvasGroup panelCanvasGroup; + + [Title("Core Behaviour")] + [SerializeField] bool waitForInput; + //[SerializeField] bool animateInText; // TODO: Implement + + [Title("Follow Behaviour")] + [SerializeField] float posPanelAtCameraDistance = 0.35f; // how far the subtitle panel will be positioned from the camera + [SerializeField] float followCameraMovementSpeed = 2f; + [SerializeField] float followCameraRotationSpeed = 2f; + + [Title("Direction Arrows")] + [SerializeField] Image leftArrow; + [SerializeField] Image rightArrow; + [SerializeField] Image aboveArrow; + [SerializeField] Image belowArrow; + + [Title("Icon Tabs")] + [SerializeField] CanvasGroup continueIcons; + + [Title("Panel Size")] + [SerializeField] float smlTextScale = 0.18f; + [SerializeField] float medTextScale = 0.25f; + [SerializeField] float lrgTextScale = 0.35f; + + [Title("Audio Clips")] + [SerializeField] AudioClip subPopupSound; + [SerializeField] AudioClip subContinuedSound; + + [Title("Fonts")] + [SerializeField] TMP_FontAsset defaultFont; + [SerializeField] Material defaultFontMat; + + + // Private Variables + + [System.NonSerialized] string activeLine; + + CharacterSubtitleData activeCharacterData; + + Transform vrCameraTransform; + Transform speakingCharTransform; + + //[System.NonSerialized] public bool textAnimatedToEnd; + + Vector3 childCanvasOffscreenDefaultPos; + Vector3 childCanvasOffscreenDefaultRot; + + public bool panelActive { get; private set; } + + float timeLastHidden; + bool snappedToStartTransform; + + bool dontFollowCharacter; + + + enum Mode + { + CameraFollow, + FixedToChar + } + Mode activeMode; + + enum CharScreenPosition + { + OnScreen, + OffToLeft, + OffToRight + } + CharScreenPosition activeCharScreenPosition; + + public enum ArrowDirection + { + Off, + Up, + Down, + Left, + Right + } + ArrowDirection activeArrowDir; + + public enum SubtitleCharPlacement + { + Above, + Below + } + SubtitleCharPlacement activeSubsCharPlacement; + + float followCharacterMinChange; + + // LeanTween settings + + float tabFadeInTime = 0.3f; + LeanTweenType tabFadeTweenType = LeanTweenType.easeOutSine; + + int activeTabFadeTweenId; + + Vector3 targetPosition; + Vector3 childTargetPosition; + Quaternion targetRotation; + + AudioSource attachedAudioSource; + + bool init; + + // Subscribable events + public Action onLineDisplayed; // once line has been fully displayed to the player + public Action onSubtitleEnded; // when line is ready to be continued, either automatically or via player input + + + public void Init(Camera _vrCamera) + { + // Set the player camera position as target position for the parent object + vrCameraTransform = _vrCamera.transform; + + // Get attached audio source (for playing some simple effects on interactions) + attachedAudioSource = GetComponent(); + + timeLastHidden = Time.timeSinceLevelLoad; + + UpdateArrow(ArrowDirection.Off); + + // Get canvas group child starting / default transform values, for when UI is positioned when char off screen + childCanvasOffscreenDefaultPos = panelCanvasGroup.transform.localPosition; + childCanvasOffscreenDefaultRot = panelCanvasGroup.transform.localEulerAngles; + + // Initialise canvas element to face camera + GetComponentInChildren().Init(_vrCamera); + + // TODO: Initialise text animation here if turned on? + + // Hide continue icons tab by default + ContinueIconsOff(); + + // Hide panel until first line requested + HidePanel(); + + init = true; + } + + + /// + /// Display subtitle with requested data + /// + /// Text to show (dialogue being said) + /// Character transform to place the panel arrow + /// Speaking character data (name and avatar) to display + public void PlaySubtitle(string _text, Transform _charTransform, CharacterSubtitleData _characterDataRef, float _audioDuration, bool _dontAttachSubToCharacter = false) + { + // Catch not yet initialised + if (!init) + { + Debug.LogError("Tried to show a subtitle without initialising panel first!"); + return; + } + + //textAnimatedToEnd = false; + + // TODO: Ensure font set and size to correct when shown + //UpdateFont(); + //UpdateSize(); + + // Hide continue icons tab by default on start of new line + ContinueIconsOff(); + + // Set character transform to tie sub to + speakingCharTransform = _charTransform; + + // Update speaking character name and avatar displayed + UpdateCharacterDisplay(_characterDataRef); + + // Set new active line to show + activeLine = _text; + + // TODO: Animate text in (if text scrolling on), otherwise snap in immediately + //AnimateText(activeLine); + UpdateTextImmediate(_text); + + // If we want to have this line not follow the character position + dontFollowCharacter = _dontAttachSubToCharacter; + + SnapToFollowTarget(); + + // Allow continue after audio finished playing + Invoke(nameof(LineAudioFinished), _audioDuration); + } + + + /// + /// Clears current subtitle and hides panel + /// + public void EndSubtitle() + { + // If active line + if (string.IsNullOrEmpty(activeLine)) + { + // Manually ended + onSubtitleEnded?.Invoke(); + } + + // Clear active line + activeLine = null; + activeCharacterData = null; + + // Hide panel + HidePanel(); + } + + + /// + /// Hide the UI element designed to show the "continue" input button etc + /// + void ContinueIconsOff() + { + // Stop any existing tab fade tween + LeanTween.cancel(activeTabFadeTweenId); + + // Hide continue icon tab + continueIcons.alpha = 0; + continueIcons.gameObject.SetActive(false); + } + + + /// + /// Unity Update function called each frame - we'll make sure subtitle panel positions are up-to-date here + /// + void Update() + { + if (!panelActive || !init || !snappedToStartTransform) + return; + + // Get latest target positions for parent and child canvas object + CalculateTargetPositions(); + + // Lerp both parent and child objects pos to target + transform.position = Vector3.Lerp(transform.position, targetPosition, Time.fixedDeltaTime * followCameraMovementSpeed); + + panelCanvasGroup.transform.localPosition = Vector3.Lerp(panelCanvasGroup.transform.localPosition, childTargetPosition, Time.fixedDeltaTime * followCameraMovementSpeed); + + // If character is off-screen then also lerp rotation to target + if (activeCharScreenPosition != CharScreenPosition.OnScreen || dontFollowCharacter) + transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation,Time.fixedDeltaTime * followCameraRotationSpeed); + + // TODO: Only lerp / update positions if they've actually changed + // Also add small deadzone at edges + } + + + /// + /// Get latest target positions for the panel objects, based on character being followed, where they are in relation to the player and camera, etc + /// + void CalculateTargetPositions() + { + // Get camera forward vector, projected onto horizontal plane + Vector3 cameraForwardProjection = Vector3.ProjectOnPlane(vrCameraTransform.forward, Vector3.up); + + // Get directional vector from camera to currently speaking character, then project onto horizontal plane + Vector3 directionFromCameraToChar = (speakingCharTransform.position - vrCameraTransform.position).normalized; + Vector3 cameraToCharProjection = Vector3.ProjectOnPlane(directionFromCameraToChar, Vector3.up); + + // Calculate angle between two vectors (projected onto a horizontal plane) + float angleBetweenVectors = Math.SignedAngleBetween(cameraForwardProjection, cameraToCharProjection, Vector3.up); + + // Determine if character is on screen + if (angleBetweenVectors is >= -45 and <= 45) + activeCharScreenPosition = CharScreenPosition.OnScreen; + else if (angleBetweenVectors is > 45) + activeCharScreenPosition = CharScreenPosition.OffToRight; + else if (angleBetweenVectors is < -45) + activeCharScreenPosition = CharScreenPosition.OffToLeft; + + // Update active camera follow mode (if needed based on character position on screen) + // unless dontFollowCharacter is set! + if (activeCharScreenPosition == CharScreenPosition.OnScreen && !dontFollowCharacter) + { + if (activeMode != Mode.FixedToChar) + UpdateFollowMode(Mode.FixedToChar); + } + else + { + if (activeMode != Mode.CameraFollow) + UpdateFollowMode(Mode.CameraFollow); + } + + // If character is off-screen then subtitle will follow camera facing direction + if (activeCharScreenPosition != CharScreenPosition.OnScreen || dontFollowCharacter) + { + // Set target position. Will then Lerp parent object to camera position (smooths slightly, with child object at offset in front of camera) + targetPosition = vrCameraTransform.position; + + // Get target rotation, following camera in y axis, but not moving in x or z + Vector3 curEulerAngles = transform.eulerAngles; + targetRotation = Quaternion.Euler(curEulerAngles.x, vrCameraTransform.eulerAngles.y, curEulerAngles.z); + + // Reset child pos/rot + childTargetPosition = childCanvasOffscreenDefaultPos; + panelCanvasGroup.transform.localEulerAngles = childCanvasOffscreenDefaultRot; + + // Show left/right arrows + if (activeCharScreenPosition == CharScreenPosition.OffToLeft) + UpdateArrow(ArrowDirection.Left); + else + UpdateArrow(ArrowDirection.Right); + } + else // otherwise we'll position the subtitle UI next to the character, locked in pos + { + // Get distance from camera to char (directional vector previously calculated above) + float distanceFromCameraToChar = Vector3.Distance(vrCameraTransform.position, speakingCharTransform.position); + + // If distance < a minimum (onscreenCharDistance) + if (distanceFromCameraToChar < posPanelAtCameraDistance) + { + // panel parent at char position + targetPosition = speakingCharTransform.position; + } + else + { + // panel parent onscreenCharDistance along vector from camera to char + targetPosition = vrCameraTransform.position + directionFromCameraToChar * Mathf.Sqrt(posPanelAtCameraDistance); + } + + + // Position child object at offset from character pos (above or below) + childTargetPosition = Vector3.zero; + + // Set arrow pointing direction + // If no character offset + if (activeCharacterData && activeCharacterData.subtitlePositionOffset == 0) + { + UpdateArrow(ArrowDirection.Up); + } + else // has offset + { + childTargetPosition = new Vector3(0, activeCharacterData.subtitlePositionOffset, 0); + if (activeCharacterData.subtitlePositionOffset <= 0) + UpdateArrow(ArrowDirection.Up); + else + UpdateArrow(ArrowDirection.Down); + } + } + } + + + /// + /// Update current subtitle panel follow mode + /// + /// Whether subtitle panel is following camera or locked to character in view + void UpdateFollowMode(Mode _newMode) + { + activeMode = _newMode; + } + + + /// + /// Immediately snap panel position to the target position + /// + public void SnapToFollowTarget() + { + if (!panelActive) + return; + + CalculateTargetPositions(); + + // Immediately update both parent and child objects pos to target + transform.position = targetPosition; + panelCanvasGroup.transform.localPosition = childTargetPosition; + + // If character is off-screen then also snap rotation to target + if (activeCharScreenPosition != CharScreenPosition.OnScreen) + transform.rotation = targetRotation; + + snappedToStartTransform = true; + } + + + /// + /// Update the arrow to face correct direction (towards speaking character) + /// + /// + void UpdateArrow(ArrowDirection _updateTo) + { + if (activeArrowDir == _updateTo) + return; + + activeArrowDir = _updateTo; + + // If we don't want to show an arrow (i.e. if no character is being pointed to, maybe an off-screen narrator etc) + if (activeArrowDir == ArrowDirection.Off) + { + belowArrow.gameObject.SetActive(false); + aboveArrow.gameObject.SetActive(false); + leftArrow.gameObject.SetActive(false); + rightArrow.gameObject.SetActive(false); + return; + } + + // Otherwise update active UI element for the desired arrow + + if (activeArrowDir == ArrowDirection.Down) + belowArrow.gameObject.SetActive(true); + else + belowArrow.gameObject.SetActive(false); + + if (activeArrowDir == ArrowDirection.Up) + aboveArrow.gameObject.SetActive(true); + else + aboveArrow.gameObject.SetActive(false); + + if (activeArrowDir == ArrowDirection.Left) + leftArrow.gameObject.SetActive(true); + else + leftArrow.gameObject.SetActive(false); + + if (activeArrowDir == ArrowDirection.Right) + rightArrow.gameObject.SetActive(true); + else + rightArrow.gameObject.SetActive(false); + } + + + /// + /// Invoked once the audio associated with this line of dialogue has ended, allowing the subtitle to be continued / ended + /// + void LineAudioFinished() + { + // Show continue input tab, if turned on + if (waitForInput) + { + ShowContinueInputsTab(); + } + else + { + LineContinued(); + } + } + + + void LineContinued() + { + // Play continued sound if set + if (subContinuedSound) + attachedAudioSource.PlayOneShot(subContinuedSound); + + onSubtitleEnded?.Invoke(); + + activeLine = null; + activeCharacterData = null; + HidePanel(); + } + + + /// + /// Activate and show panel + /// + void ShowPanel() + { + // If panel is being shown, and wasn't already showing + + // Add a slight delay for playing sound in case toggled quickly off and on again + if (!panelActive && (Time.timeSinceLevelLoad > (timeLastHidden + 0.5f))) + { + // Play popup sound event + if (subPopupSound) + attachedAudioSource.PlayOneShot(subPopupSound); + } + + // Show panel + panelCanvasGroup.alpha = 1f; + panelActive = true; + } + + + /// + /// Hide the panel and set it as inactive for now + /// + void HidePanel() + { + panelActive = false; + snappedToStartTransform = false; + panelCanvasGroup.alpha = 0f; + timeLastHidden = Time.timeSinceLevelLoad; + } + + + /// + /// Show the tab UI element which displays the "continue" input for subtitle line + /// + void ShowContinueInputsTab() + { + // Stop any existing tab fade tween + LeanTween.cancel(activeTabFadeTweenId); + + // TODO: Get correct continue buttons from button mappings / active controller and change sprites accordingly before showing? + + // Start alpha at 0, then we'll fade in + continueIcons.alpha = 0; + continueIcons.gameObject.SetActive(true); + + // Fade in + activeTabFadeTweenId = LeanTween.alphaCanvas(continueIcons, 1f, tabFadeInTime).setEase(tabFadeTweenType).uniqueId; + + // Listen for continue input + //if (continueInputEvent != null) + //continueInputEvent.RegisterListener(this); + } + + + /// + /// Update the character avatar and name shown in the dialogue panel + /// + /// Character whose avatar to use + void UpdateCharacterDisplay(CharacterSubtitleData _characterData) + { + if (!_characterData) + return; + + activeCharacterData = _characterData; + + // TODO: If no character provided, use a default / anonymous avatar? + + characterAvatar.sprite = activeCharacterData.avatar; + characterNameText.text = activeCharacterData.subtitleDisplayName + ":"; + characterNameText.color = activeCharacterData.textNameColour; + } + + + /// + /// Used internally to update the panel text, and ensure it's displayed + /// + /// Subtitle text to update to + void UpdateTextImmediate(string _textToShow) + { + // Update text setting + subtitleText.text = _textToShow; + + // Show the dialogue panel + ShowPanel(); + //textAnimatedToEnd = true; + + // Line now displayed + onLineDisplayed?.Invoke(); + } + + + /// + /// Updates the font used to display subtitles + /// + /// TextMeshPro font to use + /// Font material to use (if wish to override) + public void UpdateFont(TMP_FontAsset _newFont, Material _fontMaterial = null) + { + characterNameText.font = _newFont; + subtitleText.font = _newFont; + + if (_fontMaterial) + { + characterNameText.fontMaterial = _fontMaterial; + subtitleText.fontMaterial = _fontMaterial; + } + } + + + public void UpdateSize(int _newScale) + { + // TODO: Handle scaling better here! + + switch (_newScale) + { + case 1: + gameObject.transform.localScale = new Vector3(smlTextScale, smlTextScale, smlTextScale); + break; + case 2: + gameObject.transform.localScale = new Vector3(medTextScale, medTextScale, medTextScale); + break; + case 3: + gameObject.transform.localScale = new Vector3(lrgTextScale, lrgTextScale, lrgTextScale); + break; + } + } + + + } +} diff --git a/Scripts/SubtitlePanel.cs.meta b/Scripts/SubtitlePanel.cs.meta new file mode 100644 index 0000000..3e8cc2b --- /dev/null +++ b/Scripts/SubtitlePanel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 28210b801bf4495888187e4b2100b580 +timeCreated: 1704466334 \ No newline at end of file diff --git a/Scripts/Utils.meta b/Scripts/Utils.meta new file mode 100644 index 0000000..63b2d4d --- /dev/null +++ b/Scripts/Utils.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b423ac5f87774225a11ade83f827ccb0 +timeCreated: 1704468148 \ No newline at end of file diff --git a/Scripts/Utils/FaceCamera.cs b/Scripts/Utils/FaceCamera.cs new file mode 100644 index 0000000..dba7505 --- /dev/null +++ b/Scripts/Utils/FaceCamera.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace R0bbie.VRSubtitles +{ + public class FaceCamera : MonoBehaviour + { + Transform cameraToFace; + + bool init; + + + public void Init(Camera _cameraToFace) + { + cameraToFace = _cameraToFace.transform; + + init = true; + } + + + void Update() + { + transform.LookAt(cameraToFace); + transform.Rotate(0, 180, 0); + } + + + } +} diff --git a/Scripts/Utils/FaceCamera.cs.meta b/Scripts/Utils/FaceCamera.cs.meta new file mode 100644 index 0000000..aff5313 --- /dev/null +++ b/Scripts/Utils/FaceCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ac2d9c3cd7269f4ea6e999c8d290673 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Utils/Math.cs b/Scripts/Utils/Math.cs new file mode 100644 index 0000000..9f12c0d --- /dev/null +++ b/Scripts/Utils/Math.cs @@ -0,0 +1,32 @@ +using UnityEngine; + +namespace R0bbie.VRSubtitles +{ + /// + /// Some useful Math functions + /// + public class Math + { + + /// + /// + /// + /// + /// + /// + /// + public static float SignedAngleBetween(Vector3 a, Vector3 b, Vector3 n) + { + // angle in [0,180] + float angle = Vector3.Angle(a,b); + float sign = Mathf.Sign(Vector3.Dot(n,Vector3.Cross(a,b))); + + // angle in [-179,180] + float signed_angle = angle * sign; + + return signed_angle; + } + + } + +} \ No newline at end of file diff --git a/Scripts/Utils/Math.cs.meta b/Scripts/Utils/Math.cs.meta new file mode 100644 index 0000000..6153488 --- /dev/null +++ b/Scripts/Utils/Math.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0676a805b18c4a6c86534b11364fbff6 +timeCreated: 1704468154 \ No newline at end of file diff --git a/Shaders.meta b/Shaders.meta new file mode 100644 index 0000000..0974763 --- /dev/null +++ b/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d2cc663b895ed5c4190842ff87a958a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Shaders/UI-AlwaysOnTop.shader b/Shaders/UI-AlwaysOnTop.shader new file mode 100644 index 0000000..2052f2a --- /dev/null +++ b/Shaders/UI-AlwaysOnTop.shader @@ -0,0 +1,117 @@ +// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) + +Shader "UI/AlwaysOnTop" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Cull Off + Lighting Off + ZWrite Off + ZTest Off // was [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + + Pass + { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile_local _ UNITY_UI_CLIP_RECT + #pragma multi_compile_local _ UNITY_UI_ALPHACLIP + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + float4 mask : TEXCOORD2; + UNITY_VERTEX_OUTPUT_STEREO + }; + + sampler2D _MainTex; + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float4 _MainTex_ST; + float _UIMaskSoftnessX; + float _UIMaskSoftnessY; + + v2f vert(appdata_t v) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + float4 vPosition = UnityObjectToClipPos(v.vertex); + OUT.worldPosition = v.vertex; + OUT.vertex = vPosition; + + float2 pixelSize = vPosition.w; + pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + OUT.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); + OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + + OUT.color = v.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + //Round up the alpha color coming from the interpolator (to 1.0/256.0 steps) + //The incoming alpha could have numerical instability, which makes it very sensible to + //HDR color transparency blend, when it blends with the world's texture. + const half alphaPrecision = half(0xff); + const half invAlphaPrecision = half(1.0/alphaPrecision); + IN.color.a = round(IN.color.a * alphaPrecision)*invAlphaPrecision; + + half4 color = IN.color * (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd); + + #ifdef UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color.a *= m.x * m.y; + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + color.rgb *= color.a; + + return color; + } + ENDCG + } + } +} diff --git a/Shaders/UI-AlwaysOnTop.shader.meta b/Shaders/UI-AlwaysOnTop.shader.meta new file mode 100644 index 0000000..4d47199 --- /dev/null +++ b/Shaders/UI-AlwaysOnTop.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 968c47519aed5614385f271f2ffe400f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI.meta b/UI.meta new file mode 100644 index 0000000..cdf1f4e --- /dev/null +++ b/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d663d41b69157d47b48674708c45a9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons.meta b/UI/ButtonIcons.meta new file mode 100644 index 0000000..1503af7 --- /dev/null +++ b/UI/ButtonIcons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 848f1fb7e7025304c9df551a8d4b6a8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons/ic_a.png b/UI/ButtonIcons/ic_a.png new file mode 100644 index 0000000000000000000000000000000000000000..70bb4c33d0578448e6942a4d51332f16b15d5786 GIT binary patch literal 863 zcmV-l1EBngP)%;a#xPWK*&oHs?SVlPP!=mg6Us zWz~8hEjjKo1!=fvP^bGX}xI)oO+Ov$ic33lxMWxzG+EK|!J@x(Z-07@#nz9e~(6C(E)c z=Z*0-L3ZqW5B1=UK#1jXdGp$4vjIUkrJ=Zdlu}iXvy@mm=A5qylkihWtoQf(J>+>_ zohL~G6hL*(*Z3YmBF?}Lg^1($O7rfRm`o-p$o9N+Kp|ZD7;G7ZVTgicEFlE~)XB$S z%cv*{Ng167u?ThYsk*5}8HokJ(tsNI7+e{hPBObxmQVqntk>(aGz`?kSNFIwIv$T8 z!8gzWcx_&`+wH|U2juG94v?A6W*0#z4?6ZJCUu8eC)CcPi7f(uOe4R-vm&VRm#DghAjX9 literal 0 HcmV?d00001 diff --git a/UI/ButtonIcons/ic_a.png.meta b/UI/ButtonIcons/ic_a.png.meta new file mode 100644 index 0000000..fadd7b2 --- /dev/null +++ b/UI/ButtonIcons/ic_a.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: 6135d65b5835cb54b9e8f2b4dbd198e5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons/ic_playstation_square.png b/UI/ButtonIcons/ic_playstation_square.png new file mode 100644 index 0000000000000000000000000000000000000000..00682e904de25c08d9357f2e516319fbc20a5b4c GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#S9E$svykh8Km+7D9BhG z z%KL`RaNo}-{F$uY=NrA{o$V*tECtzqqx0IWrRO*Q-CsT5n|D^$h3bd@EU%lLxok2w z>%b(3wPs7$rG8y^{y5d4(c$36Fte&_*EfB;o59Y?L;+mApa0ga+eeS^aj^j5G?rP} v)^es9o(o=2YOP;WduH?bwLph8%&lNdX+L&Y*zg@Ykjvod>gTe~DWM4fXXRY# literal 0 HcmV?d00001 diff --git a/UI/ButtonIcons/ic_playstation_square.png.meta b/UI/ButtonIcons/ic_playstation_square.png.meta new file mode 100644 index 0000000..64871a1 --- /dev/null +++ b/UI/ButtonIcons/ic_playstation_square.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: d57b15636e033924a92f9ac33060c86d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 0 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons/ic_playstation_x.png b/UI/ButtonIcons/ic_playstation_x.png new file mode 100644 index 0000000000000000000000000000000000000000..44fe2c4a277fc70c2abf6440eb9d5fcfd3e9311f GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#S9E$svykh8Km+7D9BhG zcWPuYAcL#p;ru49%_`P;esn>igTpd+qI+u3fcx&G73@xWl!*@n<%3 zocbGkNls~R=jL5pr`#4Sn`rjv0JH9{wN*>zTCDC?xXb3T!b7rf(iaB7%o!HTQkOh@ zG(&7+TW@lfo0MJOO2N!o7RyqWynHl6XyUToWV=q2TA55@J^r)P@Fq~?i}T&75Ba$cC8kh$>s8Taq@Yi(}GGYYUjKGIcU1v z6Arsx5n=~J+Z|W#${tlw x$X7b}-Yfn~VPUnPf%*A({?7t}5K#I|{#J~{ao^0&8ej}Cc)I$ztaD0e0szar$2b50 literal 0 HcmV?d00001 diff --git a/UI/ButtonIcons/ic_playstation_x.png.meta b/UI/ButtonIcons/ic_playstation_x.png.meta new file mode 100644 index 0000000..bfddcbc --- /dev/null +++ b/UI/ButtonIcons/ic_playstation_x.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: cf0ec6b0b67c5bd41846f34ed96dfc63 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 0 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons/ic_touchpad_press.png b/UI/ButtonIcons/ic_touchpad_press.png new file mode 100644 index 0000000000000000000000000000000000000000..76ad49aff33ff0226f63d4e4299b3387b2431d9d GIT binary patch literal 1762 zcmV<81|9i{P)o^oPBNi-JfW(3Yi(H8XyIY=M$`efAfWATd1}#r;;Ry;)faVEW#Dd+lcgF%vGJ*vQ zBp8VW5=dwKCFiuR`;*j3)AUY0>0sj8?eUlIIJRReRiZ?R5+zEMDDnTqhRPX4w4;-X zw(p$6kmp%N1GYD9J#9ZXHa2?dR|H7WR@2ti_Db$R-D_>9Dkm&eL9CXBwx)_yA{c19 z;S~0!)e%^AJr$`6O8chmcNM8kfbuA!wV2T2 zgG0$CrfQYh;f9`b$oMoFdOp`hnNynpeO=LZX_e0{^cDs;`o}C{3{`c>9etZDid5wr zW#EIeN|yq5Qe+P$G>y-ug~Hp zJgs~hg;k4+gVvNA`9tLaipDPhB<*otjf#g;_6=QugnUgc6ExoMG^aRFB$zj_$$364 zGt_7lMrOa`Q*mMX+2y>pS_UXmioml7D>B;bYn88|tn5`pqsL}v3SmXYkPup?if9x{ z6^pQSK%0GDSVf7}gY=ixbpquK^xDfYMIq*^l=%AkQqRxN>h0}Ky}!S!kB^Tqe|vjd zZEbC-y}doPzrU|C09GZxY2V+p?_K?WRa;G8{~1?tQzgS6oSt)9RVnfE@}lnV??aMo zfGilw1VNxY&r3@b)PkpOTN_BJ@^vghNfq?UKZ3guQ1o=DC`UXzJgBFqr||!sot;oA zFsKF)f` zy1EMMpbW~Q4#+~-r9jPUi*pnVLD7;ZAS35U);9d)~1dVG8guYKPqts=tLPBVOl zG63qJ?(OX@eSUtDBhI-EGF|G#wLgi1r3P5e*1IjYcEU)B$BqPop==^3;>g+5v%lt#v&UNeKGMsf-!^Q4YXl z6Qf}~qA?-{VS3;oUqCgtjB3Du7b;CRc6CZkeR&8WHo~sy}cR{J6TOa z5D3BS9qF#M=;Q>M(E|t>G#Z__bmRyn^i?n!HD@rBw^t*uX=^vGQtW~m6N0d+YOAYg z(deHgW}oukKxO>!aC@7PUj&lchCkxt-<0>>X&T>5)iLtzo%VSF zzgai@=x{#B@zg3n^S1%}lpp#ueH-xV$Pv)|jpWM?IjE*R!rx$u*@v)Z3+Ktd&bYll!r7fTHCR z?6g2CN5Va;SfC=6$iZJIZSYH|r9_DmB}$YiQDP17A1jJJPOAa;^Z)<=07*qoM6N<$ Ef@^C%&;S4c literal 0 HcmV?d00001 diff --git a/UI/ButtonIcons/ic_touchpad_press.png.meta b/UI/ButtonIcons/ic_touchpad_press.png.meta new file mode 100644 index 0000000..519e7d7 --- /dev/null +++ b/UI/ButtonIcons/ic_touchpad_press.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: a2b2678c0b9deff49a31985a44125a6d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 0 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ButtonIcons/ic_x.png b/UI/ButtonIcons/ic_x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8f179a3941ecc553b8dc8a7adde1c30f7ed3a5 GIT binary patch literal 860 zcmV-i1Ec(jP)pNB0O# zzK#se`=DMl9=OGY?6v*!GX;>-#RoSzQ2?)c!;5}{N^3s2OF%xxdc$=FD(U3lJ}jjP z%>-W?GZ4eqfY;`tzA0y*@93}BYbc7M(YD!a!1K)O|8lv&a=C1@jmKk%;~4IwF$)|( zggwZz4Eb^0=JVS-@M5v(^w0AgdlFy6L5nsx>VQI+wB8O#NIEq+pfIN0rncQ~hr*o217O;_(ns$H8^i-JE!u(P zQ^Em=eeZs>27(|!X+#&XX}@n9_YtIA#CsHAyWMu2jiSgH6fblkQjr%KYul76u%vFK z5qhd&K_Ze$gkkvZD4VucpymKo(nT$i9E8Vo1n-!5y`r)9D2C#%;7sr&FMyZazcK0_|3CJRTeE zhr^-sTc4o$BiM5mp2W8HTQ95d=;z>GMb5;euFze}D%BVMZ*ZTrUS2en7I}3C;3fq* zKhYar44r;}s=K%b`}Dot*a@JTo+Y@)&%2Ig(XCx6hCZMhLBwDKs?(Zh9r8sW0jla< zj*o*&ojyo|!%K=sJ%%AcH5=0PkvE~=ME1A3zFiL}EcgfMF+JqQc+L(00000VM*#X|eOpm$O1C-)WR4`0Cu5}O0Z0}Jy9 zW5IU0J6oO)$*_eUFW^=d!SPPx;)VKdD9P*!MdK!?hz;e`#3+(;tPle-X`*Plg!37G zvn82?Z&aH;Hf7dGlfQ5@i&sUlf^3i`zgdhguI{-qeaMu- zInv}8i?ONt=8fwlnTAOrJ-kK;Hx=h4Z8D^VhUc*9B7Fu(8(nce#MJG`E6fhjK0oZ* zDSL!P!?^rEd(<`#yvRe{i)|{eIojUv5<_i2-6zxjcO@q?WxJ<9!yKx=Ls&&CG0Hoo zZ5ypQo;jYH42UBlJMbH?cwfTyo zDCGQ={3h+HPcaH>^ATl-kWjtB=F~%)Tv=b8D4p&dmpK~kwI>gy`g`!Xd=5YuLv=yb zgXf^1KwBzyN=~s-nalvX%=?h(QpO>QqL??d=+aMe8o*4iQ4%Grp*oOxO7RIpjfQvV zd*(-{lHC(A+RT1^G%bzsA#1yfVyG_YWU`|$)lop^slp9rPRLHd%sDjw%g6=)0U$G! UhThyktN;K207*qoM6N<$g79o!xc~qF literal 0 HcmV?d00001 diff --git a/UI/ic_arrow_forward.png.meta b/UI/ic_arrow_forward.png.meta new file mode 100644 index 0000000..2fc5454 --- /dev/null +++ b/UI/ic_arrow_forward.png.meta @@ -0,0 +1,158 @@ +fileFormatVersion: 2 +guid: 05ab3b2f5f860da42b3308df0666a551 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ic_slash.png b/UI/ic_slash.png new file mode 100644 index 0000000000000000000000000000000000000000..037200ed5565f9a42b3789e71b9bdda4bb1a1c53 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<7!3HE7BzD~bQk(@Ik;M!QVyYm_=ozH)0Vv2= z9OUlAu8`xegofxITTP=-kfpcg{ci zzcct`tx`00a2*k_u8Q$=W>T}-^{G*WY4z4`Pr_|wbC*uJ&YKgr{MlZ+-^@$}wk?|l z5`390{vBHX`_7r)`2q)K^)X%fyP302MxHt1mjc7dkM{)|DjU@tE`EReD~7@7F7uAx z?!r93d>9s;XAzLN&*UJk!4y!drC?;sB=Fsxagm*1!Hei+`B$ECH#B_=WSI8gf;n?Y ztvG|~GG&J1dj5o0(hQQd%ng%1+A>UQcpUEa!dl(K|2@Nx_sXH7YEHkZ{xW9s25J>< Sn-K@}C4;A{pUXO@geCyAl5`jV literal 0 HcmV?d00001 diff --git a/UI/ic_slash.png.meta b/UI/ic_slash.png.meta new file mode 100644 index 0000000..1da74b5 --- /dev/null +++ b/UI/ic_slash.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: 91419ac6c2fa8cc47a7a7abae52de0e1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/subtitle_arrow.png b/UI/subtitle_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..09aa152609ef11a298fdeaaa9f3379846fe16736 GIT binary patch literal 631 zcmV--0*L*IP)mRJ1V&QvEra;v_q#7QZ(8aaZoJU zSaFYdv@siRLM+qUN z*DgQ!W}j^E;LcO{1MT8?cCTsm7jp~E;wE3#`Uu&7Bs7X|MaZFTDzykXw1~42a%d1Y z`G!zugd8Qsdqv1mYAU@Wo-9I+9O5QF zgpfQ!j+EkABIHOlm244m#ENH+kRwLipDFfmk)%DrVV~Ft9onKPOB)G;+p^NJJlax(kmp}eGhw;w? R{n7vc002ovPDHLkV1nS17%>0< literal 0 HcmV?d00001 diff --git a/UI/subtitle_arrow.png.meta b/UI/subtitle_arrow.png.meta new file mode 100644 index 0000000..7ba74e8 --- /dev/null +++ b/UI/subtitle_arrow.png.meta @@ -0,0 +1,158 @@ +fileFormatVersion: 2 +guid: 70f4f5ffc88f2004296ea8b96cf5de9b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/subtitle_bg.png b/UI/subtitle_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..da442da8058382b036b45a24f0aab6f15d80664f GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>caTa()7Beu2se&-0XOPMVpde#$ zkh>GZx^prwfgF}}M_)$E)e-c?47??kMx;TbZFuuKQSSA%N(e{vkwU>L?18=j0 zO7_Pgnwy(5*vn3ZT;f}_#^D>^B)z#F)BQeiN#rX8?OJl^`*)t_JQ5OVc8w;FYR~;- zRJ?Ma`dy5K;iZ2|ZCvMFw$Xn*|M*u^Ilr0D_wD;P?!0C&-z2Tp z!;}5cs?Rp+ahJ<)ZH`wxJ2Tz(`K`&?p2g2Jo_SeIz5TI6I#izJQH9UvJ(<-PxVLso zbw2+g@@j)nZqd3#-MwcH`@gBKuGG#vXK?G&yPV5%8Y^#o?_mv5&y3GL+j-NM@$8YC zMLM&y&My0va+dl0E5=zt^XfnUxx1%$%QMI8Nna0E6>7}Bay@>{zTW=cVxbLjZ#t)& zT{$bN(b;Q!OLwi)Sj7;T%iJ z=j0e2zC@XQ7eZ&I3o)vOGBU>cJ`y;#KWoAIriKR=y$x}kFVtNfJRR)yl@;u2-Qpit zh?|LDxUBa-gg?i{VS|8x4hsu6<3Xq4$rKFGTrl5=X_xqg^S0UoGV_%d_%r?5+1rrE z`lZmYXvxE8N9T6;Fb~ohN9XYz9@ObRJjSXcR)Bow^ z%`tiRN6lYx!QJzfcE@_3afz%x@3Y3~hTgfDJz;;3y*_$MzfO2VtVxhwoy6KdlR`Oe zyGY+(EqLMNDdvBtKiAKbXQ|QsW>;_eULv>R!PXlA$&oYDH&s1f)(|vLx=_P8HS_VE zl1)$fEv6(soNiOUs{OQ0@v{}rotAx{^z2OFx$3PFndTeitwj4ynw+1#js5MfwLLc+ zY6bdS_gq{1@k`;tMBRfv-*;Y_w>P--S)GSJ*JZo%ui4cCo>!0Ga;_|z@wPa2|1$P+ zH7BW0e-<;Zvzo0Edfb;U`|!+)wR&HUoHJ3`s3drfSu>=T!}Rioc@Lgj7>BxdI8|?W z&EDC!01yKF zedqu{7)_r5V>Nm9nO=;h=p^`u9R^^9?NUGibenMv2_2^Uc>__0`Je`1_Iqvj0-*Yg z?mSBi0IkRXAFrLM(8&7-iDtnh>4bGQFR6WbRlQJ`CrAn@@5(>lzIlTKY^#-*E98!2 z^r*xXVM|a^PO&zSSzJ2TVSigT);oO3BHF#6xyxgC;RM??H204-=3fhgeV&bROWuHy z{Tvq93C4^wI?V9cei8-+w%Q+EV?_k1HdmE9!GJcoG%DT0)D-u6OVkQ9E1 zf;Zj_HneLS)DZv)>v@G?A>RiYeT^1ojIx##ZBfp>^)`4IQ?~iZK^-&-Qu5Y2EEQB_ zw%dMVA}k@eHtlugB4ESbGfeU0&6(jP4y`QEyOtHg;QpzzGwNdT{jXz{Kd7q#&sC{mNm6hL-^oyJ?-67B_(5i z1tE)Z5|?RFyBnAFF4hlQrYb4fHy+3;jmOAi2X7g+hB4d+ef#Lgdq54H!BsSwO@s>- z!O~t(6LglF@JzZQ>7SpBelX4m3HuWGIRE;OktP{p|I?xHy6<#*FmmS^l5h{l@4@la zSaQ=oZQk)PQE=2(2#ycFl5Flk+EX0_!HyNNy6Yk*=lKwPz%W9yk_dLf7-0B+U^Wq6jwZI)c$2H9 zT!=_uOo<0E$zX{(@fA_3j%hCB9`XCVWhk!N9rf+n8;-bi!Pk*KtzPgz=bhDVWfq1B zvZ1Hf&1Jf)WePDKaUE(LOEt41?!2{e4S1t8oqzrgj)tXca}&zgzk-m!_k0hFxW&{c zukyVO*Vr5l!y5O09=YhYjZc1ps-k&Ry`gjGwf9M#W3o%U#lAYs2pQ z8}g3fO z?5fho^45B1aQda{2rb!g(T-U(&|N4(SD818?!Qv0=9|X05HK@zyHQ473ISpK(8<1Q zxoVF62^sJDlEU{Ep0q|MM3mw({fZVc^D=Yx+mjZ%C-R|sgXV_#$hGmbo}7pxRc6|4 z_Dc}{_{&C?!aK!eXc~RsX5e@Z`#qEX23)YUpmuMcP3*U;p%5>6v;3rSpIhzbCeK4| zMO4Q*4zE=)VbvKo?0#T}(;kOYu~7Ne&t^9&KVRtOy*>6f<$KoalCCjfWxWfK26Iae zcAVJ6T2?XSa`9mb=WDfA`sz(IwP?rcvgr2F7HX{L%#cJhK#ADM&#m55Jf;jRLpQ}a zzZ#pXyj7T9Ef~#6W~?eX^x(q>xvqGRAk&&GXAjPvDWuF@>ZilAPae6yu5t>u;pgU~ zez|Hi74%J2wSt7WeHJShMPpD^B^Y64)9!_FT<0e;EE)&u}*ss#UE5uq%8&B8SV014T@1p;!O zC;%WmYiVZU6yd=h|M%X`X(h(>tBvxJ>GGQ9_a2?RC6RmtQq+1+VON2}Gb=|Yof>sf z_fm!QJ~6937`KyUy9)}6663b*NmkH_E0TjHKa$@DGxxS6$C__Z>yJv8kKDSvw$A3S zj5Lq6jE(1xK7Bm99;?y&UhQVo;oeQ!<|W^-u&;;E0lvPzSsz*L?d@*d%j1`q6c2b- z5o$la^DAfV<*s;C9T0q$XPtM*#W$CReePasp*a%qM51~3rJ88Bp6-n(^euRrtmHYw zQtg~RC44F+?-Lb#B#u9Uz0v&*_=TY%*kBu^%gF>okl?*taXf>WdkNn$mMR zpbGsGE`voa9;7+9#BXRQ;_N`Fn38_JX+&=qR`4&^32{CR7~Fsh#^)CL$&0U*b<2 z{<#@rv$RS62LHSgFXKXRhBYwwe(+~_84-tgDx;z-dugzxYLSzXll>sw272xBi}>cV zi1pdI6T^s^zL9HkoSaTZcYvi0Dj*+-MQ<_v)-e!Q!b<5VcB2GARXOQ*E#RqTgRgd% zo`?29mSUEB{jMWoQ;+){j|`X$f%ldU&h0b_k|9a;BWq8%@hhcd!hh@vPZv`j=Kb#a z&+XjN(o;}e<3ckxZ`kC^l@n;Y1iFgd$I37rJ!gE8ED1WHQW;~9@OG~gQBYEkgUyBM zD@qch8#5G{XH()P!slZwIX>r(EJt_qx)knbIW;0xKXWJgKg`ab$h<>=5GVaga*S^| zZO@{Bng)0~?iuqv|L2Zr-5g$-= z24Gh8%cD*kJ~;E^*`ZAMak-JtenAtLk)6b`Z3_&4BDO2l zAaMyAjuGG4TbJbN{{ga(clGSb_O{ffM5@3wiR-ZM6tqujak^!tHaiCE(DXd+YjqY8I`HCt%ks6vBX)CUrZ0mD)2u@bwJP&JE@sYFWF=Al%r*@3kK|8fK z%<4qddQz2lSnpP_hN|*nMLIL!=6OJjKrTtwh)v%ML}+Jj{^}kA?@JUSpELcA?q0u-PRB?t}bwu z2%n~4e=IHOy)q5YzK`9JXh8`-7q!g$Oo&raz_!0fY&E^DxgWAGzVXwni84KHcUUyT z>tDy&-CCrxTnSFPhu8L5@6iN+G18WA4@TA(1|bU|)l0@{HFi`yP4sIFf9WcPi`TSc{P5 z|A@AslJ0m1Wi{2ms-1QXgZk;^(wGuoo7YHNgWn%p_73&y&Jhm6)9ZNfdL34n&2aK+ zl%p@fjdhfDwO=PN-XHzn)6i7eXYfp&tw+c3ozD=qzsi zzaF+aFE-fTrph7ENU1z#M=7)qH9}q%5eNHJI%d>EhmR;GJB~gql5`SMe(e$JIt1EL z*3Z`s<+o}9kXTyQ)d65|Yz83nX^) z&B?seqN>DrCx|s3APH6LFu89StZr1%$JG(mV1^uNLLg2cyA>c^UIlyBKyjS)JR)uV zMS?BBoTNq>Q9!=z_W-646dwdP#@Qy04<>#&l|RtPLQj7A4sjX~FvAB!kmUDmMaE=N zbobAw^D^fupl{jCH=vU;TMdiCgC5@{T8=4tZLl3AmLTa9`)XRpy69EHH;;E0j;)OD zCPbVW)(Bs*0?}_!xIKwKn!T^5h&Tel8_U|OSx51Vy+E$y(frLb*m|UwRvU_C-To)e zpB@J%+gy*@4=vr=v8+V>=W-jGJQ}z*?)D&VFCGMJRL zv018Ggo^j)Zf44YY2!34oZ zc~B0UhRqp@KwgWi02bW=XTfne+`>@{!ckYn=HLw=6>lFx)QYpfBPj59n}+K=J^-_L z|J+zYM^+2Sd_w|kfd#<+_y4gd9zJ|{fVxF>SE4||31FKJ9)sW@z&|Gp+K~2l5>Cm0 zw5laLFk5{QBs{)iV`CF7uLb)1Dd2-|H;@S#T7f)CkOTg!osK}Ls>(2u6B-Q2T7mK! z4lPg#d$Njy_R8sn0e}1V`DcICS3yS>zeApXsoC_?AQ4ZaR3$6*V}$EvyZKwC5>9Re z;=tmb_r_2Bg0b*0gfBOoy$CEDyqDF;@|kcq4H3Y~^%i9MeC}q4fUqMs0e3m_Plyb? znOk z6F*_l3mIVutxJyS8W}@&CMshke~fPyx&%Hxf#@3w)H^e$V%vcs<#1YzlFh%(xdc7- zgpAx38f3$my>4mX&wTF@AcQYZcwZli)5M;W;^Q|*@=*W>OY}DeQ&zR3T41OW$}x`6 zc8B3)5wi$ds3Brf?WI>0AUB~07COJ~lqd$<27srei+nC{%Jg2fDP-~p6(5-8P%lNm zVvI4h`)Z*teXEZZnO!@Chd2!%O`IN*CC&VFgFLdjIsVXL$gSZ* z1kP65Y{I!$lho0Lofiif3u+Xe8ddwTW2A;&Aj~gstOK-#MgfsQ)XDl&TEKCetCBPQ zLLd|uoH%+v(UrEIpKN>nK&TYmnUt^map@40x6$IaQ{L_ijEso%3i zT?;I!n}j++up*`Wm6%OyQ5x47qTmd0+lMvnQagSZtWiJ`2JE9ntSo5pDi@ISQYh(n z;^9rg%0fB6UYNM=Vz$q!tCfYCTKqzPq`B>k*0z{&B6Ez;yuAVXl4sIfeH46q9`Wgf z4QC7|PFGCs+;uT8o{IF^f{sU^`KF97I7d>QZ*?R7X$ka+G~C>#Z6RF1y?NN^LD2S3 z!i}y2McD5S)A4T3mgUz~Aj!5_bPWo$t`kFw6Z*)@xXl?CB{vUoQW?0WNTt`Jw|Gp*m;E)+`-f??|`U0A!sjfj0|=f-!rO6 zdU9NbnpJ+T1U${8@~K~xgiZe*dx+*6`W!ubYA+yqeP6)1*0t{iFo!Kl_FKk_@o#II zUc$Yu6Y0j>ug5gSwpg?+SjXtE9*U|{C*Bs4WkyQp539#!jcxDLdB-!>9ilm3F$#cxYinAquMF3?;v&MMDF=w*gK^+W8{f3!e9gzBV z`K`T#a<}q;@)))3h*dVQG5lE&He|6Z^d-^oDIrmykgu4JecM16!yJ%H1G<3 zwnQ?-17tm;uS64@TD{pVlt)M0jE#yB&mtjbLd445pgNdM~pI$#BlE){DW;QdZ$xpcHO z&#}DYPqm&n*%slS{L$mU=QF#p%181JmMx7(rgt1l#A`%s&f>3R#SxFe&}z@=&YDB z>+6e5v7rm@>4%cxbaz=C6f(%`l-Lpx)KBs{?6gHv3T@$Y)Op6l%KZAc z@v*MGBs)d1Jmp_~U$u`&M~7?;uwsnn_ZyOzOPt>EJJP@m6Er&apfm+#8EtccS`-_` zz(oN>sdt5?V#ghC-66c!Djs<-S4Y{Tt~DR^Yv_J?^2R6rJi&s&Hs!)&P--M2e{5vV zq=x)NLER}>fb&mn9MV9q)w;KLeBFgDJsm@|0H%FjA)znr1>3m#l=Clc=}gn!`1wsl z9b7nTQW}5& literal 0 HcmV?d00001 diff --git a/UI/tooltip_bg.png.meta b/UI/tooltip_bg.png.meta new file mode 100644 index 0000000..be182b1 --- /dev/null +++ b/UI/tooltip_bg.png.meta @@ -0,0 +1,159 @@ +fileFormatVersion: 2 +guid: 3f553a3bbdb71b8488cc97f8ab179637 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 92, y: 92, z: 92, w: 92} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..b4d8ea4 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "com.r0bbie.vrsubtitles", + "displayName": "VR Subtitles", + "version": "1.0.0", + "unity": "2021.3", + "author": { + "name" : "Robbie Cargill", + "email" : "contact@robbiecargill.com", + "url" : "https://r0bbie.com" + }, + "description": "Display subtitles in 3D space for XR applications.", + "keywords": [ + "vr", + "subtitles" + ], + "dependencies": { + "com.codewriter.triinspector": "1.13.2", + "com.oss.leantween": "2.50.4", + "com.unity.textmeshpro": "3.0.6" + } +} \ No newline at end of file diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..9edbc3c --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 677960c43d5798e48893bac07c6c81d9 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: