diff --git a/Assets/Plugins/JSL/x64/JoyShockLibrary.dll b/Assets/Plugins/JSL/x64/JoyShockLibrary.dll index e2ffd1ab..31c2d991 100644 Binary files a/Assets/Plugins/JSL/x64/JoyShockLibrary.dll and b/Assets/Plugins/JSL/x64/JoyShockLibrary.dll differ diff --git a/Assets/Plugins/JSL/x64/JoyShockLibrary.exp b/Assets/Plugins/JSL/x64/JoyShockLibrary.exp new file mode 100644 index 00000000..33107615 Binary files /dev/null and b/Assets/Plugins/JSL/x64/JoyShockLibrary.exp differ diff --git a/Assets/Plugins/JSL/x64/JoyShockLibrary.exp.meta b/Assets/Plugins/JSL/x64/JoyShockLibrary.exp.meta new file mode 100644 index 00000000..5cab63a6 --- /dev/null +++ b/Assets/Plugins/JSL/x64/JoyShockLibrary.exp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8290861ef07e2d74497c02c16ea45608 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/JSL/x86/JoyShockLibrary.dll b/Assets/Plugins/JSL/x86/JoyShockLibrary.dll index 50d2dafe..62a5aa95 100644 Binary files a/Assets/Plugins/JSL/x86/JoyShockLibrary.dll and b/Assets/Plugins/JSL/x86/JoyShockLibrary.dll differ diff --git a/Assets/Plugins/JSL/x86/JoyShockLibrary.exp b/Assets/Plugins/JSL/x86/JoyShockLibrary.exp new file mode 100644 index 00000000..99426f69 Binary files /dev/null and b/Assets/Plugins/JSL/x86/JoyShockLibrary.exp differ diff --git a/Assets/Plugins/JSL/x86/JoyShockLibrary.exp.meta b/Assets/Plugins/JSL/x86/JoyShockLibrary.exp.meta new file mode 100644 index 00000000..d692a168 --- /dev/null +++ b/Assets/Plugins/JSL/x86/JoyShockLibrary.exp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 47521c369c3ab7849aeb7e479bad21ea +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/UI/Common/Controllers.meta b/Assets/Resources/Sprites/UI/Common/Controllers.meta new file mode 100644 index 00000000..3ac6e35b --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9421977f50da33418300b1de2773909 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader b/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader new file mode 100644 index 00000000..2c9b2b04 --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader @@ -0,0 +1,150 @@ +// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' +// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "UI/ControllerShader" +{ + Properties + { + _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + _BodyColor ("Body Colour", Color) = (1,1,1,1) + _BtnColor ("Button Colour", Color) = (1,1,1,1) + _LGripColor ("Left Grip Colour", Color) = (1,1,1,1) + _RGripColor ("Right Grip Colour", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull Off + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + sampler2D _MainTex; + fixed4 _Color; + fixed4 _BodyColor; + fixed4 _BtnColor; + fixed4 _LGripColor; + fixed4 _RGripColor; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float4 _MainTex_ST; + float4 _MainTex_TexelSize; + + struct v2f + { + half2 texcoord : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float3 localPos : TEXCOORD2; + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + }; + + v2f vert(appdata_t IN) + { + v2f OUT; + OUT.vertex = UnityObjectToClipPos(IN.vertex); + float4 scaleVertex = float4(IN.vertex.xyz, 0); //By setting the last value to 0 it ignores the flipping ( loses relative position if sprite is flipped :( ) + float4 wP = mul(unity_ObjectToWorld, scaleVertex); //Get the object to world vertex and store it + OUT.worldPos = wP.xyz; //For use in fragment shader + float4 lP = mul(unity_WorldToObject, scaleVertex); //Get the world to object vertex and store it + OUT.localPos = lP.xyz; //For use in fragment shader + + OUT.texcoord = TRANSFORM_TEX(IN.texcoord, _MainTex); + OUT.color = IN.color; + + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + fixed4 t = tex2D(_MainTex, IN.texcoord)*IN.color; + //Calculate relative position + fixed2 relativeWorld = fixed2(IN.worldPos.x + IN.localPos.x, IN.worldPos.y + IN.localPos.y); + + //This becomes the UV for the texture I want to apply to the sprite ( using the sprites width and height ) + fixed2 relativePos = fixed2((relativeWorld.x + _MainTex_TexelSize.z), (relativeWorld.y + _MainTex_TexelSize.w)); + + fixed r = tex2D(_MainTex, IN.texcoord).r; + fixed g = tex2D(_MainTex, IN.texcoord).g; + fixed b = tex2D(_MainTex, IN.texcoord).b; + fixed lg = 0.0; + fixed rg = 0.0; + if (relativePos.x <= 0.5) + { + lg = b; + } + else + { + rg = b; + } + + half4 color = _TextureSampleAdd + IN.color; + color.rgb = (r * _BodyColor.rgb) + (g * _BtnColor.rgb) + (lg * _LGripColor.rgb) + (rg * _RGripColor.rgb); + color.a = tex2D(_MainTex, IN.texcoord).a; + + #ifdef UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPos.xy, _ClipRect); + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + return color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader.meta b/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader.meta new file mode 100644 index 00000000..222aa745 --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers/ControllerShader.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: cfe42e963af2b934bb427536d4d29068 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat b/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat new file mode 100644 index 00000000..98af8e0c --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UIControllerMaterial + m_Shader: {fileID: 4800000, guid: cfe42e963af2b934bb427536d4d29068, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _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: 2800000, guid: d44d97eed2a444b41be17f9737b43b5f, type: 3} + 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} + m_Floats: + - _BumpScale: 1 + - _ColorMask: 15 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _BodyColor: {r: 0.11764706, g: 0.039215688, b: 0.039215688, a: 1} + - _BtnColor: {r: 0, g: 0.11764706, b: 0.11764706, a: 1} + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _LGripColor: {r: 0.039215688, g: 0.7254902, b: 0.9019608, a: 1} + - _RGripColor: {r: 1, g: 0.23529412, b: 0.15686275, a: 1} + - _Rect: {r: 0, g: 0, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat.meta b/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat.meta new file mode 100644 index 00000000..982504e2 --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers/UIControllerMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55b3a6672a0ec294d8f3edb9c1f94b36 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png new file mode 100644 index 00000000..ac9544cd Binary files /dev/null and b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png differ diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta new file mode 100644 index 00000000..fd2c7e0f --- /dev/null +++ b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta @@ -0,0 +1,276 @@ +fileFormatVersion: 2 +guid: d44d97eed2a444b41be17f9737b43b5f +TextureImporter: + internalIDToNameTable: + - first: + 213: 6680111460237765715 + second: pcKeyboard + - first: + 213: -418123597310507147 + second: sonyDualsense + - first: + 213: -8353205122300186910 + second: sonyDualShock + - first: + 213: 997315915213647506 + second: nxProcon + - first: + 213: 8903944674802394384 + second: nxJoyconPair + - first: + 213: 9166690998051772148 + second: nxJoyconR + - first: + 213: 2557230542604182733 + second: nxJoyconL + 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 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + 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: 2048 + 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: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: pcKeyboard + rect: + serializedVersion: 2 + x: 55 + y: 3305 + width: 1190 + height: 692 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 35cec77faf584bc50800000000000000 + internalID: 6680111460237765715 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: sonyDualsense + rect: + serializedVersion: 2 + x: 1425 + y: 3183 + width: 1250 + height: 869 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5774916bdc6823af0800000000000000 + internalID: -418123597310507147 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: sonyDualShock + rect: + serializedVersion: 2 + x: 2779 + y: 3189 + width: 1258 + height: 797 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2eee25dc234731c80800000000000000 + internalID: -8353205122300186910 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: nxProcon + rect: + serializedVersion: 2 + x: 31 + y: 2131 + width: 1212 + height: 840 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 29e27277a8d27dd00800000000000000 + internalID: 997315915213647506 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: nxJoyconPair + rect: + serializedVersion: 2 + x: 1599 + y: 2069 + width: 852 + height: 924 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 015e351b18a219b70800000000000000 + internalID: 8903944674802394384 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: nxJoyconR + rect: + serializedVersion: 2 + x: 2923 + y: 2590 + width: 922 + height: 473 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4f695a045e0a63f70800000000000000 + internalID: 9166690998051772148 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: nxJoyconL + rect: + serializedVersion: 2 + x: 2925 + y: 2048 + width: 924 + height: 473 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: dc4a3b431ab1d7320800000000000000 + internalID: 2557230542604182733 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 71a329c3..85bb7786 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -447,7 +447,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: ba34210de39bafc4d9bc0bb9163d83c7, type: 3} + m_Sprite: {fileID: 21300000, guid: e63dfe3b432d7404bab9ef307426a0bf, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -2684,12 +2684,12 @@ RectTransform: - {fileID: 5365813} - {fileID: 589585545} m_Father: {fileID: 1434436823} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 500, y: -69} - m_SizeDelta: {x: 206.38, y: 30} + m_AnchoredPosition: {x: 330, y: -69} + m_SizeDelta: {x: 136.83, y: 30} m_Pivot: {x: 0, y: 0.5} --- !u!114 &102085520 MonoBehaviour: @@ -2734,7 +2734,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 102085521} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 527828799} + m_TargetAssemblyTypeName: HeavenStudio.Editor.ControllerSettings, Assembly-CSharp + m_MethodName: CancelPairSearch + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &102085521 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4802,6 +4814,81 @@ MonoBehaviour: colorTableActive: 0 colorPreview: {fileID: 0} inputFieldString: {fileID: 0} +--- !u!1 &189878587 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 189878588} + - component: {fileID: 189878590} + - component: {fileID: 189878589} + m_Layer: 5 + m_Name: DualSense + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &189878588 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189878587} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -116} + m_SizeDelta: {x: 208.33333, y: 144.66667} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &189878589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189878587} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: -418123597310507147, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &189878590 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189878587} + m_CullTransparentMesh: 1 --- !u!1 &191459085 GameObject: m_ObjectHideFlags: 0 @@ -5129,140 +5216,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 205810614} m_CullTransparentMesh: 1 ---- !u!1 &208746863 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 208746864} - - component: {fileID: 208746866} - - component: {fileID: 208746865} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &208746864 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208746863} - 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_Children: [] - m_Father: {fileID: 1219573649} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -7.5, y: -0.5} - m_SizeDelta: {x: -35, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &208746865 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208746863} - 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: - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} - m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 14 - m_fontSizeBase: 14 - 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: 0 - 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!222 &208746866 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208746863} - m_CullTransparentMesh: 1 --- !u!1 &210898217 GameObject: m_ObjectHideFlags: 0 @@ -6152,6 +6105,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 246861488} m_CullTransparentMesh: 1 +--- !u!1 &246931085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 246931086} + - component: {fileID: 246931088} + - component: {fileID: 246931087} + m_Layer: 5 + m_Name: Joy-Con (L) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &246931086 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 246931085} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -71.33333} + m_SizeDelta: {x: 154, y: 78.666664} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &246931087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 246931085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: 2557230542604182733, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &246931088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 246931085} + m_CullTransparentMesh: 1 --- !u!1 &250718091 GameObject: m_ObjectHideFlags: 0 @@ -7149,6 +7177,81 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &313086642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 313086643} + - component: {fileID: 313086645} + - component: {fileID: 313086644} + m_Layer: 5 + m_Name: Pro Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &313086643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313086642} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -116} + m_SizeDelta: {x: 202, y: 140} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &313086644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313086642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: 997315915213647506, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &313086645 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313086642} + m_CullTransparentMesh: 1 --- !u!1 &316841411 GameObject: m_ObjectHideFlags: 0 @@ -7738,6 +7841,81 @@ RectTransform: m_AnchoredPosition: {x: 288.675, y: -25} m_SizeDelta: {x: 537.35, y: 30} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &349549288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349549289} + - component: {fileID: 349549291} + - component: {fileID: 349549290} + m_Layer: 5 + m_Name: Joy-Con (R) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &349549289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349549288} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -74.888885} + m_SizeDelta: {x: 153.66667, y: 78.666664} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &349549290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349549288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: 9166690998051772148, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &349549291 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349549288} + m_CullTransparentMesh: 1 --- !u!1 &355353077 GameObject: m_ObjectHideFlags: 0 @@ -10042,7 +10220,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &481396920 RectTransform: m_ObjectHideFlags: 0 @@ -10055,12 +10233,12 @@ RectTransform: m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} m_Children: [] m_Father: {fileID: 1434436823} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 716.38, y: -75} - m_SizeDelta: {x: 448.62, y: 30} + m_AnchoredPosition: {x: 476.83002, y: -69} + m_SizeDelta: {x: 688.17, y: 30} m_Pivot: {x: 0, y: 0.5} --- !u!114 &481396921 MonoBehaviour: @@ -10082,7 +10260,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Press any button to select Joy-Con... + m_text: Press button on second Joy-Con to select... m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2} m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2} @@ -10109,7 +10287,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 24.1 + m_fontSize: 30 m_fontSizeBase: 32 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -10815,8 +10993,19 @@ MonoBehaviour: numConnectedLabel: {fileID: 976256976} currentControllerLabel: {fileID: 1007704296} controllersDropdown: {fileID: 1317282580} - splitControllersDropdown: {fileID: 1219573650} + pairSearchItem: {fileID: 1434436822} autoSearchLabel: {fileID: 1359502640} + pairSearchLabel: {fileID: 481396919} + pairingLabel: {fileID: 1291909903} + controllerIcons: + - {fileID: 1905482487} + - {fileID: 246931085} + - {fileID: 349549288} + - {fileID: 778621019} + - {fileID: 313086642} + - {fileID: 785358485} + - {fileID: 189878587} + controllerMat: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, type: 2} --- !u!1 &528192059 GameObject: m_ObjectHideFlags: 0 @@ -12888,7 +13077,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Auto-Search + m_text: Cancel m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} m_sharedMaterial: {fileID: 2100000, guid: 6d4610587e293f74ca2b71ec1cf59da3, type: 2} @@ -14375,12 +14564,19 @@ RectTransform: m_LocalScale: {x: 0.9998709, y: 0.9998709, z: 0.9998709} m_Children: - {fileID: 1007704295} + - {fileID: 1905482488} + - {fileID: 246931086} + - {fileID: 349549289} + - {fileID: 778621020} + - {fileID: 313086643} + - {fileID: 785358486} + - {fileID: 189878588} m_Father: {fileID: 1219233811} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 591, y: -174} + m_AnchoredPosition: {x: 591, y: -224} m_SizeDelta: {x: 1142, y: 200} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &674573517 @@ -16875,6 +17071,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 774969484} m_CullTransparentMesh: 1 +--- !u!1 &778621019 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 778621020} + - component: {fileID: 778621022} + - component: {fileID: 778621021} + m_Layer: 5 + m_Name: Joy-Con Pair + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &778621020 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778621019} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -109} + m_SizeDelta: {x: 142, y: 154} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &778621021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778621019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: 8903944674802394384, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &778621022 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778621019} + m_CullTransparentMesh: 1 --- !u!1 &781200685 GameObject: m_ObjectHideFlags: 0 @@ -17089,6 +17360,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 784075911} m_CullTransparentMesh: 1 +--- !u!1 &785358485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785358486} + - component: {fileID: 785358488} + - component: {fileID: 785358487} + m_Layer: 5 + m_Name: DualShock 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &785358486 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785358485} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -98.333336} + m_SizeDelta: {x: 209.66667, y: 132.66667} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &785358487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785358485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: -8353205122300186910, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &785358488 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785358485} + m_CullTransparentMesh: 1 --- !u!1 &790907719 GameObject: m_ObjectHideFlags: 0 @@ -17407,81 +17753,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: 0, y: 0, z: 0, w: 0} m_Softness: {x: 0, y: 0} ---- !u!1 &812890726 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 812890727} - - component: {fileID: 812890729} - - component: {fileID: 812890728} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &812890727 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812890726} - 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_Children: [] - m_Father: {fileID: 1071554742} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &812890728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812890726} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - 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: 1 ---- !u!222 &812890729 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812890726} - m_CullTransparentMesh: 1 --- !u!1 &814330441 GameObject: m_ObjectHideFlags: 0 @@ -18407,93 +18678,6 @@ RectTransform: m_AnchoredPosition: {x: 247, y: -15} m_SizeDelta: {x: 25, y: 25} m_Pivot: {x: 1, y: 0.5} ---- !u!1 &873269112 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 873269113} - - component: {fileID: 873269114} - m_Layer: 5 - m_Name: Item - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &873269113 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 873269112} - 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_Children: - - {fileID: 1897876907} - - {fileID: 896288540} - - {fileID: 1897362844} - m_Father: {fileID: 1983167555} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &873269114 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 873269112} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1897876908} - toggleTransition: 1 - graphic: {fileID: 896288541} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: [] - m_IsOn: 1 --- !u!1 &880758901 GameObject: m_ObjectHideFlags: 0 @@ -18816,81 +19000,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 891587360} m_CullTransparentMesh: 1 ---- !u!1 &896288539 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 896288540} - - component: {fileID: 896288542} - - component: {fileID: 896288541} - m_Layer: 5 - m_Name: Item Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &896288540 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896288539} - 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_Children: [] - m_Father: {fileID: 873269113} - m_RootOrder: 1 - 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: 10, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &896288541 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896288539} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &896288542 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896288539} - m_CullTransparentMesh: 1 --- !u!1 &907920114 GameObject: m_ObjectHideFlags: 0 @@ -19118,7 +19227,7 @@ MonoBehaviour: m_HandleRect: {fileID: 1589389271} m_Direction: 2 m_Value: 1 - m_Size: 0.9999944 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -22899,132 +23008,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1069673979 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1069673980} - - component: {fileID: 1069673983} - - component: {fileID: 1069673982} - - component: {fileID: 1069673981} - m_Layer: 5 - m_Name: Viewport - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1069673980 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1069673979} - 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_Children: - - {fileID: 1983167555} - m_Father: {fileID: 2138572291} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -17, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1069673981 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1069673979} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} - 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: 1 ---- !u!222 &1069673982 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1069673979} - m_CullTransparentMesh: 1 ---- !u!114 &1069673983 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1069673979} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 0 ---- !u!1 &1071554741 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1071554742} - m_Layer: 5 - m_Name: Sliding Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1071554742 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1071554741} - 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_Children: - - {fileID: 812890727} - m_Father: {fileID: 1221253113} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1071942424 GameObject: m_ObjectHideFlags: 0 @@ -23656,7 +23639,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -408.97992, y: -17} + m_AnchoredPosition: {x: -408.97998, y: -17} m_SizeDelta: {x: -817.96, y: -46.29} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1118147045 @@ -24825,7 +24808,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91104} + m_AnchoredPosition: {x: 0, y: 129.85194} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -25282,7 +25265,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -49.99991} + m_AnchoredPosition: {x: 0, y: -49.999878} m_SizeDelta: {x: -48, y: -148} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1182686745 @@ -26470,7 +26453,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 279} + m_SizeDelta: {x: 0, y: 329} m_Pivot: {x: 0, y: 1} --- !u!114 &1219233812 MonoBehaviour: @@ -26512,265 +26495,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 ---- !u!1 &1219573648 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1219573649} - - component: {fileID: 1219573652} - - component: {fileID: 1219573651} - - component: {fileID: 1219573650} - m_Layer: 5 - m_Name: Dropdown - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1219573649 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219573648} - 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_Children: - - {fileID: 208746864} - - {fileID: 1953999000} - - {fileID: 2138572291} - m_Father: {fileID: 1434436823} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 330, y: -69} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 0, y: 0.5} ---- !u!114 &1219573650 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219573648} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1219573651} - m_Template: {fileID: 2138572291} - m_CaptionText: {fileID: 208746865} - m_CaptionImage: {fileID: 0} - m_Placeholder: {fileID: 0} - m_ItemText: {fileID: 1897362845} - m_ItemImage: {fileID: 0} - m_Value: 0 - m_Options: - m_Options: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_AlphaFadeSpeed: 0.15 ---- !u!114 &1219573651 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219573648} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1219573652 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219573648} - m_CullTransparentMesh: 1 ---- !u!1 &1221253112 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1221253113} - - component: {fileID: 1221253116} - - component: {fileID: 1221253115} - - component: {fileID: 1221253114} - m_Layer: 5 - m_Name: Scrollbar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1221253113 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1221253112} - 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_Children: - - {fileID: 1071554742} - m_Father: {fileID: 2138572291} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 0} - m_Pivot: {x: 1, y: 1} ---- !u!114 &1221253114 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1221253112} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 812890728} - m_HandleRect: {fileID: 812890727} - m_Direction: 2 - m_Value: 0 - m_Size: 1 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1221253115 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1221253112} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - 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: 1 ---- !u!222 &1221253116 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1221253112} - m_CullTransparentMesh: 1 --- !u!1 &1231936948 GameObject: m_ObjectHideFlags: 0 @@ -27947,7 +27671,7 @@ MonoBehaviour: m_Calls: [] m_text: 'Joy-Con (L/R) Selected - Select Joy-Con (L/R) To Pair' + Pairing Second Joy-Con...' m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2} m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2} @@ -27974,7 +27698,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 22.4 + m_fontSize: 24.5 m_fontSizeBase: 32 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -30857,7 +30581,6 @@ RectTransform: m_LocalScale: {x: 0.9998709, y: 0.9998709, z: 0.9998709} m_Children: - {fileID: 1291909902} - - {fileID: 1219573649} - {fileID: 102085519} - {fileID: 481396920} m_Father: {fileID: 1219233811} @@ -38509,7 +38232,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -84.98999} + m_AnchoredPosition: {x: 0, y: -84.99002} m_SizeDelta: {x: 320, y: -113.92} m_Pivot: {x: 0, y: 1} --- !u!1 &1852819572 @@ -39179,140 +38902,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1897362843 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1897362844} - - component: {fileID: 1897362846} - - component: {fileID: 1897362845} - m_Layer: 5 - m_Name: Item Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1897362844 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897362843} - 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_Children: [] - m_Father: {fileID: 873269113} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 5, y: -0.5} - m_SizeDelta: {x: -30, y: -3} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1897362845 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897362843} - 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: Option A - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} - m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 14 - m_fontSizeBase: 14 - 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: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 1 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1897362846 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897362843} - m_CullTransparentMesh: 1 --- !u!1 &1897664152 GameObject: m_ObjectHideFlags: 0 @@ -39388,81 +38977,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897664152} m_CullTransparentMesh: 1 ---- !u!1 &1897876906 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1897876907} - - component: {fileID: 1897876909} - - component: {fileID: 1897876908} - m_Layer: 5 - m_Name: Item Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1897876907 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897876906} - 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_Children: [] - m_Father: {fileID: 873269113} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1897876908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897876906} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1897876909 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897876906} - m_CullTransparentMesh: 1 --- !u!1 &1899782476 GameObject: m_ObjectHideFlags: 0 @@ -39596,6 +39110,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899782476} m_CullTransparentMesh: 1 +--- !u!1 &1905482487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1905482488} + - component: {fileID: 1905482490} + - component: {fileID: 1905482489} + m_Layer: 5 + m_Name: Keyboard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1905482488 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905482487} + 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_Children: [] + m_Father: {fileID: 674573516} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 571, y: -89.66667} + m_SizeDelta: {x: 198.33331, y: 115.333336} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1905482489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905482487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, 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: 6680111460237765715, guid: d44d97eed2a444b41be17f9737b43b5f, 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!222 &1905482490 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905482487} + m_CullTransparentMesh: 1 --- !u!1 &1906769992 GameObject: m_ObjectHideFlags: 0 @@ -40693,81 +40282,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1953621881} m_CullTransparentMesh: 1 ---- !u!1 &1953998999 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1953999000} - - component: {fileID: 1953999002} - - component: {fileID: 1953999001} - m_Layer: 5 - m_Name: Arrow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1953999000 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1953998999} - 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_Children: [] - m_Father: {fileID: 1219573649} - m_RootOrder: 1 - 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: -15, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1953999001 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1953998999} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1953999002 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1953998999} - m_CullTransparentMesh: 1 --- !u!1 &1956641995 GameObject: m_ObjectHideFlags: 0 @@ -41410,42 +40924,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1981150263} m_CullTransparentMesh: 1 ---- !u!1 &1983167554 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1983167555} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1983167555 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1983167554} - 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_Children: - - {fileID: 873269113} - m_Father: {fileID: 1069673980} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 28} - m_Pivot: {x: 0.5, y: 1} --- !u!1 &1983743055 GameObject: m_ObjectHideFlags: 0 @@ -44409,168 +43887,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2131880460} m_CullTransparentMesh: 1 ---- !u!1 &2138572290 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2138572291} - - component: {fileID: 2138572297} - - component: {fileID: 2138572296} - - component: {fileID: 2138572295} - - component: {fileID: 2138572294} - - component: {fileID: 2138572293} - - component: {fileID: 2138572292} - m_Layer: 5 - m_Name: Template - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &2138572291 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - 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_Children: - - {fileID: 1069673980} - - {fileID: 1221253113} - m_Father: {fileID: 1219573649} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 2} - m_SizeDelta: {x: 0, y: 150} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &2138572292 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c29b4f68c2b2e3849af4ab850c275cea, type: 3} - m_Name: - m_EditorClassIdentifier: - eventParameterManager: {fileID: 830452354} ---- !u!114 &2138572293 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!223 &2138572294 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 1 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 610346305 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &2138572295 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Content: {fileID: 1983167555} - m_Horizontal: 0 - m_Vertical: 1 - m_MovementType: 2 - m_Elasticity: 0.1 - m_Inertia: 1 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 45 - m_Viewport: {fileID: 1069673980} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 1221253114} - m_HorizontalScrollbarVisibility: 0 - m_VerticalScrollbarVisibility: 2 - m_HorizontalScrollbarSpacing: 0 - m_VerticalScrollbarSpacing: -3 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &2138572296 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - 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: 1 ---- !u!222 &2138572297 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2138572290} - m_CullTransparentMesh: 1 --- !u!1 &2139897957 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs b/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs index bcf103bd..4eb7d4a6 100644 --- a/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs +++ b/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs @@ -19,7 +19,8 @@ namespace HeavenStudio.InputSystem "DualSense" }; - int[] mappings = new int[] + //TODO: see if single joy-con mappings differ from a normal pad (they don't!) + int[] mappings = new[] { ButtonMaskUp, ButtonMaskDown, @@ -33,15 +34,42 @@ namespace HeavenStudio.InputSystem ButtonMaskR, ButtonMaskPlus, }; + int[] mappingsSplitLeft = new[] + { + -1, + -1, + -1, + -1, + ButtonMaskLeft, + ButtonMaskDown, + ButtonMaskUp, + ButtonMaskRight, + ButtonMaskSL, + ButtonMaskSR, + ButtonMaskMinus, + }; + int[] mappingsSplitRight = new[] + { + -1, + -1, + -1, + -1, + ButtonMaskE, + ButtonMaskN, + ButtonMaskS, + ButtonMaskW, + ButtonMaskSL, + ButtonMaskSR, + ButtonMaskPlus, + }; + + float stickDeadzone = 0.5f; int joyshockHandle; int type; int splitType; string joyshockName; - InputDirection hatDirectionCurrent; - InputDirection hatDirectionLast; - //buttons, sticks, triggers JOY_SHOCK_STATE joyBtStateCurrent, joyBtStateLast; //gyro and accelerometer @@ -75,8 +103,46 @@ namespace HeavenStudio.InputSystem public override void UpdateState() { + //buttons joyBtStateLast = joyBtStateCurrent; joyBtStateCurrent = JslGetSimpleState(joyshockHandle); + + //stick direction state + //split controllers will need to be rotated to compensate + //left rotates counterclockwise, right rotates clockwise, all by 90 degrees + float xAxis = 0f; + float yAxis = 0f; + if (otherHalf == null) + { + switch (splitType) + { + case SplitLeft: + xAxis = -joyBtStateCurrent.stickLY; + yAxis = joyBtStateCurrent.stickLX; + break; + case SplitRight: //use the right stick instead + xAxis = joyBtStateCurrent.stickRY; + yAxis = -joyBtStateCurrent.stickRX; + break; + case SplitFull: + xAxis = joyBtStateCurrent.stickLX; + yAxis = joyBtStateCurrent.stickLY; + break; + } + } + else + { + xAxis = joyBtStateCurrent.stickLX; + yAxis = joyBtStateCurrent.stickLY; + } + + directionStateLast = directionStateCurrent; + directionStateCurrent = 0; + directionStateCurrent |= ((yAxis >= stickDeadzone) ? (1 << ((int) InputDirection.Up)) : 0); + directionStateCurrent |= ((yAxis <= -stickDeadzone) ? (1 << ((int) InputDirection.Down)) : 0); + directionStateCurrent |= ((xAxis >= stickDeadzone) ? (1 << ((int) InputDirection.Right)) : 0); + directionStateCurrent |= ((xAxis <= -stickDeadzone) ? (1 << ((int) InputDirection.Left)) : 0); + //Debug.Log("stick direction: " + directionStateCurrent + "| x axis: " + xAxis + " y axis: " + yAxis); } public override string GetDeviceName() @@ -123,17 +189,71 @@ namespace HeavenStudio.InputSystem public override bool GetButton(int button) { - return BitwiseUtils.WantCurrent(joyBtStateCurrent.buttons, 1 << mappings[button]); + int bt = 0; + if (otherHalf == null) + { + if (splitType == SplitLeft) + { + bt = mappingsSplitLeft[button]; + } + else if (splitType == SplitRight) + { + bt = mappingsSplitRight[button]; + } + else + { + bt = mappings[button]; + } + return BitwiseUtils.WantCurrent(joyBtStateCurrent.buttons, 1 << bt); + } + bt = mappings[button]; + return BitwiseUtils.WantCurrent(joyBtStateCurrent.buttons, 1 << bt) || BitwiseUtils.WantCurrent(otherHalf.joyBtStateCurrent.buttons, 1 << bt); } public override bool GetButtonDown(int button) { - return BitwiseUtils.WantCurrentAndNotLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << mappings[button]); + int bt = 0; + if (otherHalf == null) + { + if (splitType == SplitLeft) + { + bt = mappingsSplitLeft[button]; + } + else if (splitType == SplitRight) + { + bt = mappingsSplitRight[button]; + } + else + { + bt = mappings[button]; + } + return BitwiseUtils.WantCurrentAndNotLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt); + } + bt = mappings[button]; + return BitwiseUtils.WantCurrentAndNotLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt) || BitwiseUtils.WantCurrentAndNotLast(otherHalf.joyBtStateCurrent.buttons, otherHalf.joyBtStateLast.buttons, 1 << bt); } public override bool GetButtonUp(int button) { - return BitwiseUtils.WantNotCurrentAndLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << mappings[button]); + int bt = 0; + if (otherHalf == null) + { + if (splitType == SplitLeft) + { + bt = mappingsSplitLeft[button]; + } + else if (splitType == SplitRight) + { + bt = mappingsSplitRight[button]; + } + else + { + bt = mappings[button]; + } + return BitwiseUtils.WantNotCurrentAndLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt); + } + bt = mappings[button]; + return BitwiseUtils.WantNotCurrentAndLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt) || BitwiseUtils.WantNotCurrentAndLast(otherHalf.joyBtStateCurrent.buttons, otherHalf.joyBtStateLast.buttons, 1 << bt); } public override float GetAxis(InputAxis axis) @@ -182,7 +302,7 @@ namespace HeavenStudio.InputSystem default: return false; } - return BitwiseUtils.WantCurrent(joyBtStateCurrent.buttons, 1 << bt); + return GetButton(bt) || BitwiseUtils.WantCurrent(directionStateCurrent, 1 << (int) direction); } public override bool GetHatDirectionDown(InputDirection direction) @@ -206,7 +326,7 @@ namespace HeavenStudio.InputSystem default: return false; } - return BitwiseUtils.WantCurrentAndNotLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt); + return GetButtonDown(bt) || BitwiseUtils.WantCurrentAndNotLast(directionStateCurrent, directionStateLast, 1 << (int) direction); } public override bool GetHatDirectionUp(InputDirection direction) @@ -230,11 +350,12 @@ namespace HeavenStudio.InputSystem default: return false; } - return BitwiseUtils.WantNotCurrentAndLast(joyBtStateCurrent.buttons, joyBtStateLast.buttons, 1 << bt); + return GetButtonUp(bt) || BitwiseUtils.WantNotCurrentAndLast(directionStateCurrent, directionStateLast, 1 << (int) direction); } public override void SetPlayer(int? playerNum) { + //TODO: dualshock 4 and dualsense lightbar colour support if (playerNum == -1 || playerNum == null) { this.playerNum = null; @@ -273,5 +394,37 @@ namespace HeavenStudio.InputSystem JslSetLightColour(joyshockHandle, 0); JslSetPlayerNumber(joyshockHandle, 0); } + + public void AssignOtherHalf(InputJoyshock otherHalf, bool force = false) + { + InputFeatures features = otherHalf.GetFeatures(); + if (features.HasFlag(InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputFeatures.Extra_SplitControllerRight)) + { + //two-way link + this.otherHalf = otherHalf; + this.otherHalf.UnAssignOtherHalf(); //juste en cas + this.otherHalf.otherHalf = this; + this.otherHalf.SetPlayer(this.playerNum); + } + else if (force) + { + UnAssignOtherHalf(); + } + } + + public void UnAssignOtherHalf() + { + if (otherHalf != null) + { + this.otherHalf.otherHalf = null; + this.otherHalf.SetPlayer(-1); + } + otherHalf = null; + } + + public InputJoyshock GetOtherHalf() + { + return otherHalf; + } } } \ No newline at end of file diff --git a/Assets/Scripts/InputSystem/InputController.cs b/Assets/Scripts/InputSystem/InputController.cs index 97261cf6..f6ff8911 100644 --- a/Assets/Scripts/InputSystem/InputController.cs +++ b/Assets/Scripts/InputSystem/InputController.cs @@ -142,6 +142,8 @@ namespace HeavenStudio.InputSystem } protected int? playerNum; + protected int directionStateCurrent = 0; + protected int directionStateLast = 0; public abstract void InitializeController(); public abstract void UpdateState(); // Update the state of the controller diff --git a/Assets/Scripts/InputSystem/PlayerInput.cs b/Assets/Scripts/InputSystem/PlayerInput.cs index 3bd4c7ce..ec7ac659 100644 --- a/Assets/Scripts/InputSystem/PlayerInput.cs +++ b/Assets/Scripts/InputSystem/PlayerInput.cs @@ -198,30 +198,33 @@ namespace HeavenStudio public static bool GetAnyDirectionDown() { - return (GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadUp) - || GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadDown) - || GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadLeft) - || GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadRight) + InputController c = GetInputController(1); + return (c.GetHatDirectionDown((InputController.InputDirection) UP) + || c.GetHatDirectionDown((InputController.InputDirection) DOWN) + || c.GetHatDirectionDown((InputController.InputDirection) LEFT) + || c.GetHatDirectionDown((InputController.InputDirection) RIGHT) ) && playerHasControl(); } public static bool GetAnyDirectionUp() { - return (GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadUp) - || GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadDown) - || GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadLeft) - || GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadRight) + InputController c = GetInputController(1); + return (c.GetHatDirectionUp((InputController.InputDirection) UP) + || c.GetHatDirectionUp((InputController.InputDirection) DOWN) + || c.GetHatDirectionUp((InputController.InputDirection) LEFT) + || c.GetHatDirectionUp((InputController.InputDirection) RIGHT) ) && playerHasControl(); } public static bool GetAnyDirection() { - return (GetInputController(1).GetButton((int) InputController.ButtonsPad.PadUp) - || GetInputController(1).GetButton((int) InputController.ButtonsPad.PadDown) - || GetInputController(1).GetButton((int) InputController.ButtonsPad.PadLeft) - || GetInputController(1).GetButton((int) InputController.ButtonsPad.PadRight) + InputController c = GetInputController(1); + return (c.GetHatDirection((InputController.InputDirection) UP) + || c.GetHatDirection((InputController.InputDirection) DOWN) + || c.GetHatDirection((InputController.InputDirection) LEFT) + || c.GetHatDirection((InputController.InputDirection) RIGHT) ) && playerHasControl(); } diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs index 53c682ff..4136dfc7 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs @@ -6,6 +6,7 @@ using UnityEngine.UI; using TMPro; using HeavenStudio; +using HeavenStudio.Util; using HeavenStudio.InputSystem; using static JSL; @@ -16,28 +17,59 @@ namespace HeavenStudio.Editor [SerializeField] private TMP_Text numConnectedLabel; [SerializeField] private TMP_Text currentControllerLabel; [SerializeField] private TMP_Dropdown controllersDropdown; - [SerializeField] private TMP_Dropdown splitControllersDropdown; + [SerializeField] private GameObject pairSearchItem; [SerializeField] private GameObject autoSearchLabel; + [SerializeField] private GameObject pairSearchLabel; + [SerializeField] private TMP_Text pairingLabel; + [SerializeField] private List controllerIcons; + + [SerializeField] private Material controllerMat; private bool isAutoSearching = false; + private bool isPairSearching = false; + private bool pairSelectLR = false; //true = left, false = right private void Start() { numConnectedLabel.text = "Connected: " + PlayerInput.GetNumControllersConnected(); currentControllerLabel.text = "Current Controller: " + PlayerInput.GetInputController(1).GetDeviceName(); PopulateControllersDropdown(); - PopulateSplitControllersDropdown(); + + ShowControllerIcon(PlayerInput.GetInputController(1)); controllersDropdown.onValueChanged.AddListener(delegate { InputController lastController = PlayerInput.GetInputController(1); InputController newController = PlayerInput.GetInputControllers()[controllersDropdown.value]; - lastController.SetPlayer(newController.GetPlayer() != null ? (int) newController.GetPlayer() : -1); + lastController.SetPlayer(-1); newController.SetPlayer(1); - currentControllerLabel.text = "Current Controller: " + newController.GetDeviceName(); + + if (typeof(InputJoyshock) == lastController.GetType()) { + InputJoyshock con = (InputJoyshock) lastController; + con.UnAssignOtherHalf(); + } if (typeof(InputJoyshock) == newController.GetType()) { - StartCoroutine(SelectionVibrate((InputJoyshock) newController)); + InputJoyshock con = (InputJoyshock) newController; + StartCoroutine(SelectionVibrate(con)); + con.UnAssignOtherHalf(); } + + currentControllerLabel.text = "Current Controller: " + newController.GetDeviceName(); + ShowControllerIcon(newController); + + InputController.InputFeatures features = newController.GetFeatures(); + if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight)) + { + pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft); + pairSearchItem.SetActive(true); + StartPairSearch(); + } + else + { + pairSearchItem.SetActive(false); + CancelPairSearch(); + } + }); } @@ -46,24 +78,87 @@ namespace HeavenStudio.Editor var controllers = PlayerInput.GetInputControllers(); foreach (var controller in controllers) { if (controller.GetLastButtonDown() > 0 || controller.GetLastKeyDown() > 0) { - PlayerInput.GetInputController(1).SetPlayer(controller.GetPlayer() != null ? (int) controller.GetPlayer() : -1); + InputController lastController = PlayerInput.GetInputController(1); + lastController.SetPlayer(-1); controller.SetPlayer(1); isAutoSearching = false; autoSearchLabel.SetActive(false); controllersDropdown.value = PlayerInput.GetInputControllerId(1); - currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName(); + + if (typeof(InputJoyshock) == lastController.GetType()) { + ((InputJoyshock)lastController).UnAssignOtherHalf(); + } if (typeof(InputJoyshock) == controller.GetType()) { - StartCoroutine(SelectionVibrate((InputJoyshock) controller)); + InputJoyshock con = (InputJoyshock) controller; + StartCoroutine(SelectionVibrate(con)); + con.UnAssignOtherHalf(); } + + currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName(); + ShowControllerIcon(controller); + + InputController.InputFeatures features = controller.GetFeatures(); + if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight)) + { + pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft); + pairSearchItem.SetActive(true); + StartPairSearch(); + } + else + { + pairSearchItem.SetActive(false); + CancelPairSearch(); + } + + } + } + } + else if (isPairSearching) { + var controllers = PlayerInput.GetInputControllers(); + InputController.InputFeatures lrFlag = pairSelectLR ? InputController.InputFeatures.Extra_SplitControllerLeft : InputController.InputFeatures.Extra_SplitControllerRight; + foreach (var controller in controllers) { + if (controller == PlayerInput.GetInputController(1)) continue; + InputController.InputFeatures features = controller.GetFeatures(); + if (!features.HasFlag(lrFlag)) continue; + if (controller.GetLastButtonDown() > 0 || controller.GetLastKeyDown() > 0) { + InputJoyshock con = (InputJoyshock) PlayerInput.GetInputController(1); + con.AssignOtherHalf((InputJoyshock) controller); + isPairSearching = false; + pairSearchLabel.SetActive(false); + currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName(); + pairingLabel.text = "Joy-Con (L / R) Selected\nPairing Successful!"; + ShowControllerIcon(controller); + + StartCoroutine(SelectionVibrate(con)); + StartCoroutine(SelectionVibrate((InputJoyshock) controller)); } } } } public void StartAutoSearch() { - autoSearchLabel.SetActive(true); - isAutoSearching = true; + if (!isPairSearching) + { + autoSearchLabel.SetActive(true); + isAutoSearching = true; + } + } + + public void StartPairSearch() { + if (!isAutoSearching) { + pairSearchLabel.SetActive(true); + isPairSearching = true; + pairingLabel.text = "Joy-Con (L / R) Selected\nPairing Second Joy-Con..."; + } + } + + public void CancelPairSearch() { + if (isPairSearching) { + pairSearchLabel.SetActive(false); + isPairSearching = false; + pairingLabel.text = "Joy-Con (L / R) Selected\nPairing was cancelled."; + } } public void SearchAndConnectControllers() @@ -72,7 +167,6 @@ namespace HeavenStudio.Editor numConnectedLabel.text = "Connected: " + connected; currentControllerLabel.text = "Current Controller: " + PlayerInput.GetInputController(1).GetDeviceName(); PopulateControllersDropdown(); - PopulateSplitControllersDropdown(); } public void PopulateControllersDropdown() @@ -89,33 +183,80 @@ namespace HeavenStudio.Editor controllersDropdown.value = 0; } - public void PopulateSplitControllersDropdown() + public void ShowControllerIcon(InputController controller) { - List dropDownData = new List(); - var vals = PlayerInput.GetInputControllers(); - InputController.InputFeatures features; - for (int i = 0; i < vals.Count; i++) + string name = controller.GetDeviceName(); + foreach (var icon in controllerIcons) { - features = vals[i].GetFeatures(); - if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight)) + if (icon.name == name) { - TMP_Dropdown.OptionData optionData = new TMP_Dropdown.OptionData(); - optionData.text = vals[i].GetDeviceName(); - dropDownData.Add(optionData); + icon.SetActive(true); + } + else + { + icon.SetActive(false); } } - splitControllersDropdown.AddOptions(dropDownData); - splitControllersDropdown.value = 0; + //setup material + Color colour; + switch (name) + { + case "Keyboard": + controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#F4F4F4", out colour) ? colour : Color.white); + break; + case "Joy-Con (L)": + case "Joy-Con (R)": + InputJoyshock joy = (InputJoyshock) controller; + controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(JslGetControllerColour(joy.GetHandle()))); + controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(JslGetControllerButtonColour(joy.GetHandle()))); + controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white); + controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white); + break; + case "Joy-Con Pair": + joy = (InputJoyshock) controller; + int joySide = JslGetControllerSplitType(joy.GetHandle()); + controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(joySide == SplitRight ? JslGetControllerButtonColour(joy.GetHandle()) : JslGetControllerButtonColour(joy.GetOtherHalf().GetHandle()))); + controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(joySide == SplitLeft ? JslGetControllerButtonColour(joy.GetHandle()) : JslGetControllerButtonColour(joy.GetOtherHalf().GetHandle()))); + controllerMat.SetColor("_LGripColor", BitwiseUtils.IntToRgb(joySide == SplitLeft ? JslGetControllerColour(joy.GetHandle()) : JslGetControllerColour(joy.GetOtherHalf().GetHandle()))); + controllerMat.SetColor("_RGripColor", BitwiseUtils.IntToRgb(joySide == SplitRight ? JslGetControllerColour(joy.GetHandle()) : JslGetControllerColour(joy.GetOtherHalf().GetHandle()))); + break; + case "Pro Controller": + joy = (InputJoyshock) controller; + controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(JslGetControllerColour(joy.GetHandle()))); + controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(JslGetControllerButtonColour(joy.GetHandle()))); + controllerMat.SetColor("_LGripColor", BitwiseUtils.IntToRgb(JslGetControllerLeftGripColour(joy.GetHandle()))); + controllerMat.SetColor("_RGripColor", BitwiseUtils.IntToRgb(JslGetControllerRightGripColour(joy.GetHandle()))); + break; + //TODO: dualshock 4 and dualsense lightbar colour support + case "DualShock 4": + controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#E1E2E4", out colour) ? colour : Color.white); + controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#414246", out colour) ? colour : Color.white); + controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white); + controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white); + break; + case "DualSense": + controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#DEE0EB", out colour) ? colour : Color.white); + controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#272D39", out colour) ? colour : Color.white); + controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white); + controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white); + break; + default: + controllerMat.SetColor("_BodyColor", new Color(1, 1, 1, 1)); + controllerMat.SetColor("_BtnColor", new Color(1, 1, 1, 1)); + controllerMat.SetColor("_LGripColor", new Color(1, 1, 1, 1)); + controllerMat.SetColor("_RGripColor", new Color(1, 1, 1, 1)); + break; + } } IEnumerator SelectionVibrate(InputJoyshock controller) { - JslSetRumbleFrequency(controller.GetHandle(), 0.2f, 0.25f, 80f, 160f); - yield return new WaitForSeconds(0.08f); + JslSetRumbleFrequency(controller.GetHandle(), 0.4f, 0.3f, 80f, 160f); + yield return new WaitForSeconds(0.15f); JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f); - yield return new WaitForSeconds(0.04f); - JslSetRumbleFrequency(controller.GetHandle(), 0.25f, 0f, 640f, 0f); yield return new WaitForSeconds(0.05f); + JslSetRumbleFrequency(controller.GetHandle(), 0.45f, 0.45f, 160f, 320f); + yield return new WaitForSeconds(0.25f); JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f); } } diff --git a/Assets/Scripts/Util/BitwiseUtils.cs b/Assets/Scripts/Util/BitwiseUtils.cs index df5c98b9..bd0c03ac 100644 --- a/Assets/Scripts/Util/BitwiseUtils.cs +++ b/Assets/Scripts/Util/BitwiseUtils.cs @@ -2,6 +2,8 @@ using System; using System.Collections; using System.Collections.Generic; +using UnityEngine; + namespace HeavenStudio.Util { public static class BitwiseUtils @@ -22,6 +24,7 @@ namespace HeavenStudio.Util /// The bit(s) to check for. public static bool WantCurrent(int num, int want) { + if (want <= 0) return false; return (num & want) == want; } @@ -33,6 +36,7 @@ namespace HeavenStudio.Util /// The bit(s) to check for. public static bool WantCurrentAndNotLast(int num1, int num2, int want) { + if (want <= 0) return false; return ((num1 & want) == want) && ((num2 & want) != want); } @@ -44,7 +48,16 @@ namespace HeavenStudio.Util /// The bit(s) to check for. public static bool WantNotCurrentAndLast(int num1, int num2, int want) { + if (want <= 0) return false; return ((num1 & want) != want) && ((num2 & want) == want); } + + public static Color IntToRgb(int value) + { + var red = ( value >> 16 ) & 255; + var green = ( value >> 8 ) & 255; + var blue = ( value >> 0 ) & 255; + return new Color(red/255f, green/255f, blue/255f); + } } } \ No newline at end of file