diff --git a/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243.png b/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/misc.png similarity index 100% rename from AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243.png rename to AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/misc.png diff --git a/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/misc.png.meta b/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/misc.png.meta new file mode 100644 index 0000000..987e3cb --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/misc.png.meta @@ -0,0 +1,429 @@ +fileFormatVersion: 2 +guid: a8e14774cb9b81d4799116466bc09437 +TextureImporter: + internalIDToNameTable: + - first: + 213: -4959326954622038618 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_0 + - first: + 213: -5964753451609424764 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_1 + - first: + 213: -4801715788788902516 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_2 + - first: + 213: 4561171062942135429 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_3 + - first: + 213: -5549305347284123853 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_4 + - first: + 213: 6860963059624718238 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_5 + - first: + 213: -4498413793718531433 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_6 + - first: + 213: -8124222410993000122 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_7 + - first: + 213: -3950121511746819120 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_8 + - first: + 213: 5164087282620923207 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_9 + - first: + 213: 8949408723004945982 + second: vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243_10 + - first: + 213: 5770958956045166959 + second: misc_0 + - first: + 213: -9177418277584700315 + second: misc_1 + - first: + 213: 3445910035351170775 + second: misc_2 + - first: + 213: 8671351589016534120 + second: misc_3 + - first: + 213: 173538500886388945 + second: misc_4 + - first: + 213: -4076281113925471536 + second: misc_5 + - first: + 213: 7637870703528583553 + second: misc_6 + - first: + 213: -3818157907930065138 + second: misc_7 + - first: + 213: -3356990613430728209 + second: misc_8 + - first: + 213: 8307504999820893422 + second: misc_9 + - first: + 213: 4452512340041527070 + second: misc_10 + 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: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 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 + - serializedVersion: 3 + buildTarget: Android + 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: iPhone + 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: misc_0 + rect: + serializedVersion: 2 + x: 39 + y: 81 + width: 92 + height: 93 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f696e6c3890961050800000000000000 + internalID: 5770958956045166959 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_1 + rect: + serializedVersion: 2 + x: 167 + y: 74 + width: 107 + height: 108 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 56cf26953b243a080800000000000000 + internalID: -9177418277584700315 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_2 + rect: + serializedVersion: 2 + x: 310 + y: 74 + width: 107 + height: 108 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7de6f018be452df20800000000000000 + internalID: 3445910035351170775 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_3 + rect: + serializedVersion: 2 + x: 458 + y: 78 + width: 73 + height: 114 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 86c79d1d354d65870800000000000000 + internalID: 8671351589016534120 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_4 + rect: + serializedVersion: 2 + x: 524 + y: 83 + width: 76 + height: 115 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1d0ef2cd858886200800000000000000 + internalID: 173538500886388945 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_5 + rect: + serializedVersion: 2 + x: 649 + y: 76 + width: 109 + height: 118 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0d2b6d78ce32e67c0800000000000000 + internalID: -4076281113925471536 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_6 + rect: + serializedVersion: 2 + x: 803 + y: 79 + width: 134 + height: 113 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1812f2c00fa2ff960800000000000000 + internalID: 7637870703528583553 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_7 + rect: + serializedVersion: 2 + x: 996 + y: 76 + width: 116 + height: 129 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e07da79bc9d230bc0800000000000000 + internalID: -3818157907930065138 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_8 + rect: + serializedVersion: 2 + x: 1172 + y: 86 + width: 126 + height: 98 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fe9042cb2d29961d0800000000000000 + internalID: -3356990613430728209 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_9 + rect: + serializedVersion: 2 + x: 1339 + y: 95 + width: 103 + height: 79 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: eec1b1448cf2a4370800000000000000 + internalID: 8307504999820893422 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: misc_10 + rect: + serializedVersion: 2 + x: 1480 + y: 85 + width: 70 + height: 102 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e1fe73202608acd30800000000000000 + internalID: 4452512340041527070 + 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/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243.png.meta b/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243.png.meta deleted file mode 100644 index 562b0f0..0000000 --- a/AxibugEmuOnline.Client/Assets/Resources/Icons/XMB-Icons/vv1imdvm00bhsrp2j3evsc0807-dd2b714d32579038cd0e713f482ab243.png.meta +++ /dev/null @@ -1,120 +0,0 @@ -fileFormatVersion: 2 -guid: a8e14774cb9b81d4799116466bc09437 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - 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: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 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 - - serializedVersion: 3 - buildTarget: Android - 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: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab index 633fb3b..a736bf9 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab @@ -124,11 +124,11 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 793983410033291345} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 5397686940312333149} + m_Father: {fileID: 4478785627166277610} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -207,8 +207,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Direction: 0 - m_Color1: {r: 1, g: 1, b: 1, a: 1} - m_Color2: {r: 1, g: 1, b: 1, a: 1} + m_Color1: {r: 0.032306872, g: 0.24870302, b: 0.6226415, a: 1} + m_Color2: {r: 0.7264151, g: 0.67501783, b: 0.67501783, a: 1} m_Color3: {r: 1, g: 1, b: 1, a: 1} m_Color4: {r: 1, g: 1, b: 1, a: 1} m_Rotation: 0 @@ -230,6 +230,102 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: gradient: {fileID: 46877084639177849} +--- !u!1 &1501213187178026014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4264754383554125665} + - component: {fileID: 1867204054070772534} + - component: {fileID: 9114498533396602649} + - component: {fileID: 8983615257379814102} + m_Layer: 5 + m_Name: expandArrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4264754383554125665 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501213187178026014} + 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: 2780569438310375802} + m_RootOrder: 2 + 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: -5, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1867204054070772534 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501213187178026014} + m_CullTransparentMesh: 1 +--- !u!114 &9114498533396602649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501213187178026014} + 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: 561609785760361907, guid: d518d00d4940e854bbe45d9ef891401a, 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!114 &8983615257379814102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501213187178026014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1731066637017514641 GameObject: m_ObjectHideFlags: 0 @@ -244,6 +340,7 @@ GameObject: - component: {fileID: 8330179430250887958} - component: {fileID: 8744505332349586225} - component: {fileID: 2568349821411169439} + - component: {fileID: 7857863493876124730} m_Layer: 5 m_Name: SelectBorder m_TagString: Untagged @@ -262,12 +359,12 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 5397686940312333149} + m_Father: {fileID: 4478785627166277610} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 204, y: 488} + m_AnchoredPosition: {x: 204, y: 518} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2800056879890978085 @@ -359,6 +456,18 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!114 &7857863493876124730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731066637017514641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f9054446a969bf4eaf7998f3ba23334, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &2500436782395572584 GameObject: m_ObjectHideFlags: 0 @@ -384,13 +493,14 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2500436782395572584} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 6503369113137645357} - {fileID: 1714682891259844147} - m_Father: {fileID: 5397686940312333149} + - {fileID: 4264754383554125665} + m_Father: {fileID: 4478785627166277610} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -438,7 +548,8 @@ MonoBehaviour: m_EditorClassIdentifier: m_MenuNameTxt: {fileID: 1824253632728291860} m_Icon: {fileID: 394891843266770919} ---- !u!1 &3968697266383191021 + ExpandFlag: {fileID: 1501213187178026014} +--- !u!1 &4478785627166277609 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -446,46 +557,62 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5397686940312333149} - - component: {fileID: 1188777947975519706} - - component: {fileID: 4924150661256616665} - - component: {fileID: 8076475514644024618} + - component: {fileID: 4478785627166277610} + - component: {fileID: 4478785627166277611} + - component: {fileID: 7033441668005100640} + - component: {fileID: 6385618308193594113} + - component: {fileID: 5813794464938889090} m_Layer: 5 - m_Name: MenuRoot + m_Name: OptionUI m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5397686940312333149 +--- !u!224 &4478785627166277610 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968697266383191021} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 4478785627166277609} + 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: 8581099496228509946} - {fileID: 2780569438310375802} - {fileID: 2404013603202822047} - m_Father: {fileID: 4478785627166277610} + m_Father: {fileID: 0} m_RootOrder: 0 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: 0, y: 0} - m_Pivot: {x: 1, y: 0.5} ---- !u!114 &1188777947975519706 + m_SizeDelta: {x: 300, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &4478785627166277611 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968697266383191021} + m_GameObject: {fileID: 4478785627166277609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3} + m_Name: + m_EditorClassIdentifier: + MenuRoot: {fileID: 4478785627166277610} + SelectBorder: {fileID: 7857863493876124730} + TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320} +--- !u!114 &7033441668005100640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478785627166277609} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} @@ -505,13 +632,13 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!114 &4924150661256616665 +--- !u!114 &6385618308193594113 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968697266383191021} + m_GameObject: {fileID: 4478785627166277609} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} @@ -519,19 +646,19 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 ---- !u!114 &8076475514644024618 +--- !u!114 &5813794464938889090 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968697266383191021} + m_GameObject: {fileID: 4478785627166277609} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreLayout: 0 + m_IgnoreLayout: 1 m_MinWidth: 300 m_MinHeight: -1 m_PreferredWidth: -1 @@ -539,58 +666,6 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &4478785627166277609 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4478785627166277610} - - component: {fileID: 4478785627166277611} - m_Layer: 5 - m_Name: OptionUI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4478785627166277610 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478785627166277609} - 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: 5397686940312333149} - m_Father: {fileID: 0} - 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 &4478785627166277611 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478785627166277609} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3} - m_Name: - m_EditorClassIdentifier: - MenuRoot: {fileID: 5397686940312333149} - SelectBorder: {fileID: 2404013603202822047} - TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320} --- !u!1 &6998597834321643812 GameObject: m_ObjectHideFlags: 0 diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OverlayUI/Overlay.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OverlayUI/Overlay.prefab index b34362c..000c95c 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OverlayUI/Overlay.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OverlayUI/Overlay.prefab @@ -29,6 +29,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 3531919739979819162} + - {fileID: 3531919738411886375} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -50,6 +51,248 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InputUI: {fileID: 3531919739979819165} + m_OptionUI: {fileID: 3531919738411886374} +--- !u!1001 &1091051462859282637 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3531919739338806919} + m_Modifications: + - target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264754383554125665, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_Name + value: OptionUI + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} +--- !u!224 &3531919738411886375 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + m_PrefabInstance: {fileID: 1091051462859282637} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3531919738411886374 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4478785627166277611, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} + m_PrefabInstance: {fileID: 1091051462859282637} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &6972157500961473863 PrefabInstance: m_ObjectHideFlags: 0 @@ -61,6 +304,10 @@ PrefabInstance: propertyPath: m_Name value: InputUI objectReference: {fileID: 0} + - target: {fileID: 5891255890837614044, guid: 179ef233a0b40a74f8df0748c664b5e8, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5891255890837614045, guid: 179ef233a0b40a74f8df0748c664b5e8, type: 3} propertyPath: m_Pivot.x value: 0.5 diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SelectBorderLoop.anim b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SelectBorderLoop.anim index 4a5770c..f65cef3 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SelectBorderLoop.anim +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SelectBorderLoop.anim @@ -22,15 +22,6 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 value: 1 inSlope: 0 outSlope: 0 @@ -39,7 +30,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 2 + time: 1 value: 0 inSlope: 0 outSlope: 0 @@ -47,6 +38,15 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -96,15 +96,6 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 value: 1 inSlope: 0 outSlope: 0 @@ -113,7 +104,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 2 + time: 1 value: 0 inSlope: 0 outSlope: 0 @@ -121,6 +112,15 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/Game_NES_Template.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/Game_NES_Template.prefab index 2b79a81..b83e86a 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/Game_NES_Template.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/Game_NES_Template.prefab @@ -66,7 +66,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Font: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} m_FontSize: 20 m_FontStyle: 0 m_BestFit: 0 @@ -445,10 +445,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e2f2e38adaa854144b67512333b1b363, type: 3} m_Name: m_EditorClassIdentifier: - PulseInvoke_Delay: 0.4 - PulseInvoke_Interval: 0.05 Icon: {fileID: 6771349210554360888} Txt: {fileID: 991446423622995247} + SubTitle: {fileID: 0} + spline: {fileID: 0} Descript: {fileID: 3380485461544738227} Root: {fileID: 8754483333502849411} ShadowIcon: {fileID: 2619187604372594158} @@ -637,8 +637,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1d1e3e91ac34bc8468f357ee247ffb6a, type: 3} m_Name: m_EditorClassIdentifier: - PulseInvoke_Delay: 0.4 - PulseInvoke_Interval: 0.05 m_menuItemRoot: {fileID: 0} SubMenuItemTemplate: {fileID: 0} alphaGroup: {fileID: 0} @@ -828,7 +826,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Font: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} m_FontSize: 30 m_FontStyle: 0 m_BestFit: 0 diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity index 28ef77e..30282a0 100644 --- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity +++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity @@ -189,11 +189,6 @@ Transform: m_Father: {fileID: 1335662459} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!224 &246947326 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - m_PrefabInstance: {fileID: 4478785627007410708} - m_PrefabAsset: {fileID: 0} --- !u!1001 &730698711 PrefabInstance: m_ObjectHideFlags: 0 @@ -11477,10 +11472,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6805884945447330407, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3} - propertyPath: m_FontData.m_Font - value: - objectReference: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} - target: {fileID: 6808867381780038331, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -14637,10 +14628,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 9032226979735106299, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3} - propertyPath: m_FontData.m_Font - value: - objectReference: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} - target: {fileID: 9043063300016014343, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -15437,6 +15424,8 @@ MonoBehaviour: m_BeforeStackBundles: - assemblyQualifiedName: FixingPixelArtGrille, AxibugEmuOnline.Client, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + - assemblyQualifiedName: MattiasCRT, AxibugEmuOnline.Client, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null m_AfterStackBundles: [] --- !u!1 &1498586261 GameObject: @@ -15573,9 +15562,8 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_Children: - {fileID: 1983793178} - - {fileID: 246947326} - - {fileID: 1318590597} - {fileID: 939125854} + - {fileID: 1318590597} m_Father: {fileID: 1335662459} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -15780,14 +15768,62 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1599240741} m_Modifications: + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3531919738411886375, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3531919739338806916, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} propertyPath: m_Name value: Overlay objectReference: {fileID: 0} - - target: {fileID: 3531919739338806916, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -15798,7 +15834,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} propertyPath: m_RootOrder - value: 3 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} propertyPath: m_AnchorMax.x @@ -15872,190 +15908,29 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3531919739979819163, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} - propertyPath: m_IsActive + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} ---- !u!1001 &4478785627007410708 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1599240741} - m_Modifications: - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_Name - value: OptionUI - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7896211045508186424, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} - propertyPath: m_Color.a - value: 0.69803923 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3} diff --git a/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs b/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs new file mode 100644 index 0000000..af3d35c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace AxibugEmuOnline.Client +{ + public static class EventInvoker + { + public delegate void OnFilterPresetRemovedHandle(FilterManager.Filter filter, FilterManager.FilterPreset removedPreset); + public static event OnFilterPresetRemovedHandle OnFilterPresetRemoved; + public static void RaiseFilterPresetRemoved(FilterManager.Filter filter, FilterManager.FilterPreset removedPreset) + => OnFilterPresetRemoved.Invoke(filter, removedPreset); + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs.meta new file mode 100644 index 0000000..d372520 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Event/EventInvoker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a972101d3e63f1d4db974980d86cbdd2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs index a69ba62..2a728b1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs @@ -62,6 +62,8 @@ namespace AxibugEmuOnline.Client } } + public void ResetToDefault() => m_paramObject.overrideState = false; + public string Serilized() { return JsonUtility.ToJson(Value); diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.meta new file mode 100644 index 0000000..9f25de4 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0208df1cb66f4944a51a099464e00dc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader deleted file mode 100644 index b09c2d9..0000000 --- a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader +++ /dev/null @@ -1,293 +0,0 @@ - -Shader "PostEffect/FixingPixcelArtGrille" -{ - Properties - { - _MainTex ("Base (RGB)", 2D) = "white" {} - } - SubShader - { - Pass - { - CGPROGRAM - - #pragma shader_feature_local _MASKSTYLE_TVSTYLE _MASKSTYLE_APERTUREGRILLE _MASKSTYLE_STRETCHEDVGA _MASKSTYLE_VGASTYLE - #pragma vertex vert_img - #pragma fragment frag - #include "UnityCG.cginc" - - sampler2D _MainTex; - float4 _MainTex_TexelSize; - -// -// PUBLIC DOMAIN CRT STYLED SCAN-LINE SHADER -// -// by Timothy Lottes -// -// This is more along the style of a really good CGA arcade monitor. -// With RGB inputs instead of NTSC. -// The shadow mask example has the mask rotated 90 degrees for less chromatic aberration. -// -// Left it unoptimized to show the theory behind the algorithm. -// -// It is an example what I personally would want as a display option for pixel art games. -// Please take and use, change, or whatever. -// - -float2 _iResolution = float2(1920,1080); - -// Emulated input resolution. - // Optimize for resize. -float2 _res = float2(272.0,240.0); - -// Hardness of scanline. -// -8.0 = soft -// -16.0 = medium -float _hardScan = -10.0; - -// Hardness of pixels in scanline. -// -2.0 = soft -// -4.0 = hard -float _hardPix =-2.0; - -// Hardness of short vertical bloom. -// -1.0 = wide to the point of clipping (bad) -// -1.5 = wide -// -4.0 = not very wide at all -float _hardBloomScan = -4.0; - -// Hardness of short horizontal bloom. -// -0.5 = wide to the point of clipping (bad) -// -1.0 = wide -// -2.0 = not very wide at all -float _hardBloomPix = -1.5; - -// Amount of small bloom effect. -// 1.0/1.0 = only bloom -// 1.0/16.0 = what I think is a good amount of small bloom -// 0.0 = no bloom -float _bloomAmount = 1.0/16.0; - -// Display warp. -// 0.0 = none -// 1.0/8.0 = extreme -float2 _warp = float2(1.0/64.0,1.0/24.0); - -// Amount of shadow mask. -float _maskDark = 0.5; -float _maskLight = 1.5; - -//------------------------------------------------------------------------ - -float fract(float x){ - return x-floor(x); -} - -// sRGB to Linear. -// Assuing using sRGB typed textures this should not be needed. -float ToLinear1(float c){return(c<=0.04045)?c/12.92:pow((c+0.055)/1.055,2.4);} -float3 ToLinear(float3 c){return float3(ToLinear1(c.r),ToLinear1(c.g),ToLinear1(c.b));} - -// Linear to sRGB. -// Assuing using sRGB typed textures this should not be needed. -float ToSrgb1(float c){return(c<0.0031308?c*12.92:1.055*pow(c,0.41666)-0.055);} -float3 ToSrgb(float3 c){return float3(ToSrgb1(c.r),ToSrgb1(c.g),ToSrgb1(c.b));} - - - float3 Test(float3 c){return c*(1.0/64.0)+c*c*c;} - -// Nearest emulated sample given floating point position and texel offset. -// Also zero's off screen. -float3 Fetch( float2 pos,float2 off){ - pos=floor(pos*_res+off)/_res; - if(max(abs(pos.x-0.5),abs(pos.y-0.5))>0.5)return float3(0.0,0.0,0.0); - return Test(ToLinear(tex2D(_MainTex,pos.xy).rgb));} - -// Distance in emulated pixels to nearest texel. -float2 Dist(float2 pos){pos=pos*_res;return -((pos-floor(pos))-float2(0.5,0.5));} - -// 1D Gaussian. -float Gaus(float pos,float scale){return exp2(scale*pos*pos);} - -// 3-tap Gaussian filter along horz line. -float3 Horz3(float2 pos,float off){ - float3 b=Fetch(pos,float2(-1.0,off)); - float3 c=Fetch(pos,float2( 0.0,off)); - float3 d=Fetch(pos,float2( 1.0,off)); - float dst=Dist(pos).x; - // Convert distance to weight. - float scale=_hardPix; - float wb=Gaus(dst-1.0,scale); - float wc=Gaus(dst+0.0,scale); - float wd=Gaus(dst+1.0,scale); - // Return filtered sample. - return (b*wb+c*wc+d*wd)/(wb+wc+wd);} - -// 5-tap Gaussian filter along horz line. -float3 Horz5(float2 pos,float off){ - float3 a=Fetch(pos,float2(-2.0,off)); - float3 b=Fetch(pos,float2(-1.0,off)); - float3 c=Fetch(pos,float2( 0.0,off)); - float3 d=Fetch(pos,float2( 1.0,off)); - float3 e=Fetch(pos,float2( 2.0,off)); - float dst=Dist(pos).x; - // Convert distance to weight. - float scale=_hardPix; - float wa=Gaus(dst-2.0,scale); - float wb=Gaus(dst-1.0,scale); - float wc=Gaus(dst+0.0,scale); - float wd=Gaus(dst+1.0,scale); - float we=Gaus(dst+2.0,scale); - // Return filtered sample. - return (a*wa+b*wb+c*wc+d*wd+e*we)/(wa+wb+wc+wd+we);} - -// 7-tap Gaussian filter along horz line. -float3 Horz7(float2 pos,float off){ - float3 a=Fetch(pos,float2(-3.0,off)); - float3 b=Fetch(pos,float2(-2.0,off)); - float3 c=Fetch(pos,float2(-1.0,off)); - float3 d=Fetch(pos,float2( 0.0,off)); - float3 e=Fetch(pos,float2( 1.0,off)); - float3 f=Fetch(pos,float2( 2.0,off)); - float3 g=Fetch(pos,float2( 3.0,off)); - float dst=Dist(pos).x; - // Convert distance to weight. - float scale=_hardBloomPix; - float wa=Gaus(dst-3.0,scale); - float wb=Gaus(dst-2.0,scale); - float wc=Gaus(dst-1.0,scale); - float wd=Gaus(dst+0.0,scale); - float we=Gaus(dst+1.0,scale); - float wf=Gaus(dst+2.0,scale); - float wg=Gaus(dst+3.0,scale); - // Return filtered sample. - return (a*wa+b*wb+c*wc+d*wd+e*we+f*wf+g*wg)/(wa+wb+wc+wd+we+wf+wg);} - -// Return scanline weight. -float Scan(float2 pos,float off){ - float dst=Dist(pos).y; - return Gaus(dst+off,_hardScan);} - -// Return scanline weight for bloom. -float BloomScan(float2 pos,float off){ - float dst=Dist(pos).y; - return Gaus(dst+off,_hardBloomScan);} - -// Allow nearest three lines to effect pixel. -float3 Tri(float2 pos){ - float3 a=Horz3(pos,-1.0); - float3 b=Horz5(pos, 0.0); - float3 c=Horz3(pos, 1.0); - float wa=Scan(pos,-1.0); - float wb=Scan(pos, 0.0); - float wc=Scan(pos, 1.0); - return a*wa+b*wb+c*wc;} - -// Small bloom. -float3 Bloom(float2 pos){ - float3 a=Horz5(pos,-2.0); - float3 b=Horz7(pos,-1.0); - float3 c=Horz7(pos, 0.0); - float3 d=Horz7(pos, 1.0); - float3 e=Horz5(pos, 2.0); - float wa=BloomScan(pos,-2.0); - float wb=BloomScan(pos,-1.0); - float wc=BloomScan(pos, 0.0); - float wd=BloomScan(pos, 1.0); - float we=BloomScan(pos, 2.0); - return a*wa+b*wb+c*wc+d*wd+e*we;} - -// Distortion of scanlines, and end of screen alpha. -float2 Warp(float2 pos){ - - pos=pos*2.0-1.0; - pos*=float2(1.0+(pos.y*pos.y)*_warp.x,1.0+(pos.x*pos.x)*_warp.y); - return pos*0.5+0.5;} - -#if defined(_MASKSTYLE_TVSTYLE) - // Very compressed TV style shadow mask. - float3 Mask(float2 pos){ - float lineee=_maskLight; - float odd=0.0; - if(fract(pos.x/6.0)<0.5)odd=1.0; - if(fract((pos.y+odd)/2.0)<0.5) lineee=_maskDark; - pos.x=fract(pos.x/3.0); - float3 mask=float3(_maskDark,_maskDark,_maskDark); - if(pos.x<0.333)mask.r=_maskLight; - else if(pos.x<0.666)mask.g=_maskLight; - else mask.b=_maskLight; - mask*=lineee; - return mask; - } -#elif defined(_MASKSTYLE_APERTUREGRILLE) - // Aperture-grille. - float3 Mask(float2 pos){ - pos.x=fract(pos.x/3.0); - float3 mask=float3(_maskDark,_maskDark,_maskDark); - if(pos.x<0.333)mask.r=_maskLight; - else if(pos.x<0.666)mask.g=_maskLight; - else mask.b=_maskLight; - return mask;} -#elif defined(_MASKSTYLE_STRETCHEDVGA) - // Stretched VGA style shadow mask (same as prior shaders). - float3 Mask(float2 pos){ - pos.x+=pos.y*3.0; - float3 mask=float3(_maskDark,_maskDark,_maskDark); - pos.x=fract(pos.x/6.0); - if(pos.x<0.333)mask.r=_maskLight; - else if(pos.x<0.666)mask.g=_maskLight; - else mask.b=_maskLight; - return mask;} -#elif defined(_MASKSTYLE_VGASTYLE) -// VGA style shadow mask. -float3 Mask(float2 pos){ - pos.xy=floor(pos.xy*float2(1.0,0.5)); - pos.x+=pos.y*3.0; - float3 mask=float3(_maskDark,_maskDark,_maskDark); - pos.x=fract(pos.x/6.0); - if(pos.x<0.333)mask.r=_maskLight; - else if(pos.x<0.666)mask.g=_maskLight; - else mask.b=_maskLight; - return mask;} -#endif - - - -// Draw dividing bars. -float Bar(float pos,float bar){pos-=bar;return pos*pos<4.0?0.0:1.0;} - -// Entry. -float4 mainImage(float2 fragCoord){ - -float4 fragColor = float4(1,1,1,1); -float2 pos=Warp(fragCoord.xy/_iResolution.xy); - - fragColor.rgb=Tri(pos)*Mask(fragCoord.xy); - - fragColor.rgb+=Bloom(pos)*_bloomAmount; - - fragColor.a=1.0; - fragColor.rgb=ToSrgb(fragColor.rgb); - - return fragColor; -} - - struct v2f - { - float4 pos : POSITION; - float2 uv : TEXCOORD0; - }; - - fixed4 frag (v2f i) : SV_Target - { - float2 pos = _iResolution.xy*i.uv; - fixed4 col = mainImage(pos); - return col; - } - ENDCG - } - } -} - - - diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.cs similarity index 100% rename from AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs rename to AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.cs diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.cs.meta similarity index 100% rename from AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta rename to AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.shader b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.shader new file mode 100644 index 0000000..cfc2a22 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.shader @@ -0,0 +1,293 @@ + +Shader "PostEffect/FixingPixcelArtGrille" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + SubShader + { + Pass + { + CGPROGRAM + + #pragma shader_feature_local _MASKSTYLE_TVSTYLE _MASKSTYLE_APERTUREGRILLE _MASKSTYLE_STRETCHEDVGA _MASKSTYLE_VGASTYLE + #pragma vertex vert_img + #pragma fragment frag + #include "UnityCG.cginc" + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + + // + // PUBLIC DOMAIN CRT STYLED SCAN-LINE SHADER + // + // by Timothy Lottes + // + // This is more along the style of a really good CGA arcade monitor. + // With RGB inputs instead of NTSC. + // The shadow mask example has the mask rotated 90 degrees for less chromatic aberration. + // + // Left it unoptimized to show the theory behind the algorithm. + // + // It is an example what I personally would want as a display option for pixel art games. + // Please take and use, change, or whatever. + // + + float2 _iResolution = float2(1920,1080); + + // Emulated input resolution. + // Optimize for resize. + float2 _res = float2(272.0,240.0); + + // Hardness of scanline. + // -8.0 = soft + // -16.0 = medium + float _hardScan = -10.0; + + // Hardness of pixels in scanline. + // -2.0 = soft + // -4.0 = hard + float _hardPix =-2.0; + + // Hardness of short vertical bloom. + // -1.0 = wide to the point of clipping (bad) + // -1.5 = wide + // -4.0 = not very wide at all + float _hardBloomScan = -4.0; + + // Hardness of short horizontal bloom. + // -0.5 = wide to the point of clipping (bad) + // -1.0 = wide + // -2.0 = not very wide at all + float _hardBloomPix = -1.5; + + // Amount of small bloom effect. + // 1.0/1.0 = only bloom + // 1.0/16.0 = what I think is a good amount of small bloom + // 0.0 = no bloom + float _bloomAmount = 1.0/16.0; + + // Display warp. + // 0.0 = none + // 1.0/8.0 = extreme + float2 _warp = float2(1.0/64.0,1.0/24.0); + + // Amount of shadow mask. + float _maskDark = 0.5; + float _maskLight = 1.5; + + //------------------------------------------------------------------------ + + float fract(float x){ + return x-floor(x); + } + + // sRGB to Linear. + // Assuing using sRGB typed textures this should not be needed. + float ToLinear1(float c){return(c<=0.04045)?c/12.92:pow((c+0.055)/1.055,2.4);} + float3 ToLinear(float3 c){return float3(ToLinear1(c.r),ToLinear1(c.g),ToLinear1(c.b));} + + // Linear to sRGB. + // Assuing using sRGB typed textures this should not be needed. + float ToSrgb1(float c){return(c<0.0031308?c*12.92:1.055*pow(c,0.41666)-0.055);} + float3 ToSrgb(float3 c){return float3(ToSrgb1(c.r),ToSrgb1(c.g),ToSrgb1(c.b));} + + + float3 Test(float3 c){return c*(1.0/64.0)+c*c*c;} + + // Nearest emulated sample given floating point position and texel offset. + // Also zero's off screen. + float3 Fetch( float2 pos,float2 off){ + pos=floor(pos*_res+off)/_res; + if(max(abs(pos.x-0.5),abs(pos.y-0.5))>0.5)return float3(0.0,0.0,0.0); + return Test(ToLinear(tex2D(_MainTex,pos.xy).rgb));} + + // Distance in emulated pixels to nearest texel. + float2 Dist(float2 pos){pos=pos*_res;return -((pos-floor(pos))-float2(0.5,0.5));} + + // 1D Gaussian. + float Gaus(float pos,float scale){return exp2(scale*pos*pos);} + + // 3-tap Gaussian filter along horz line. + float3 Horz3(float2 pos,float off){ + float3 b=Fetch(pos,float2(-1.0,off)); + float3 c=Fetch(pos,float2( 0.0,off)); + float3 d=Fetch(pos,float2( 1.0,off)); + float dst=Dist(pos).x; + // Convert distance to weight. + float scale=_hardPix; + float wb=Gaus(dst-1.0,scale); + float wc=Gaus(dst+0.0,scale); + float wd=Gaus(dst+1.0,scale); + // Return filtered sample. + return (b*wb+c*wc+d*wd)/(wb+wc+wd);} + + // 5-tap Gaussian filter along horz line. + float3 Horz5(float2 pos,float off){ + float3 a=Fetch(pos,float2(-2.0,off)); + float3 b=Fetch(pos,float2(-1.0,off)); + float3 c=Fetch(pos,float2( 0.0,off)); + float3 d=Fetch(pos,float2( 1.0,off)); + float3 e=Fetch(pos,float2( 2.0,off)); + float dst=Dist(pos).x; + // Convert distance to weight. + float scale=_hardPix; + float wa=Gaus(dst-2.0,scale); + float wb=Gaus(dst-1.0,scale); + float wc=Gaus(dst+0.0,scale); + float wd=Gaus(dst+1.0,scale); + float we=Gaus(dst+2.0,scale); + // Return filtered sample. + return (a*wa+b*wb+c*wc+d*wd+e*we)/(wa+wb+wc+wd+we);} + + // 7-tap Gaussian filter along horz line. + float3 Horz7(float2 pos,float off){ + float3 a=Fetch(pos,float2(-3.0,off)); + float3 b=Fetch(pos,float2(-2.0,off)); + float3 c=Fetch(pos,float2(-1.0,off)); + float3 d=Fetch(pos,float2( 0.0,off)); + float3 e=Fetch(pos,float2( 1.0,off)); + float3 f=Fetch(pos,float2( 2.0,off)); + float3 g=Fetch(pos,float2( 3.0,off)); + float dst=Dist(pos).x; + // Convert distance to weight. + float scale=_hardBloomPix; + float wa=Gaus(dst-3.0,scale); + float wb=Gaus(dst-2.0,scale); + float wc=Gaus(dst-1.0,scale); + float wd=Gaus(dst+0.0,scale); + float we=Gaus(dst+1.0,scale); + float wf=Gaus(dst+2.0,scale); + float wg=Gaus(dst+3.0,scale); + // Return filtered sample. + return (a*wa+b*wb+c*wc+d*wd+e*we+f*wf+g*wg)/(wa+wb+wc+wd+we+wf+wg);} + + // Return scanline weight. + float Scan(float2 pos,float off){ + float dst=Dist(pos).y; + return Gaus(dst+off,_hardScan);} + + // Return scanline weight for bloom. + float BloomScan(float2 pos,float off){ + float dst=Dist(pos).y; + return Gaus(dst+off,_hardBloomScan);} + + // Allow nearest three lines to effect pixel. + float3 Tri(float2 pos){ + float3 a=Horz3(pos,-1.0); + float3 b=Horz5(pos, 0.0); + float3 c=Horz3(pos, 1.0); + float wa=Scan(pos,-1.0); + float wb=Scan(pos, 0.0); + float wc=Scan(pos, 1.0); + return a*wa+b*wb+c*wc;} + + // Small bloom. + float3 Bloom(float2 pos){ + float3 a=Horz5(pos,-2.0); + float3 b=Horz7(pos,-1.0); + float3 c=Horz7(pos, 0.0); + float3 d=Horz7(pos, 1.0); + float3 e=Horz5(pos, 2.0); + float wa=BloomScan(pos,-2.0); + float wb=BloomScan(pos,-1.0); + float wc=BloomScan(pos, 0.0); + float wd=BloomScan(pos, 1.0); + float we=BloomScan(pos, 2.0); + return a*wa+b*wb+c*wc+d*wd+e*we;} + + // Distortion of scanlines, and end of screen alpha. + float2 Warp(float2 pos){ + + pos=pos*2.0-1.0; + pos*=float2(1.0+(pos.y*pos.y)*_warp.x,1.0+(pos.x*pos.x)*_warp.y); + return pos*0.5+0.5;} + + #if defined(_MASKSTYLE_TVSTYLE) + // Very compressed TV style shadow mask. + float3 Mask(float2 pos){ + float lineee=_maskLight; + float odd=0.0; + if(fract(pos.x/6.0)<0.5)odd=1.0; + if(fract((pos.y+odd)/2.0)<0.5) lineee=_maskDark; + pos.x=fract(pos.x/3.0); + float3 mask=float3(_maskDark,_maskDark,_maskDark); + if(pos.x<0.333)mask.r=_maskLight; + else if(pos.x<0.666)mask.g=_maskLight; + else mask.b=_maskLight; + mask*=lineee; + return mask; + } + #elif defined(_MASKSTYLE_APERTUREGRILLE) + // Aperture-grille. + float3 Mask(float2 pos){ + pos.x=fract(pos.x/3.0); + float3 mask=float3(_maskDark,_maskDark,_maskDark); + if(pos.x<0.333)mask.r=_maskLight; + else if(pos.x<0.666)mask.g=_maskLight; + else mask.b=_maskLight; + return mask;} + #elif defined(_MASKSTYLE_STRETCHEDVGA) + // Stretched VGA style shadow mask (same as prior shaders). + float3 Mask(float2 pos){ + pos.x+=pos.y*3.0; + float3 mask=float3(_maskDark,_maskDark,_maskDark); + pos.x=fract(pos.x/6.0); + if(pos.x<0.333)mask.r=_maskLight; + else if(pos.x<0.666)mask.g=_maskLight; + else mask.b=_maskLight; + return mask;} + #elif defined(_MASKSTYLE_VGASTYLE) + // VGA style shadow mask. + float3 Mask(float2 pos){ + pos.xy=floor(pos.xy*float2(1.0,0.5)); + pos.x+=pos.y*3.0; + float3 mask=float3(_maskDark,_maskDark,_maskDark); + pos.x=fract(pos.x/6.0); + if(pos.x<0.333)mask.r=_maskLight; + else if(pos.x<0.666)mask.g=_maskLight; + else mask.b=_maskLight; + return mask;} + #endif + + + + // Draw dividing bars. + float Bar(float pos,float bar){pos-=bar;return pos*pos<4.0?0.0:1.0;} + + // Entry. + float4 mainImage(float2 fragCoord){ + + float4 fragColor = float4(1,1,1,1); + float2 pos=Warp(fragCoord.xy/_iResolution.xy); + + fragColor.rgb=Tri(pos)*Mask(fragCoord.xy); + + fragColor.rgb+=Bloom(pos)*_bloomAmount; + + fragColor.a=1.0; + fragColor.rgb=ToSrgb(fragColor.rgb); + + return fragColor; + } + + struct v2f + { + float4 pos : POSITION; + float2 uv : TEXCOORD0; + }; + + fixed4 frag (v2f i) : SV_Target + { + float2 pos = _iResolution.xy*i.uv; + fixed4 col = mainImage(pos); + return col; + } + ENDCG + } + } +} + + + diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.shader.meta similarity index 100% rename from AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta rename to AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille/FixingPixelArtGrille.shader.meta diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset index e9c2181..be645b5 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset @@ -1,5 +1,21 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-2985742813244632235 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98a055cea8a1355429d1cbb752c4e60e, type: 3} + m_Name: MattiasCRT + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -14,6 +30,7 @@ MonoBehaviour: m_EditorClassIdentifier: settings: - {fileID: 117625959343581733} + - {fileID: -2985742813244632235} --- !u!114 &117625959343581733 MonoBehaviour: m_ObjectHideFlags: 3 diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT.meta new file mode 100644 index 0000000..fa04d2a --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 890a033cb91c7a24f9dbc97bf87f6dca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs new file mode 100644 index 0000000..27b1668 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs @@ -0,0 +1,28 @@ +using AxibugEmuOnline.Client; +using UnityEngine; +using UnityEngine.Rendering.PostProcessing; + +[System.Serializable] +[PostProcess(typeof(MattiasCRTRenderer), PostProcessEvent.BeforeStack, "Filter/MattiasCRT")] +public sealed class MattiasCRT : FilterEffect +{ + public override string Name => nameof(MattiasCRT); +} + +public sealed class MattiasCRTRenderer : PostProcessEffectRenderer +{ + private Shader shader; + private Material material; + + public override void Init() + { + shader = Shader.Find("Filter/MattiasCRT"); + material = new Material(shader); + } + + public override void Render(PostProcessRenderContext context) + { + material.SetVector("_iResolution", new Vector4(Screen.width, Screen.height, 0, 0)); + context.command.Blit(context.source, context.destination, material); + } +} \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs.meta new file mode 100644 index 0000000..de2654c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98a055cea8a1355429d1cbb752c4e60e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader new file mode 100644 index 0000000..3b0f976 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader @@ -0,0 +1,98 @@ + +Shader "Filter/MattiasCRT" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + SubShader + { + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #include "UnityCG.cginc" + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + float2 _iResolution; + + float2 curve(float2 uv) + { + uv = (uv - 0.5) * 2.0; + uv *= 1.1; + uv.x *= 1.0 + pow((abs(uv.y) / 5.0), 2.0); + uv.y *= 1.0 + pow((abs(uv.x) / 4.0), 2.0); + uv = (uv / 2.0) + 0.5; + uv = uv *0.92 + 0.04; + return uv; + } + + float4 mainImage( float2 fragCoord ) + { + float4 fragColor = float4(0,0,0,1); + + float2 q = fragCoord.xy / _iResolution.xy; + float2 uv = q; + uv = curve( uv ); + float3 oricol = tex2D(_MainTex,uv).xyz; + float3 col; + float x = sin(0.3*_Time+uv.y*21.0)*sin(0.7*_Time+uv.y*29.0)*sin(0.3+0.33*_Time+uv.y*31.0)*0.0017; + + col.r = tex2D(_MainTex,float2(x+uv.x+0.001,uv.y+0.001)).x+0.05; + col.g = tex2D(_MainTex,float2(x+uv.x+0.000,uv.y-0.002)).y+0.05; + col.b = tex2D(_MainTex,float2(x+uv.x-0.002,uv.y+0.000)).z+0.05; + col.r += 0.08*tex2D(_MainTex,0.75*float2(x+0.025, -0.027)+float2(uv.x+0.001,uv.y+0.001)).x; + col.g += 0.05*tex2D(_MainTex,0.75*float2(x+-0.022, -0.02)+float2(uv.x+0.000,uv.y-0.002)).y; + col.b += 0.08*tex2D(_MainTex,0.75*float2(x+-0.02, -0.018)+float2(uv.x-0.002,uv.y+0.000)).z; + + col = clamp(col*0.6+0.4*col*col*1.0,0.0,1.0); + + float vig = (0.0 + 1.0*16.0*uv.x*uv.y*(1.0-uv.x)*(1.0-uv.y)); + col *= pow(vig,0.3); + + col *= float3(0.95,1.05,0.95); + col *= 2.8; + + float scans = clamp( 0.35+0.35*sin(3.5*_Time+uv.y*_iResolution.y*1.5), 0.0, 1.0); + + float s = pow(scans,1.7); + col = col*( 0.4+0.7*s) ; + + col *= 1.0+0.01*sin(110.0*_Time); + if (uv.x < 0.0 || uv.x > 1.0) + col *= 0.0; + if (uv.y < 0.0 || uv.y > 1.0) + col *= 0.0; + + + col*=1.0-0.65*clamp((fragCoord.x % 2.0 -1.0 )*2.0,0.0,1.0); + + float comp = smoothstep( 0.1, 0.9, sin(_Time) ); + + fragColor = float4(col,1.0); + + return fragColor; + } + + struct v2f + { + float4 pos : POSITION; + float2 uv : TEXCOORD0; + }; + + fixed4 frag (v2f i) : SV_Target + { + float2 pos = _iResolution.xy*i.uv; + fixed4 col = mainImage(pos); + return col; + } + ENDCG + } + } +} + + + diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader.meta new file mode 100644 index 0000000..5ee53f9 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/MattiasCRT/MattiasCRT.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5dd9160e7dde4dd4db07347ce4780217 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs index a85a6f5..fab770a 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs @@ -67,15 +67,122 @@ namespace AxibugEmuOnline.Client public class Filter { public string Name => m_setting.Name; + public IReadOnlyCollection Paramerters => m_setting.EditableParam; + /// 滤镜预设 + public List Presets = new List(); internal FilterEffect m_setting; public Filter(FilterEffect setting) { m_setting = setting; + + loadPresets(); } - internal IReadOnlyCollection Paramerters => m_setting.EditableParam; + private void loadPresets() + { + var json = PlayerPrefs.GetString($"Filter_{Name}_PresetList", string.Empty); + var loadedPresets = JsonUtility.FromJson(json); + if (loadedPresets == null) return; + else Presets = loadedPresets.presets; + } + + private void savePresets() + { + var json = JsonUtility.ToJson(new FilterPresetList { presets = Presets }); + PlayerPrefs.SetString($"Filter_{Name}_PresetList", json); + } + + public MsgBool CreatePreset(string presetName, out FilterPreset newPreset) + { + newPreset = null; + if (string.IsNullOrWhiteSpace(presetName)) return "名称不能为空"; + if (Presets.Count(p => p.Name == presetName) != 0) return "名称重复"; + + newPreset = new FilterPreset(presetName); + Presets.Add(newPreset); + + savePresets(); + + return true; + } + + public void RemovePreset(FilterPreset preset) + { + if (!Presets.Remove(preset)) return; + savePresets(); + + EventInvoker.RaiseFilterPresetRemoved(this, preset); + } + + public void ResetPreset() + { + foreach (var param in Paramerters) + { + param.ResetToDefault(); + } + } + + public void ApplyPreset(FilterPreset preset) + { + foreach (var param in Paramerters) + { + var json = preset.GetParamValueJson(param.Name); + if (string.IsNullOrEmpty(json)) + param.ResetToDefault(); + else + param.Apply(json); + } + + } + + + } + + [Serializable] + private class FilterPresetList + { + public List presets; + } + + [Serializable] + public class FilterPreset + { + [SerializeField] + public string Name; + [SerializeField] + private List m_paramName = new List(); + [SerializeField] + private List m_valueJson = new List(); + + private bool m_cacheReady = false; + private Dictionary m_paramName2ValueJson; + public FilterPreset(string presetName) + { + Name = presetName; + } + + public string GetParamValueJson(string paramName) + { + prepareCache(); + + m_paramName2ValueJson.TryGetValue(paramName, out var value); + return value; + } + + private void prepareCache() + { + if (m_cacheReady) return; + + m_paramName2ValueJson = new Dictionary(); + for (int i = 0; i < m_paramName.Count; i++) + { + m_paramName2ValueJson[m_paramName[i]] = m_valueJson[i]; + } + + m_cacheReady = true; + } } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs b/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs new file mode 100644 index 0000000..a88413c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs @@ -0,0 +1,45 @@ +/// +/// StringBoolķϹ +/// +public struct MsgBool +{ + public string ErrorMsg; + public bool Value; + + public override readonly string ToString() + { + if (Value) + { + return true.ToString(); + } + else + { + return ErrorMsg; + } + } + + public static implicit operator MsgBool(string errorMsg) + { + return new MsgBool { Value = false, ErrorMsg = errorMsg }; + } + + public static implicit operator MsgBool(bool value) + { + return new MsgBool { Value = value }; + } + + public static implicit operator bool(MsgBool msgBool) + { + return msgBool.Value; + } + + public static implicit operator (bool, string)(MsgBool msgBool) + { + return (msgBool.Value, msgBool.ErrorMsg); + } + + public static implicit operator string(MsgBool msgBool) + { + return msgBool.ToString(); + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs.meta b/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs.meta new file mode 100644 index 0000000..d483e1d --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/MsgBool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26339d0bd71e1644daa0324182bd2bbf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs index 2f0a050..5768a15 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs @@ -18,7 +18,7 @@ namespace AxibugEmuOnline.Client { App.filter.ShutDownFilterPreview(); App.filter.ShutDownFilter(); - + return base.OnExitItem(); } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_BgSettingItem_Color.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_BgSettingItem_Color.cs index 52c8bbd..e29bea8 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_BgSettingItem_Color.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_BgSettingItem_Color.cs @@ -51,7 +51,7 @@ namespace AxibugEmuOnline.Client var options = Datacontext.Presets.Select(preset => new ColorOption(preset)).ToList(); var currentColor = Datacontext.CurrentColor; var index = options.FindIndex(op => op.Color.GetHashCode() == currentColor.GetHashCode()); - OptionUI.Instance.Pop(options, Mathf.Clamp(index, 0, options.Count - 1)); + OverlayManager.Pop(options, Mathf.Clamp(index, 0, options.Count - 1)); return false; } @@ -96,10 +96,7 @@ namespace AxibugEmuOnline.Client }; } - public override void OnExcute() - { - - } + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { } } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs index abb9e10..eb7952e 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs @@ -1,5 +1,9 @@ using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.UI; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using static AxibugEmuOnline.Client.FilterManager; namespace AxibugEmuOnline.Client { @@ -9,12 +13,11 @@ namespace AxibugEmuOnline.Client public class UI_FilterItem : MenuItem, IVirtualItem { public int Index { get; set; } - public FilterManager.Filter Datacontext { get; private set; } - + public Filter Datacontext { get; private set; } public void SetData(object data) { - Datacontext = data as FilterManager.Filter; + Datacontext = data as Filter; UpdateView(); } @@ -35,13 +38,109 @@ namespace AxibugEmuOnline.Client } } - public void Release() - { - } + public void Release() { } public override bool OnEnterItem() { + var opts = new List(); + opts.Add(new Opt_CreatePreset(Datacontext)); + opts.AddRange(Datacontext.Presets.Select(p => new Opt_Presets(Datacontext, p))); + + OverlayManager.Pop(opts, onClose: () => + { + App.filter.EnableFilterPreview(); + Datacontext.ResetPreset(); + App.filter.EnableFilter(Datacontext); + }); return false; } + + + public class Opt_CreatePreset : ExecuteMenu + { + private Filter m_filter; + + public Opt_CreatePreset(Filter filter) : base("˾Ԥ", Resources.LoadAll("Icons/XMB-Icons/misc")[0]) + { + m_filter = filter; + } + + public override void OnFocus() + { + m_filter.ResetPreset(); + App.filter.EnableFilter(m_filter); + } + + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) + { + cancelHide = true; + + OverlayManager.Input((presetName) => + { + var result = m_filter.CreatePreset(presetName, out var newPreset); + if (!result) OverlayManager.PopMsg(result); + else optionUI.AddOptionMenuWhenPoping(new Opt_Presets(m_filter, newPreset)); + }, "ΪԤһ", string.Empty); + } + } + public class Opt_Presets : ExpandMenu + { + private Filter m_filter; + private FilterPreset m_preset; + private OptionUI_MenuItem m_ui; + + public Opt_Presets(Filter filter, FilterPreset preset) : base(preset.Name, null) + { + m_filter = filter; + m_preset = preset; + + } + + public override void OnShow(OptionUI_MenuItem ui) + { + EventInvoker.OnFilterPresetRemoved += EventInvoker_OnFilterPresetRemoved; + m_ui = ui; + base.OnShow(ui); + } + + public override void OnHide() + { + EventInvoker.OnFilterPresetRemoved -= EventInvoker_OnFilterPresetRemoved; + } + + private void EventInvoker_OnFilterPresetRemoved(Filter filter, FilterPreset removedPreset) + { + if (filter != m_filter || m_preset != removedPreset) return; + m_ui.OptionUI.RemoveItem(m_ui); + } + + public override void OnFocus() + { + m_filter.ApplyPreset(m_preset); + App.filter.EnableFilter(m_filter); + } + + protected override List GetOptionMenus() + { + return new List { new Opt_Delete(m_filter, m_preset) }; + } + + public class Opt_Delete : ExecuteMenu + { + private Filter m_filter; + private FilterPreset m_preset; + + public Opt_Delete(Filter filter, FilterPreset preset) : base("ɾԤ", null) + { + m_filter = filter; + m_preset = preset; + } + + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) + { + m_filter.RemovePreset(m_preset); + } + } + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs index aa37620..858bac4 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs @@ -2,6 +2,8 @@ using AxibugEmuOnline.Client.ClientCore; using System; using System.Collections.Generic; using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; namespace AxibugEmuOnline.Client { @@ -81,8 +83,11 @@ namespace AxibugEmuOnline.Client readonly List oneFrameRegister = new List(); private void Update() { - peekRegister(oneFrameRegister); - m_listener.Update(oneFrameRegister); + if (!InputUI.IsInputing) + { + peekRegister(oneFrameRegister); + m_listener.Update(oneFrameRegister); + } //λӳڰӦĶջ,ֹ޸ if (m_waitMapperSetting != null) diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs index 9761498..f52b45c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs @@ -33,7 +33,7 @@ namespace AxibugEmuOnline.Client protected virtual void Update() { - if (Registed) + if (Registed && Enable) { m_pulsInvoker_Left.Update(Time.deltaTime); m_pulsInvoker_Right.Update(Time.deltaTime); diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/GamesUI/RomListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/GamesUI/RomListMenuItem.cs index 7786123..88fae1c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/GamesUI/RomListMenuItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/GamesUI/RomListMenuItem.cs @@ -62,7 +62,7 @@ namespace AxibugEmuOnline.Client protected override void OnCmdOptionMenu() { - OptionUI.Instance.Pop(m_options); + OverlayManager.Pop(m_options); } public class OptMenu_Search : ExecuteMenu @@ -74,9 +74,9 @@ namespace AxibugEmuOnline.Client m_romListUI = romListUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { - OverlayManager.Input((OnSearchCommit, "Rom", m_romListUI.SearchKey)); + OverlayManager.Input(OnSearchCommit, "Rom", m_romListUI.SearchKey); } private void OnSearchCommit(string text) @@ -97,7 +97,7 @@ namespace AxibugEmuOnline.Client m_ui = romListUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { m_ui.SearchKey = null; m_ui.RefreshUI(); diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs index d64cdaa..3e6aa9b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs @@ -45,7 +45,7 @@ namespace AxibugEmuOnline.Client base.Awake(); } - + protected override void OnDestroy() { Instance = null; @@ -82,7 +82,6 @@ namespace AxibugEmuOnline.Client } Eventer.Instance.RegisterEvent(EEvent.OnRoomWaitStepChange, OnServerStepUpdate); - OptionUI.Instance.OnHide += PopMenu_OnHide; gameObject.SetActiveEx(true); } @@ -95,14 +94,12 @@ namespace AxibugEmuOnline.Client public void Hide() { CommandDispatcher.Instance.UnRegistController(this); - - OptionUI.Instance.OnHide -= PopMenu_OnHide; gameObject.SetActiveEx(false); } protected override void OnCmdOptionMenu() { - OptionUI.Instance.Pop(menus); + OverlayManager.Pop(menus, 0, PopMenu_OnHide); if (!IsNetPlay)//ģʽͣģ { diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_LoadState.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_LoadState.cs index 2132ad6..ca3500f 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_LoadState.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_LoadState.cs @@ -13,7 +13,7 @@ namespace AxibugEmuOnline.Client m_gameUI = gameUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { if (m_gameUI.IsNetPlay) return; diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_QuitGame.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_QuitGame.cs index f16faca..64dc17c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_QuitGame.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_QuitGame.cs @@ -10,7 +10,7 @@ namespace AxibugEmuOnline.Client m_gameUI = gameUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { m_gameUI.QuitGame(); } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_Reset.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_Reset.cs index 8e57213..872c793 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_Reset.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_Reset.cs @@ -17,12 +17,13 @@ namespace AxibugEmuOnline.Client m_gameUI = gameUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { if (!m_gameUI.IsNetPlay) { App.emu.ResetGame(); } + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_SaveState.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_SaveState.cs index 04a4617..f20c497 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_SaveState.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI_SaveState.cs @@ -17,7 +17,7 @@ namespace AxibugEmuOnline.Client m_gameUI = gameUI; } - public override void OnExcute() + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { if (m_gameUI.IsNetPlay) return; diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs index d79b6d7..d85fb86 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs @@ -8,64 +8,67 @@ namespace AxibugEmuOnline.Client { public class OptionUI : CommandExecuter { - public static OptionUI Instance { get; private set; } - [SerializeField] RectTransform MenuRoot; [SerializeField] - RectTransform SelectBorder; + Selector SelectBorder; [Space] [Header("ģ")] [SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM; + private OptionUI m_child; + private OptionUI m_parent; + public override bool AloneMode => true; - public override bool Enable => m_bPoped; + public override bool Enable => m_bPoped && (m_child == null || !m_child.m_bPoped); private bool m_bPoped = false; private List m_runtimeMenuItems = new List(); - public event Action OnHide; - private int m_selectIndex = -1; public int SelectIndex { get { return m_selectIndex; } set { - var selectableItems = m_runtimeMenuItems.Where(t => t.Visible).ToList(); - value = Mathf.Clamp(value, 0, selectableItems.Count - 1); + value = Mathf.Clamp(value, 0, m_runtimeMenuItems.Count - 1); if (m_selectIndex == value) return; + var gap = value - m_selectIndex; + + while (!m_runtimeMenuItems[value].Visible) + { + var temp = value; + if (gap > 0) + { + temp++; + } + else + { + temp--; + } + + if (temp >= 0 && temp < m_runtimeMenuItems.Count) + value = temp; + } + m_selectIndex = value; - OptionUI_MenuItem optionUI_MenuItem = selectableItems[m_selectIndex]; + OptionUI_MenuItem optionUI_MenuItem = m_runtimeMenuItems[m_selectIndex]; optionUI_MenuItem.OnFocus(); var itemUIRect = optionUI_MenuItem.transform as RectTransform; - SelectBorder.pivot = itemUIRect.pivot; - SelectBorder.sizeDelta = itemUIRect.rect.size; - DOTween.To(() => SelectBorder.position, (value) => SelectBorder.position = value, itemUIRect.position, 0.125f); - SelectBorder.SetAsLastSibling(); + SelectBorder.Target = itemUIRect; } } protected override void Awake() { - Instance = this; TEMPLATE_EXECUTEITEM.gameObject.SetActiveEx(false); SelectBorder.gameObject.SetActiveEx(false); base.Awake(); } - private void Start() - { - Canvas.ForceUpdateCanvases(); - var width = MenuRoot.rect.size.x; - var temp = MenuRoot.anchoredPosition; - temp.x = width; - MenuRoot.anchoredPosition = temp; - } - protected override void Update() { UpdateMenuState(); @@ -74,6 +77,58 @@ namespace AxibugEmuOnline.Client } private void UpdateMenuState() + { + bool dirty = false; + dirty = checkDirty(); + if (dirty) + { + RebuildSelectIndex(); + } + } + + private void RebuildSelectIndex() + { + Canvas.ForceUpdateCanvases(); + + SelectIndex = Mathf.Clamp(SelectIndex, 0, m_runtimeMenuItems.Count - 1); + var selectItem = m_runtimeMenuItems[SelectIndex]; + + if (selectItem.Visible == false) + { + bool find = false; + int currentSelect = SelectIndex; + while (currentSelect > 0) + { + currentSelect--; + if (m_runtimeMenuItems[currentSelect].Visible) + { + find = true; + } + } + if (!find) + { + currentSelect = SelectIndex; + while (currentSelect < m_runtimeMenuItems.Count) + { + if (m_runtimeMenuItems[currentSelect].Visible) + { + find = true; + } + currentSelect++; + } + } + + if (find) + SelectIndex = currentSelect; + } + else + { + var itemUIRect = selectItem.transform as RectTransform; + SelectBorder.Target = itemUIRect; + } + } + + private bool checkDirty() { bool dirty = false; foreach (var menuItem in m_runtimeMenuItems) @@ -84,52 +139,31 @@ namespace AxibugEmuOnline.Client menuItem.gameObject.SetActive(menuItem.Visible); } } - if (dirty) - { - Canvas.ForceUpdateCanvases(); - if (m_runtimeMenuItems[SelectIndex].Visible == false) - { - bool find = false; - int currentSelect = SelectIndex; - while (currentSelect > 0) - { - currentSelect--; - if (m_runtimeMenuItems[currentSelect].Visible) - { - find = true; - } - } - if (!find) - { - currentSelect = SelectIndex; - while (currentSelect < m_runtimeMenuItems.Count) - { - if (m_runtimeMenuItems[currentSelect].Visible) - { - find = true; - } - currentSelect++; - } - } - - if (find) - SelectIndex = currentSelect; - } - else - { - var selectItem = m_runtimeMenuItems[SelectIndex]; - var itemUIRect = selectItem.transform as RectTransform; - SelectBorder.pivot = itemUIRect.pivot; - SelectBorder.position = itemUIRect.position; - SelectBorder.sizeDelta = itemUIRect.rect.size; - } - } + return dirty; } IKeyMapperChanger m_lastCS; - public void Pop(List menus, int defaultIndex = 0) where T : OptionMenu + private Action m_onClose; + + /// + /// ˵ʱ,̬һ˵ѡ + /// + /// + public void AddOptionMenuWhenPoping(OptionMenu menu) { + if (!m_bPoped) return; + + CreateRuntimeMenuItem(menu); + Canvas.ForceUpdateCanvases(); + + OptionUI_MenuItem optionUI_MenuItem = m_runtimeMenuItems[m_selectIndex]; + SelectBorder.Target = optionUI_MenuItem.transform as RectTransform; + } + + public void Pop(List menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu + { + m_onClose = onClose; ReleaseRuntimeMenus(); foreach (var menu in menus) CreateRuntimeMenuItem(menu); CommandDispatcher.Instance.RegistController(this); @@ -140,25 +174,37 @@ namespace AxibugEmuOnline.Client m_selectIndex = defaultIndex; OptionUI_MenuItem optionUI_MenuItem = m_runtimeMenuItems[defaultIndex]; optionUI_MenuItem.OnFocus(); + var itemUIRect = optionUI_MenuItem.transform as RectTransform; - SelectBorder.pivot = itemUIRect.pivot; - SelectBorder.position = itemUIRect.position; - SelectBorder.sizeDelta = itemUIRect.rect.size; - SelectBorder.SetAsLastSibling(); + SelectBorder.Target = itemUIRect; if (!m_bPoped) { m_bPoped = true; - + Vector2 start = new Vector2(0, MenuRoot.anchoredPosition.y); + Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y); DOTween.To( - () => MenuRoot.anchoredPosition.x, + () => start, (value) => { - var temp = MenuRoot.anchoredPosition; - temp.x = value; - MenuRoot.anchoredPosition = temp; + var moveDelta = value - start; + start = value; + + var topParent = m_parent; + while (topParent != null && topParent.m_parent != null) + { + topParent = topParent.m_parent; + } + if (topParent != null) + { + topParent.MenuRoot.anchoredPosition += moveDelta; + } + else + { + MenuRoot.anchoredPosition += moveDelta; + } }, - 0, + end, 0.3f ).SetEase(Ease.OutCubic); @@ -179,16 +225,30 @@ namespace AxibugEmuOnline.Client CommandDispatcher.Instance.UnRegistController(this); Canvas.ForceUpdateCanvases(); - var width = MenuRoot.rect.width; + Vector2 start = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y); + Vector2 end = new Vector2(0, MenuRoot.anchoredPosition.y); DOTween.To( - () => MenuRoot.anchoredPosition.x, + () => start, (value) => { - var temp = MenuRoot.anchoredPosition; - temp.x = value; - MenuRoot.anchoredPosition = temp; + var moveDelta = value - start; + start = value; + + var topParent = m_parent; + while (topParent != null && topParent.m_parent != null) + { + topParent = topParent.m_parent; + } + if (topParent != null) + { + topParent.MenuRoot.anchoredPosition += moveDelta; + } + else + { + MenuRoot.anchoredPosition += moveDelta; + } }, - width, + end, 0.3f ).SetEase(Ease.OutCubic); @@ -196,7 +256,8 @@ namespace AxibugEmuOnline.Client CommandDispatcher.Instance.Current = m_lastCS; - OnHide?.Invoke(); + m_onClose?.Invoke(); + m_onClose = null; } } @@ -206,7 +267,7 @@ namespace AxibugEmuOnline.Client { var menuUI = GameObject.Instantiate(TEMPLATE_EXECUTEITEM.gameObject, TEMPLATE_EXECUTEITEM.transform.parent).GetComponent(); menuUI.gameObject.SetActive(true); - menuUI.SetData(executeMenu); + menuUI.SetData(this, executeMenu); m_runtimeMenuItems.Add(menuUI); } else @@ -219,6 +280,7 @@ namespace AxibugEmuOnline.Client { foreach (var item in m_runtimeMenuItems) { + item.OnHide(); Destroy(item.gameObject); } m_runtimeMenuItems.Clear(); @@ -239,39 +301,89 @@ namespace AxibugEmuOnline.Client Hide(); } + protected override void OnCmdSelectItemRight() + { + var executer = m_runtimeMenuItems[SelectIndex]; + if (!executer.IsExpandMenu) return; + + OnCmdEnter(); + } + protected override bool OnCmdEnter() { var executer = m_runtimeMenuItems[SelectIndex]; - Hide(); - executer.OnExecute(); - return true; + bool cancelHide = false; + executer.OnExecute(this, ref cancelHide); + if (!cancelHide) Hide(); + + return false; } - } - public abstract class OptionMenu - { - public string Name { get; protected set; } - public Sprite Icon { get; protected set; } - public virtual bool Visible => true; - public virtual bool Enable => true; - - public OptionMenu(string name, Sprite icon = null) + /// + /// չ¼˵ + /// + /// + /// + /// + /// + public void ExpandSubMenu(List menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu { - Name = name; - Icon = icon; + if (m_child == null) + { + var sourcePrefab = Resources.Load("UIPrefabs/OptionUI"); + m_child = Instantiate(sourcePrefab, transform).GetComponent(); + m_child.name = $"{name}_Sub"; + m_child.m_parent = this; + } + + Canvas.ForceUpdateCanvases(); + + m_child.Pop(menus, 0, onClose); } - public virtual void OnFocus() { } - public virtual void OnShow(OptionUI_MenuItem ui) { } + public void RemoveItem(OptionUI_MenuItem ui) + { + var index = m_runtimeMenuItems.IndexOf(ui); + if (index == -1) return; + + m_runtimeMenuItems.Remove(ui); + ui.OnHide(); + Destroy(ui.gameObject); + + RebuildSelectIndex(); + } } + /// + /// ִΪIJ˵ + /// public abstract class ExecuteMenu : OptionMenu { public ExecuteMenu(string name, Sprite icon = null) : base(name, icon) { } - public abstract void OnExcute(); + public abstract void OnExcute(OptionUI optionUI, ref bool cancelHide); } + /// + /// չΪIJ˵ + /// + public abstract class ExpandMenu : ExecuteMenu + { + protected ExpandMenu(string name, Sprite icon = null) : base(name, icon) { } + + public sealed override void OnExcute(OptionUI optionUI, ref bool cancelHide) + { + cancelHide = true; + optionUI.ExpandSubMenu(GetOptionMenus()); + } + + protected abstract List GetOptionMenus(); + } + + /// + /// ֵʾͱ༭IJ˵ + /// + /// public class ValueSetMenu : ValueSetMenu { public sealed override Type ValueType => typeof(T); @@ -287,6 +399,25 @@ namespace AxibugEmuOnline.Client protected ValueSetMenu(string name) : base(name) { } } + /// ҪֱӼ̳ + public abstract class OptionMenu + { + public string Name { get; protected set; } + public Sprite Icon { get; protected set; } + public virtual bool Visible => true; + public virtual bool Enable => true; + + public OptionMenu(string name, Sprite icon = null) + { + Name = name; + Icon = icon; + } + + public virtual void OnFocus() { } + public virtual void OnShow(OptionUI_MenuItem ui) { } + public virtual void OnHide() { } + } + /// ҪֱӼ̳ public abstract class ValueSetMenu : OptionMenu { public ValueSetMenu(string name) : base(name) { } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ExecuteItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ExecuteItem.cs index 3069f47..a6ba63c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ExecuteItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ExecuteItem.cs @@ -1,10 +1,21 @@ +using UnityEngine; + namespace AxibugEmuOnline.Client { public class OptionUI_ExecuteItem : OptionUI_MenuItem { - public override void OnExecute() + public GameObject ExpandFlag; + + protected override void OnSetData(OptionMenu menuData) { - MenuData.OnExcute(); + base.OnSetData(menuData); + + ExpandFlag.SetActiveEx(IsExpandMenu); + } + + public override void OnExecute(OptionUI optionUI, ref bool cancelHide) + { + MenuData.OnExcute(optionUI, ref cancelHide); } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs index 7cf884e..5b3203f 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEditor; using UnityEngine; using UnityEngine.UI; @@ -15,11 +11,12 @@ namespace AxibugEmuOnline.Client public Image IconUI => m_Icon; public bool Visible => m_Menu.Visible; - + public OptionUI OptionUI { get; private set; } protected OptionMenu m_Menu; - public void SetData(OptionMenu menuData) + public void SetData(OptionUI optionUI, OptionMenu menuData) { + OptionUI = optionUI; m_Menu = menuData; m_MenuNameTxt.text = menuData.Name; if (menuData.Icon == null) m_Icon.gameObject.SetActiveEx(false); @@ -33,10 +30,13 @@ namespace AxibugEmuOnline.Client OnSetData(menuData); } + public bool IsExpandMenu => m_Menu is ExpandMenu; + protected abstract void OnSetData(OptionMenu menuData); - public abstract void OnExecute(); + public abstract void OnExecute(OptionUI optionUI, ref bool cancelHide); public abstract void OnFocus(); + public virtual void OnHide() { } } public abstract class OptionUI_MenuItem : OptionUI_MenuItem @@ -53,5 +53,10 @@ namespace AxibugEmuOnline.Client { MenuData.OnFocus(); } + + public override void OnHide() + { + MenuData.OnHide(); + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/InputUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/InputUI.cs index 43a9186..56ac632 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/InputUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/InputUI.cs @@ -12,6 +12,9 @@ namespace AxibugEmuOnline.Client Action OnCommit; + public static bool IsInputing { get; private set; } + + protected override void OnShow(object param) { @@ -22,6 +25,24 @@ namespace AxibugEmuOnline.Client m_input.text = t.defaultText; } + protected override void Update() + { + base.Update(); + + IsInputing = m_input.isFocused; + + if (IsInputing && Input.GetButtonDown("Submit")) + { + OnCmdEnter(); + } + } + + protected override void OnDisable() + { + base.OnDisable(); + IsInputing = false; + } + protected override void OnEnable() { base.OnEnable(); diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/OverlayManager.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/OverlayManager.cs index 16eb9e9..d1b5b82 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/OverlayManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OverlayUI/OverlayManager.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using UnityEngine; namespace AxibugEmuOnline.Client @@ -9,6 +10,8 @@ namespace AxibugEmuOnline.Client [SerializeField] InputUI m_InputUI; + [SerializeField] + OptionUI m_OptionUI; private void Awake() { @@ -17,11 +20,20 @@ namespace AxibugEmuOnline.Client m_InputUI.gameObject.SetActive(false); } - public static InputUI Input((Action callback, string placeHolder, string defaultText) param) + public static InputUI Input(Action callback, string placeHolder, string defaultText) { - s_ins.m_InputUI.Show(param); + s_ins.m_InputUI.Show((callback, placeHolder, defaultText)); return s_ins.m_InputUI; } + public static void Pop(List menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu + { + s_ins.m_OptionUI.Pop(menus, defaultIndex, onClose); + } + + public static void PopMsg(string msg) + { + + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs b/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs new file mode 100644 index 0000000..2fa6b6d --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs @@ -0,0 +1,54 @@ +using DG.Tweening; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +namespace AxibugEmuOnline.Client +{ + public class Selector : MonoBehaviour + { + private RectTransform m_rect => transform as RectTransform; + + private RectTransform m_target; + private TweenerCore m_trackTween; + + public RectTransform Target + { + get => m_target; + set + { + if (m_target == value) return; + + m_target = value; + + //ѡαĶ + gameObject.SetActive(false); + gameObject.SetActive(true); + + var itemUIRect = m_target.transform as RectTransform; + m_rect.pivot = itemUIRect.pivot; + m_rect.sizeDelta = itemUIRect.rect.size; + m_rect.SetAsLastSibling(); + + if (m_trackTween != null) + { + m_trackTween.Kill(); + m_trackTween = null; + } + m_trackTween = DOTween.To(() => m_rect.position, (value) => m_rect.position = value, itemUIRect.position, 0.125f); + m_trackTween.onComplete = () => m_trackTween = null; + } + } + + private void LateUpdate() + { + if (m_trackTween != null) + { + m_trackTween.endValue = Target.position; + } + if (Target == null) return; + + m_rect.position = Target.position; + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs.meta new file mode 100644 index 0000000..075081b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/Selector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f9054446a969bf4eaf7998f3ba23334 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/ProjectSettings/InputManager.asset b/AxibugEmuOnline.Client/ProjectSettings/InputManager.asset index 8068b20..db2c9bd 100644 --- a/AxibugEmuOnline.Client/ProjectSettings/InputManager.asset +++ b/AxibugEmuOnline.Client/ProjectSettings/InputManager.asset @@ -5,273 +5,17 @@ InputManager: m_ObjectHideFlags: 0 serializedVersion: 2 m_Axes: - - serializedVersion: 3 - m_Name: Horizontal - descriptiveName: - descriptiveNegativeName: - negativeButton: left - positiveButton: right - altNegativeButton: a - altPositiveButton: d - gravity: 3 - dead: 0.001 - sensitivity: 3 - snap: 1 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Vertical - descriptiveName: - descriptiveNegativeName: - negativeButton: down - positiveButton: up - altNegativeButton: s - altPositiveButton: w - gravity: 3 - dead: 0.001 - sensitivity: 3 - snap: 1 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire1 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left ctrl - altNegativeButton: - altPositiveButton: mouse 0 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire2 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left alt - altNegativeButton: - altPositiveButton: mouse 1 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire3 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left shift - altNegativeButton: - altPositiveButton: mouse 2 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Jump - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: space - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse X - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse Y - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 1 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse ScrollWheel - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 2 - joyNum: 0 - - serializedVersion: 3 - m_Name: Horizontal - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0.19 - sensitivity: 1 - snap: 0 - invert: 0 - type: 2 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Vertical - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0.19 - sensitivity: 1 - snap: 0 - invert: 1 - type: 2 - axis: 1 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire1 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 0 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire2 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 1 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire3 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 2 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Jump - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 3 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - serializedVersion: 3 m_Name: Submit descriptiveName: descriptiveNegativeName: negativeButton: - positiveButton: return + positiveButton: altNegativeButton: - altPositiveButton: joystick button 0 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Submit - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: enter - altNegativeButton: - altPositiveButton: space - gravity: 1000 - dead: 0.001 - sensitivity: 1000 + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0 snap: 0 invert: 0 type: 0 @@ -282,15 +26,46 @@ InputManager: descriptiveName: descriptiveNegativeName: negativeButton: - positiveButton: escape + positiveButton: altNegativeButton: - altPositiveButton: joystick button 1 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - m_UsePhysicalKeys: 1