diff --git a/Assets/RTLTMPro.meta b/Assets/RTLTMPro.meta new file mode 100644 index 0000000..3469d75 --- /dev/null +++ b/Assets/RTLTMPro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c07a9f118341e14b8a33afc43ab2cb3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Fonts.meta b/Assets/RTLTMPro/Fonts.meta new file mode 100644 index 0000000..d495a6f --- /dev/null +++ b/Assets/RTLTMPro/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b428dc574f2ded64784b97ed202ad415 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Ranges.meta b/Assets/RTLTMPro/Ranges.meta new file mode 100644 index 0000000..0c9daa5 --- /dev/null +++ b/Assets/RTLTMPro/Ranges.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2557c11c53f33f40be6c375fbbaa4f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Resources.meta b/Assets/RTLTMPro/Resources.meta new file mode 100644 index 0000000..216a887 --- /dev/null +++ b/Assets/RTLTMPro/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d2fc52e94ed3e445922cf03a594dbdc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Resources/Shaders.meta b/Assets/RTLTMPro/Resources/Shaders.meta new file mode 100644 index 0000000..14ca394 --- /dev/null +++ b/Assets/RTLTMPro/Resources/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b956be7dd5abb9448d9a0530b49a1a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Resources/Sprites.meta b/Assets/RTLTMPro/Resources/Sprites.meta new file mode 100644 index 0000000..6cbb15c --- /dev/null +++ b/Assets/RTLTMPro/Resources/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7db7fbf6f8d2e1a4fa7f041094fd1622 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Resources/Sprites/Github.png.meta b/Assets/RTLTMPro/Resources/Sprites/Github.png.meta index f0105ba..b84f68e 100644 --- a/Assets/RTLTMPro/Resources/Sprites/Github.png.meta +++ b/Assets/RTLTMPro/Resources/Sprites/Github.png.meta @@ -1,9 +1,9 @@ fileFormatVersion: 2 guid: f530757d1fa82d845a6183ba68030714 TextureImporter: - fileIDToRecycleName: {} + internalIDToNameTable: [] externalObjects: {} - serializedVersion: 6 + serializedVersion: 11 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -57,8 +57,9 @@ TextureImporter: maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + applyGammaDecoding: 1 platformSettings: - - serializedVersion: 2 + - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 @@ -69,7 +70,8 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 @@ -80,7 +82,8 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 buildTarget: Android maxTextureSize: 2048 resizeAlgorithm: 0 @@ -91,18 +94,23 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 vertices: [] indices: edges: [] weights: [] + secondaryTextures: [] spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/RTLTMPro/Scenes.meta b/Assets/RTLTMPro/Scenes.meta new file mode 100644 index 0000000..17a207d --- /dev/null +++ b/Assets/RTLTMPro/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 812a2f0160e2d9d4293f30827c20afa3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Scenes/Rich Text.unity b/Assets/RTLTMPro/Scenes/Rich Text.unity index eb47582..0df9558 100644 --- a/Assets/RTLTMPro/Scenes/Rich Text.unity +++ b/Assets/RTLTMPro/Scenes/Rich Text.unity @@ -50,12 +50,11 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 m_LightmapEditorSettings: - serializedVersion: 10 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 10 m_AtlasSize: 512 @@ -63,6 +62,7 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -77,10 +77,16 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 256 m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 + m_PVREnvironmentMIS: 0 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -88,7 +94,9 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -113,11 +121,155 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &209932492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 209932493} + - component: {fileID: 209932495} + - component: {fileID: 209932494} + m_Layer: 0 + m_Name: RTLTextMeshPro (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &209932493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 209932492} + 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: 1720883043} + - {fileID: 1887986674} + m_Father: {fileID: 1404080890} + m_RootOrder: 3 + 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: 1.5643e-10, y: -350} + m_SizeDelta: {x: 1044.4, y: 162.5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &209932494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 209932492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9839c2d141529145a431aef4d757ff3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u0627\uFECB\uFEAA\u0627\u062F \uFED3\uFE8E\u0631\uFEB3\uFBFD \u06F3\u06F2\u06F1 + \uFE91\uFEEA \uFEEB\uFEE4\uFEAE\u0627\u0647 \uFE91\uFEB0\u0631\uFB94\uFE8E\u0646." + m_isRightToLeft: 1 + m_fontAsset: {fileID: 11400000, guid: 3fbde2e562e333d488bc46986fc6f4f1, type: 2} + m_sharedMaterial: {fileID: 21623836076631360, guid: 3fbde2e562e333d488bc46986fc6f4f1, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 21.2 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} + preserveNumbers: 0 + farsi: 1 + originalText: "\u0627\u0639\u062F\u0627\u062F \u0641\u0627\u0631\u0633\u064A 123 + \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0628\u0632\u0631\u06AF\u0627\u0646." + fixTags: 1 + forceFix: 0 +--- !u!222 &209932495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 209932492} + m_CullTransparentMesh: 0 --- !u!1 &282840810 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 282840814} @@ -134,20 +286,24 @@ GameObject: AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 --- !u!20 &282840813 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 2 m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} m_FocalLength: 50 @@ -181,7 +337,8 @@ Camera: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 282840810} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} @@ -194,7 +351,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 483174607} @@ -211,7 +369,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 483174606} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -231,7 +390,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 483174606} m_Enabled: 1 m_EditorHideFlags: 0 @@ -241,13 +401,12 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_text: "\uFB90\uFEE0\uFEE4\uFEEA\uFEEB\uFE8E \uFEA3\uFE98\uFBFD \uFEE3\uFBFF\uFE98\uFEEE\u0627\uFEE7\uFEE8\uFEAA - \uFE91\uFE8E\uFEDF\uFE8E \uFBFE\uFE8E \uFB58\uFE8E\uFBFE\uFBFF\uFEE6 + \uFE91\uFE8E\uFEFB \uFBFE\uFE8E \uFB58\uFE8E\uFBFE\uFBFF\uFEE6 \uFE91\uFE8E\uFEB7\uFEE8\uFEAA" m_isRightToLeft: 1 m_fontAsset: {fileID: 11400000, guid: 3fbde2e562e333d488bc46986fc6f4f1, type: 2} @@ -261,6 +420,7 @@ MonoBehaviour: rgba: 4294967295 m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 + m_colorMode: 3 m_fontColorGradient: topLeft: {r: 1, g: 1, b: 1, a: 1} topRight: {r: 1, g: 1, b: 1, a: 1} @@ -269,13 +429,12 @@ MonoBehaviour: m_fontColorGradientPreset: {fileID: 0} m_spriteAsset: {fileID: 0} m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 m_overrideHtmlColors: 0 m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 m_fontSize: 50 m_fontSizeBase: 50 m_fontWeight: 400 @@ -283,8 +442,9 @@ MonoBehaviour: m_fontSizeMin: 21.2 m_fontSizeMax: 72 m_fontStyle: 0 - m_textAlignment: 514 - m_isAlignmentEnumConverted: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 m_lineSpacing: 0 @@ -294,10 +454,8 @@ MonoBehaviour: m_enableWordWrapping: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 - m_firstOverflowCharacterIndex: 28 m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 + parentLinkedComponent: {fileID: 0} m_enableKerning: 1 m_enableExtraPadding: 0 checkPaddingRequired: 0 @@ -305,42 +463,18 @@ MonoBehaviour: m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 m_horizontalMapping: 0 m_verticalMapping: 0 m_uvLineOffset: 0 m_geometrySortingOrder: 0 - m_firstVisibleCharacter: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 483174608} - characterCount: 39 - spriteCount: 0 - spaceCount: 6 - wordCount: 7 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_havePropertiesChanged: 0 m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_isInputParsingRequired: 0 - m_inputSource: 3 m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 490255908} - - {fileID: 1078616043} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} preserveNumbers: 1 @@ -354,19 +488,20 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 483174606} m_CullTransparentMesh: 0 --- !u!1 &490255907 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 490255910} - component: {fileID: 490255909} - - component: {fileID: 490255908} m_Layer: 0 m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] m_TagString: Untagged @@ -374,46 +509,20 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &490255908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 490255907} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0.5 - m_canvasRenderer: {fileID: 490255909} - m_TextComponent: {fileID: 483174608} - m_materialReferenceIndex: 1 --- !u!222 &490255909 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 490255907} m_CullTransparentMesh: 0 --- !u!224 &490255910 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 490255907} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -431,7 +540,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 645895902} @@ -448,7 +558,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 645895901} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -468,7 +579,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 645895901} m_Enabled: 1 m_EditorHideFlags: 0 @@ -478,11 +590,10 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_text: "\uFEE3\uFE98\uFEE6 \u0632\u0631\u062F \uFEB3\uFE8E\u062F\u0647" m_isRightToLeft: 1 m_fontAsset: {fileID: 11400000, guid: 3fbde2e562e333d488bc46986fc6f4f1, type: 2} @@ -496,6 +607,7 @@ MonoBehaviour: rgba: 4294967295 m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 + m_colorMode: 3 m_fontColorGradient: topLeft: {r: 1, g: 1, b: 1, a: 1} topRight: {r: 1, g: 1, b: 1, a: 1} @@ -504,13 +616,12 @@ MonoBehaviour: m_fontColorGradientPreset: {fileID: 0} m_spriteAsset: {fileID: 0} m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 m_overrideHtmlColors: 0 m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 m_fontSize: 50 m_fontSizeBase: 50 m_fontWeight: 400 @@ -518,8 +629,9 @@ MonoBehaviour: m_fontSizeMin: 21.2 m_fontSizeMax: 72 m_fontStyle: 0 - m_textAlignment: 514 - m_isAlignmentEnumConverted: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 m_lineSpacing: 0 @@ -529,10 +641,8 @@ MonoBehaviour: m_enableWordWrapping: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 + parentLinkedComponent: {fileID: 0} m_enableKerning: 1 m_enableExtraPadding: 0 checkPaddingRequired: 0 @@ -540,42 +650,18 @@ MonoBehaviour: m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 m_horizontalMapping: 0 m_verticalMapping: 0 m_uvLineOffset: 0 m_geometrySortingOrder: 0 - m_firstVisibleCharacter: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 645895903} - characterCount: 12 - spriteCount: 0 - spaceCount: 2 - wordCount: 3 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_havePropertiesChanged: 0 m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_isInputParsingRequired: 0 - m_inputSource: 0 m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 1127370894} - - {fileID: 681459123} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} preserveNumbers: 1 @@ -587,19 +673,20 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 645895901} m_CullTransparentMesh: 0 --- !u!1 &648455411 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 648455412} - component: {fileID: 648455414} - - component: {fileID: 648455413} m_Layer: 0 m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] m_TagString: Untagged @@ -611,7 +698,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 648455411} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -625,53 +713,26 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &648455413 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 648455411} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0 - m_canvasRenderer: {fileID: 648455414} - m_TextComponent: {fileID: 1817191382} - m_materialReferenceIndex: 2 --- !u!222 &648455414 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 648455411} m_CullTransparentMesh: 0 --- !u!1 &681459121 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 681459122} - component: {fileID: 681459124} - - component: {fileID: 681459123} m_Layer: 0 - m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] + m_Name: TMP SubMeshUI [segoeui RTL SDF Material + segoeui Numbers SDF Atlas] m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -681,7 +742,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 681459121} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -695,51 +757,24 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &681459123 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 681459121} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0 - m_canvasRenderer: {fileID: 681459124} - m_TextComponent: {fileID: 645895903} - m_materialReferenceIndex: 2 --- !u!222 &681459124 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 681459121} m_CullTransparentMesh: 0 --- !u!1 &872481497 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 872481500} - component: {fileID: 872481499} - - component: {fileID: 872481498} m_Layer: 0 m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] m_TagString: Untagged @@ -747,46 +782,20 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &872481498 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 872481497} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0.5 - m_canvasRenderer: {fileID: 872481499} - m_TextComponent: {fileID: 1817191382} - m_materialReferenceIndex: 1 --- !u!222 &872481499 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 872481497} m_CullTransparentMesh: 0 --- !u!224 &872481500 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 872481497} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -804,7 +813,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 889652355} @@ -821,11 +831,12 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 889652352} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} m_Name: m_EditorClassIdentifier: m_HorizontalAxis: Horizontal @@ -839,11 +850,12 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 889652352} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -853,7 +865,8 @@ MonoBehaviour: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 889652352} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -866,12 +879,12 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1078616042} - component: {fileID: 1078616044} - - component: {fileID: 1078616043} m_Layer: 0 m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] m_TagString: Untagged @@ -883,7 +896,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1078616041} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -897,51 +911,24 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1078616043 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1078616041} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0 - m_canvasRenderer: {fileID: 1078616044} - m_TextComponent: {fileID: 483174608} - m_materialReferenceIndex: 2 --- !u!222 &1078616044 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1078616041} m_CullTransparentMesh: 0 --- !u!1 &1127370892 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1127370893} - component: {fileID: 1127370895} - - component: {fileID: 1127370894} m_Layer: 0 m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] m_TagString: Untagged @@ -953,7 +940,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1127370892} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -967,46 +955,20 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1127370894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1127370892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_spriteAsset: {fileID: 0} - m_material: {fileID: 0} - m_sharedMaterial: {fileID: 0} - m_isDefaultMaterial: 0 - m_padding: 0.5 - m_canvasRenderer: {fileID: 1127370895} - m_TextComponent: {fileID: 645895903} - m_materialReferenceIndex: 1 --- !u!222 &1127370895 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1127370892} m_CullTransparentMesh: 0 --- !u!1 &1404080887 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1404080890} @@ -1024,11 +986,12 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1404080887} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -1040,7 +1003,8 @@ MonoBehaviour: Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1404080887} m_Enabled: 1 serializedVersion: 3 @@ -1060,7 +1024,8 @@ Canvas: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1404080887} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1069,6 +1034,7 @@ RectTransform: - {fileID: 645895902} - {fileID: 1817191381} - {fileID: 483174607} + - {fileID: 209932493} m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1081,11 +1047,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1404080887} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 1 @@ -1098,11 +1065,56 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 +--- !u!1 &1720883042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1720883043} + - component: {fileID: 1720883044} + m_Layer: 0 + m_Name: TMP SubMeshUI [segoeui RTL SDF Material + LiberationSans SDF Atlas] + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1720883043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720883042} + 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: 209932493} + 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!222 &1720883044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720883042} + m_CullTransparentMesh: 0 --- !u!1 &1817191380 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1817191381} @@ -1119,7 +1131,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1817191380} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1139,7 +1152,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1817191380} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1149,11 +1163,10 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_text: "\uFB90\uFEE0\uFEE4\uFEEA\uFEEB\uFE8E \uFEE3\uFBFF\uFE98\uFEEE\u0627\uFEE7\uFEE8\uFEAA \u062F\u0631 \u0648\uFEB3\uFEC2 \uFE9F\uFEE4\uFEE0\uFEEA \uFE91\uFEB0\u0631\u06AF \uFE91\uFE8E\uFEB7\uFEE8\uFEAA" @@ -1169,6 +1182,7 @@ MonoBehaviour: rgba: 4294967295 m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 + m_colorMode: 3 m_fontColorGradient: topLeft: {r: 1, g: 1, b: 1, a: 1} topRight: {r: 1, g: 1, b: 1, a: 1} @@ -1177,13 +1191,12 @@ MonoBehaviour: m_fontColorGradientPreset: {fileID: 0} m_spriteAsset: {fileID: 0} m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 m_overrideHtmlColors: 0 m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 m_fontSize: 50 m_fontSizeBase: 50 m_fontWeight: 400 @@ -1191,8 +1204,9 @@ MonoBehaviour: m_fontSizeMin: 21.2 m_fontSizeMax: 72 m_fontStyle: 0 - m_textAlignment: 514 - m_isAlignmentEnumConverted: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 m_lineSpacing: 0 @@ -1202,10 +1216,8 @@ MonoBehaviour: m_enableWordWrapping: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 + parentLinkedComponent: {fileID: 0} m_enableKerning: 1 m_enableExtraPadding: 0 checkPaddingRequired: 0 @@ -1213,42 +1225,18 @@ MonoBehaviour: m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 m_horizontalMapping: 0 m_verticalMapping: 0 m_uvLineOffset: 0 m_geometrySortingOrder: 0 - m_firstVisibleCharacter: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1817191382} - characterCount: 38 - spriteCount: 0 - spaceCount: 6 - wordCount: 7 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_havePropertiesChanged: 0 m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_isInputParsingRequired: 0 - m_inputSource: 0 m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 872481498} - - {fileID: 648455413} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} preserveNumbers: 1 @@ -1262,6 +1250,51 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1817191380} m_CullTransparentMesh: 0 +--- !u!1 &1887986673 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1887986674} + - component: {fileID: 1887986675} + m_Layer: 0 + m_Name: TMP SubMeshUI [segoeui RTL SDF Material + segoeui Numbers SDF Atlas] + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1887986674 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887986673} + 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: 209932493} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1887986675 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887986673} + m_CullTransparentMesh: 0 diff --git a/Assets/RTLTMPro/Scripts.meta b/Assets/RTLTMPro/Scripts.meta new file mode 100644 index 0000000..01edef1 --- /dev/null +++ b/Assets/RTLTMPro/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f3d58fb5f5194e94b86386b3486a9e68 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Scripts/Editor.meta b/Assets/RTLTMPro/Scripts/Editor.meta new file mode 100644 index 0000000..d9f0679 --- /dev/null +++ b/Assets/RTLTMPro/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c6c18abdc8a69b7408f1ed882aa3c674 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Scripts/Editor/RTLTMPro-Editor.asmdef b/Assets/RTLTMPro/Scripts/Editor/RTLTMPro-Editor.asmdef index e1b5262..11b43e9 100644 --- a/Assets/RTLTMPro/Scripts/Editor/RTLTMPro-Editor.asmdef +++ b/Assets/RTLTMPro/Scripts/Editor/RTLTMPro-Editor.asmdef @@ -5,7 +5,6 @@ "Unity.TextMeshPro.Editor", "Unity.TextMeshPro" ], - "optionalUnityReferences": [], "includePlatforms": [ "Editor" ], @@ -14,5 +13,13 @@ "overrideReferences": false, "precompiledReferences": [], "autoReferenced": true, - "defineConstraints": [] + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.textmeshpro", + "expression": "2.1.0", + "define": "TMP_VERSION_2_1_0_OR_NEWER" + } + ], + "noEngineReferences": false } \ No newline at end of file diff --git a/Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs b/Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs index ce176ee..2192b56 100644 --- a/Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs +++ b/Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs @@ -2,14 +2,12 @@ using UnityEditor; using UnityEngine; - -#if !TMP_Version_2_1_1 -using TMP_UiEditorPanel = TMPro.EditorUtilities.TMP_UiEditorPanel; -#else +#if TMP_VERSION_2_1_0_OR_NEWER using TMP_UiEditorPanel = TMPro.EditorUtilities.TMP_EditorPanelUI; +#else +using TMP_UiEditorPanel = TMPro.EditorUtilities.TMP_UiEditorPanel; #endif - namespace RTLTMPro { [CustomEditor(typeof(RTLTextMeshPro)), CanEditMultipleObjects] diff --git a/Assets/RTLTMPro/Scripts/Runtime.meta b/Assets/RTLTMPro/Scripts/Runtime.meta new file mode 100644 index 0000000..e056026 --- /dev/null +++ b/Assets/RTLTMPro/Scripts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 147605ae7c566f84b9bca8a6f50e63f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Scripts/Runtime/GlyphFixer.cs b/Assets/RTLTMPro/Scripts/Runtime/GlyphFixer.cs index ce2e3a2..c4aab75 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/GlyphFixer.cs +++ b/Assets/RTLTMPro/Scripts/Runtime/GlyphFixer.cs @@ -1,7 +1,38 @@ +using System.Collections.Generic; + namespace RTLTMPro { public static class GlyphFixer { + public static Dictionary EnglishToFarsiNumberMap = new Dictionary() + { + [(char)EnglishNumbers.Zero] = (char)FarsiNumbers.Zero, + [(char)EnglishNumbers.One] = (char)FarsiNumbers.One, + [(char)EnglishNumbers.Two] = (char)FarsiNumbers.Two, + [(char)EnglishNumbers.Three] = (char)FarsiNumbers.Three, + [(char)EnglishNumbers.Four] = (char)FarsiNumbers.Four, + [(char)EnglishNumbers.Five] = (char)FarsiNumbers.Five, + [(char)EnglishNumbers.Six] = (char)FarsiNumbers.Six, + [(char)EnglishNumbers.Seven] = (char)FarsiNumbers.Seven, + [(char)EnglishNumbers.Eight] = (char)FarsiNumbers.Eight, + [(char)EnglishNumbers.Nine] = (char)FarsiNumbers.Nine, + }; + + public static Dictionary EnglishToHinduNumberMap = new Dictionary() + { + [(char)EnglishNumbers.Zero] = (char)FarsiNumbers.Zero, + [(char)EnglishNumbers.One] = (char)FarsiNumbers.One, + [(char)EnglishNumbers.Two] = (char)FarsiNumbers.Two, + [(char)EnglishNumbers.Three] = (char)FarsiNumbers.Three, + [(char)EnglishNumbers.Four] = (char)FarsiNumbers.Four, + [(char)EnglishNumbers.Five] = (char)FarsiNumbers.Five, + [(char)EnglishNumbers.Six] = (char)FarsiNumbers.Six, + [(char)EnglishNumbers.Seven] = (char)FarsiNumbers.Seven, + [(char)EnglishNumbers.Eight] = (char)FarsiNumbers.Eight, + [(char)EnglishNumbers.Nine] = (char)FarsiNumbers.Nine, + }; + + /// /// Fixes the shape of letters based on their position. /// @@ -10,7 +41,7 @@ public static class GlyphFixer /// /// /// - public static void Fix(FastStringBuilder input, FastStringBuilder output, bool preserveNumbers, bool farsi) + public static void Fix(FastStringBuilder input, FastStringBuilder output, bool preserveNumbers, bool farsi, bool fixTextTags) { FixYah(input, farsi); @@ -46,12 +77,10 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool p if (IsMiddleLetter(input, i)) { output.Set(i, (char)(converted + 3)); - } - else if (IsFinishingLetter(input, i)) + } else if (IsFinishingLetter(input, i)) { output.Set(i, (char)(converted + 1)); - } - else if (IsLeadingLetter(input, i)) + } else if (IsLeadingLetter(input, i)) { output.Set(i, (char)(converted + 2)); } @@ -67,7 +96,13 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool p if (!preserveNumbers) { - FixNumbers(output, farsi); + if (fixTextTags) + { + FixNumbersOutsideOfTags(output, farsi); + } else + { + FixNumbers(output, farsi); + } } } @@ -84,8 +119,7 @@ public static void FixYah(FastStringBuilder text, bool farsi) if (farsi && text.Get(i) == (int)GeneralLetters.Ya) { text.Set(i, (char)GeneralLetters.PersianYa); - } - else if (farsi == false && text.Get(i) == (int)GeneralLetters.PersianYa) + } else if (farsi == false && text.Get(i) == (int)GeneralLetters.PersianYa) { text.Set(i, (char)GeneralLetters.Ya); } @@ -153,6 +187,46 @@ public static void FixNumbers(FastStringBuilder text, bool farsi) text.Replace((char)EnglishNumbers.Nine, farsi ? (char)FarsiNumbers.Nine : (char)HinduNumbers.Nine); } + /// + /// Converts English numbers that are outside tags to Persian or Arabic numbers. + /// + /// + /// + /// Text with converted numbers + public static void FixNumbersOutsideOfTags(FastStringBuilder text, bool farsi) + { + var englishDigits = new HashSet(EnglishToFarsiNumberMap.Keys); + for (int i = 0; i < text.Length; i++) + { + var iChar = text.Get(i); + // skip valid tags + if (iChar == '<') + { + bool sawValidTag = false; + for (int j = i + 1; j < text.Length; j++) + { + char jChar = text.Get(j); + if (jChar == ' ' || TextUtils.IsRTLCharacter(jChar)) + { + break; + } else if (jChar == '>') + { + i = j; + sawValidTag = true; + break; + } + } + + if (sawValidTag) continue; + } + + if (englishDigits.Contains(iChar)) + { + text.Set(i, farsi ? EnglishToFarsiNumberMap[iChar] : EnglishToHinduNumberMap[iChar]); + } + } + } + /// /// Is the letter at provided index a leading letter? /// diff --git a/Assets/RTLTMPro/Scripts/Runtime/LigatureFixer.cs b/Assets/RTLTMPro/Scripts/Runtime/LigatureFixer.cs index 0f5e44e..41a7cec 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/LigatureFixer.cs +++ b/Assets/RTLTMPro/Scripts/Runtime/LigatureFixer.cs @@ -5,6 +5,24 @@ namespace RTLTMPro public static class LigatureFixer { private static readonly List LtrTextHolder = new List(512); + private static readonly List TagTextHolder = new List(512); + private static readonly Dictionary MirroredCharsMap = new Dictionary() + { + ['('] = ')', + [')'] = '(', + ['»'] = '«', + ['«'] = '»', + }; + private static readonly HashSet MirroredCharsSet = new HashSet(MirroredCharsMap.Keys); + private static void FlushBufferToOutput(List buffer, FastStringBuilder output) + { + for (int j = 0; j < buffer.Count; j++) + { + output.Append(buffer[buffer.Count - 1 - j]); + } + + buffer.Clear(); + } /// /// Fixes the flow of the text. @@ -14,6 +32,7 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool f // Some texts like tags, English words and numbers need to be displayed in their original order. // This list keeps the characters that their order should be reserved and streams reserved texts into final letters. LtrTextHolder.Clear(); + TagTextHolder.Clear(); for (int i = input.Length - 1; i >= 0; i--) { bool isInMiddle = i > 0 && i < input.Length - 1; @@ -30,165 +49,65 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool f if (!isAtBeginning) previousCharacter = input.Get(i - 1); - if (char.IsPunctuation(characterAtThisIndex) || char.IsSymbol(characterAtThisIndex)) + if (fixTextTags) { - if (fixTextTags) + if (characterAtThisIndex == '>') { - if (characterAtThisIndex == '>') + // We need to check if it is actually the beginning of a tag. + bool isValidTag = false; + int nextI = i; + TagTextHolder.Add(characterAtThisIndex); + + for (int j = i - 1; j >= 0; j--) { - // We need to check if it is actually the beginning of a tag. - bool isValidTag = false; - // If > is at the end of the text (At beginning of the array), it can't be a tag - if (isAtEnd == false) + var jChar = input.Get(j); + // Tags do not have space inside + if (jChar == ' ') { - for (int j = i - 1; j >= 0; j--) - { - // Tags do not have space inside - if (input.Get(j) == ' ') - { - break; - } - - // Tags do not have RTL characters inside - if (TextUtils.IsRTLCharacter(input.Get(j))) - { - break; - } - - if (input.Get(j) == '<') - { - isValidTag = true; - break; - } - } + break; } - if (LtrTextHolder.Count > 0 && isValidTag) + // Tags do not have RTL characters inside + if (TextUtils.IsRTLCharacter(jChar)) { - for (int j = 0; j < LtrTextHolder.Count; j++) - { - output.Append(LtrTextHolder[LtrTextHolder.Count - 1 - j]); - } - - LtrTextHolder.Clear(); + break; } - } - } - if (characterAtThisIndex == ')') - { - if (isInMiddle) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); + TagTextHolder.Add(jChar); - if (isAfterRTLCharacter || isBeforeRTLCharacter) - { - characterAtThisIndex = '('; - } - } - else if (isAtEnd) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - if (isAfterRTLCharacter) - { - characterAtThisIndex = '('; - } - } - else if (isAtBeginning) - { - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isBeforeRTLCharacter) + if (jChar == '<') { - characterAtThisIndex = '('; + isValidTag = true; + nextI = j; + break; } } - } - else if (characterAtThisIndex == '(') - { - if (isInMiddle) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isAfterRTLCharacter || isBeforeRTLCharacter) - { - characterAtThisIndex = ')'; - } - } - else if (isAtEnd) + if (isValidTag) { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - if (isAfterRTLCharacter) - { - characterAtThisIndex = ')'; - } - } - else if (isAtBeginning) + FlushBufferToOutput(LtrTextHolder, output); + FlushBufferToOutput(TagTextHolder, output); + i = nextI; + continue; + } else { - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isBeforeRTLCharacter) - { - characterAtThisIndex = ')'; - } + TagTextHolder.Clear(); } } - else if (characterAtThisIndex == '«') - { - if (isInMiddle) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); + } - if (isAfterRTLCharacter || isBeforeRTLCharacter) - { - characterAtThisIndex = '»'; - } - } - else if (isAtEnd) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isAfterRTLCharacter) - { - characterAtThisIndex = '»'; - } - } - else if (isAtBeginning) - { - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - if (isBeforeRTLCharacter) - { - characterAtThisIndex = '»'; - } - } - } - else if (characterAtThisIndex == '»') + if (char.IsPunctuation(characterAtThisIndex) || char.IsSymbol(characterAtThisIndex)) + { + + if (MirroredCharsSet.Contains(characterAtThisIndex)) { - if (isInMiddle) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); + // IsRTLCharacter returns false for null + bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); + bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isAfterRTLCharacter || isBeforeRTLCharacter) - { - characterAtThisIndex = '«'; - } - } - else if (isAtEnd) - { - bool isAfterRTLCharacter = TextUtils.IsRTLCharacter(nextCharacter); - if (isAfterRTLCharacter) - { - characterAtThisIndex = '«'; - } - } - else if (isAtBeginning) + if (isAfterRTLCharacter || isBeforeRTLCharacter) { - bool isBeforeRTLCharacter = TextUtils.IsRTLCharacter(previousCharacter); - if (isBeforeRTLCharacter) - { - characterAtThisIndex = '«'; - } + characterAtThisIndex = MirroredCharsMap[characterAtThisIndex]; } } @@ -209,74 +128,20 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool f isBeforeRTLCharacter && isAfterWhiteSpace || (isBeforeRTLCharacter || isAfterRTLCharacter) && isUnderline) { - if (LtrTextHolder.Count > 0) - { - for (int j = 0; j < LtrTextHolder.Count; j++) - { - output.Append(LtrTextHolder[LtrTextHolder.Count - 1 - j]); - } - - LtrTextHolder.Clear(); - } - + FlushBufferToOutput(LtrTextHolder, output); output.Append(characterAtThisIndex); - } - else + } else { LtrTextHolder.Add(characterAtThisIndex); } - } - else if (isAtEnd) + } else if (isAtEnd) { LtrTextHolder.Add(characterAtThisIndex); - } - else if (isAtBeginning) + } else if (isAtBeginning) { output.Append(characterAtThisIndex); } - if (fixTextTags) - { - if (characterAtThisIndex == '<') - { - bool valid = false; - - if (isAtBeginning == false) - { - for (int j = i + 1; j < input.Length; j++) - { - // Tags do not have space inside - if (input.Get(j) == ' ') - { - break; - } - - // Tags do not have RTL characters inside - if (TextUtils.IsRTLCharacter(input.Get(j))) - { - break; - } - - if (input.Get(j) == '>') - { - valid = true; - break; - } - } - } - - if (LtrTextHolder.Count > 0 && valid) - { - for (int j = 0; j < LtrTextHolder.Count; j++) - { - output.Append(LtrTextHolder[LtrTextHolder.Count - 1 - j]); - } - - LtrTextHolder.Clear(); - } - } - } - continue; } @@ -315,15 +180,7 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool f continue; } - if (LtrTextHolder.Count > 0) - { - for (int j = 0; j < LtrTextHolder.Count; j++) - { - output.Append(LtrTextHolder[LtrTextHolder.Count - 1 - j]); - } - - LtrTextHolder.Clear(); - } + FlushBufferToOutput(LtrTextHolder, output); if (characterAtThisIndex != 0xFFFF && characterAtThisIndex != (int)GeneralLetters.ZeroWidthNoJoiner) @@ -332,15 +189,7 @@ public static void Fix(FastStringBuilder input, FastStringBuilder output, bool f } } - if (LtrTextHolder.Count > 0) - { - for (int j = 0; j < LtrTextHolder.Count; j++) - { - output.Append(LtrTextHolder[LtrTextHolder.Count - 1 - j]); - } - - LtrTextHolder.Clear(); - } + FlushBufferToOutput(LtrTextHolder, output); } } } \ No newline at end of file diff --git a/Assets/RTLTMPro/Scripts/Runtime/RTLSupport.cs b/Assets/RTLTMPro/Scripts/Runtime/RTLSupport.cs index ded8e57..602e92e 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/RTLSupport.cs +++ b/Assets/RTLTMPro/Scripts/Runtime/RTLSupport.cs @@ -1,6 +1,4 @@ -using System.Text; - -// ReSharper disable IdentifierTypo +// ReSharper disable IdentifierTypo // ReSharper disable CommentTypo namespace RTLTMPro @@ -8,10 +6,10 @@ namespace RTLTMPro public static class RTLSupport { public const int DefaultBufferSize = 2048; - + private static FastStringBuilder inputBuilder; private static FastStringBuilder glyphFixerOutput; - + static RTLSupport() { inputBuilder = new FastStringBuilder(DefaultBufferSize); @@ -31,7 +29,7 @@ public static void FixRTL( string input, FastStringBuilder output, bool farsi = true, - bool fixTextTags = true, + bool fixTextTags = true, bool preserveNumbers = false) { inputBuilder.SetValue(input); @@ -39,21 +37,19 @@ public static void FixRTL( TashkeelFixer.RemoveTashkeel(inputBuilder); // The shape of the letters in shapeFixedLetters is fixed according to their position in word. But the flow of the text is not fixed. - GlyphFixer.Fix(inputBuilder, glyphFixerOutput, preserveNumbers, farsi); + GlyphFixer.Fix(inputBuilder, glyphFixerOutput, preserveNumbers, farsi, fixTextTags); //Restore tashkeel to their places. TashkeelFixer.RestoreTashkeel(glyphFixerOutput); // Fix flow of the text and put the result in FinalLetters field LigatureFixer.Fix(glyphFixerOutput, output, farsi, fixTextTags, preserveNumbers); - if (fixTextTags) { RichTextFixer.Fix(output); } - inputBuilder.Clear(); } - + } } \ No newline at end of file diff --git a/Assets/RTLTMPro/Scripts/Runtime/RTLTMPro.asmdef b/Assets/RTLTMPro/Scripts/Runtime/RTLTMPro.asmdef index 8b6a0b6..8f5b99a 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/RTLTMPro.asmdef +++ b/Assets/RTLTMPro/Scripts/Runtime/RTLTMPro.asmdef @@ -3,12 +3,19 @@ "references": [ "Unity.TextMeshPro" ], - "optionalUnityReferences": [], "includePlatforms": [], "excludePlatforms": [], "allowUnsafeCode": false, "overrideReferences": false, "precompiledReferences": [], "autoReferenced": true, - "defineConstraints": [] + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.textmeshpro", + "expression": "2.1.0", + "define": "TMP_VERSION_2_1_0_OR_NEWER" + } + ], + "noEngineReferences": false } \ No newline at end of file diff --git a/Assets/RTLTMPro/Scripts/Runtime/RTLTextMeshPro.cs b/Assets/RTLTMPro/Scripts/Runtime/RTLTextMeshPro.cs index 2f471bc..f34fb02 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/RTLTextMeshPro.cs +++ b/Assets/RTLTMPro/Scripts/Runtime/RTLTextMeshPro.cs @@ -1,7 +1,4 @@ -//#define RTL_OVERRIDE - -using System.Text; -using TMPro; +using TMPro; using UnityEngine; namespace RTLTMPro @@ -10,7 +7,7 @@ namespace RTLTMPro public class RTLTextMeshPro : TextMeshProUGUI { // ReSharper disable once InconsistentNaming -#if RTL_OVERRIDE +#if TMP_VERSION_2_1_0_OR_NEWER public override string text #else public new string text @@ -72,7 +69,7 @@ public bool FixTags } } - protected bool ForceFix + public bool ForceFix { get { return forceFix; } set @@ -114,8 +111,7 @@ public void UpdateText() { isRightToLeftText = false; base.text = originalText; - } - else + } else { isRightToLeftText = true; base.text = GetFixedText(originalText); diff --git a/Assets/RTLTMPro/Scripts/Runtime/RichTextFixer.cs b/Assets/RTLTMPro/Scripts/Runtime/RichTextFixer.cs index f441c72..6e6d992 100644 --- a/Assets/RTLTMPro/Scripts/Runtime/RichTextFixer.cs +++ b/Assets/RTLTMPro/Scripts/Runtime/RichTextFixer.cs @@ -15,10 +15,10 @@ public Tag(int start, int end) End = end; } } - + private static readonly List ClosedTags = new List(64); private static readonly List ClosedTagsHash = new List(64); - + /// /// Fixes rich text tags in input string and returns the result. /// @@ -37,51 +37,50 @@ public static void Fix(FastStringBuilder text) switch (tagType) { case 1: // Opening tag - { - Tag closingTag = default; - - // Search and find the closing tag for this - bool foundClosingTag = false; - for (int j = ClosedTagsHash.Count - 1; j >= 0; j--) { - if (ClosedTagsHash[j] == hashCode) + Tag closingTag = default; + + // Search and find the closing tag for this + bool foundClosingTag = false; + for (int j = ClosedTagsHash.Count - 1; j >= 0; j--) { - closingTag = ClosedTags[j]; - foundClosingTag = true; - ClosedTags.RemoveAt(j); - ClosedTagsHash.RemoveAt(j); - break; + if (ClosedTagsHash[j] == hashCode) + { + closingTag = ClosedTags[j]; + foundClosingTag = true; + ClosedTags.RemoveAt(j); + ClosedTagsHash.RemoveAt(j); + break; + } } - } - if (foundClosingTag) - { - // NOTE: order of execution is important here + if (foundClosingTag) + { + // NOTE: order of execution is important here - int openingTagLength = tagEnd - tagStart; - int closingTagLength = closingTag.End - closingTag.Start; + int openingTagLength = tagEnd - tagStart + 1; + int closingTagLength = closingTag.End - closingTag.Start + 1; - text.Reverse(tagStart, openingTagLength); - text.Reverse(closingTag.Start, closingTagLength); + text.Reverse(tagStart, openingTagLength); + text.Reverse(closingTag.Start, closingTagLength); + } else + { + text.Reverse(tagStart, tagEnd - tagStart + 1); + } + + break; } - else + case 2: // Closing tag { - text.Reverse(tagStart, tagEnd - tagStart); + ClosedTags.Add(new Tag(tagStart, tagEnd)); + ClosedTagsHash.Add(hashCode); + break; } - - break; - } - case 2: // Closing tag - { - ClosedTags.Add(new Tag(tagStart, tagEnd)); - ClosedTagsHash.Add(hashCode); - break; - } case 3: // Self contained tag - { - text.Reverse(tagStart, tagEnd - tagStart); - break; - } + { + text.Reverse(tagStart, tagEnd - tagStart + 1); + break; + } } i = tagEnd; @@ -109,7 +108,7 @@ public static void FindTag( for (int j = i + 1; j < str.Length; j++) { char jChar = str.Get(j); - + if (calculateHashCode) { if (char.IsLetter(jChar)) @@ -119,14 +118,12 @@ public static void FindTag( if (hashCode == 0) { hashCode = jChar.GetHashCode(); - } - else + } else { hashCode = (hashCode * 397) ^ jChar.GetHashCode(); } } - } - else if (hashCode != 0) + } else if (hashCode != 0) { // We have computed the hash code. Now we reached a non letter character. We need to stop calculateHashCode = false; @@ -134,17 +131,17 @@ public static void FindTag( } // Rich text tag cannot contain RTL chars - if (TextUtils.IsRTLCharacter(jChar)) + if (TextUtils.IsRTLCharacter(jChar) || jChar == ' ') { break; } - + if (jChar == '>') { // Check if the tag is closing, opening or self contained tagStart = i; - tagEnd = j + 1; + tagEnd = j; if (str.Get(j - 1) == '/') { diff --git a/Assets/RTLTMPro/Tests.meta b/Assets/RTLTMPro/Tests.meta new file mode 100644 index 0000000..e703066 --- /dev/null +++ b/Assets/RTLTMPro/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06cf2c81e8116fb46b91216de465ea15 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RTLTMPro/Tests/GlyphFixerTests.cs b/Assets/RTLTMPro/Tests/GlyphFixerTests.cs index 1756fc6..41584a6 100644 --- a/Assets/RTLTMPro/Tests/GlyphFixerTests.cs +++ b/Assets/RTLTMPro/Tests/GlyphFixerTests.cs @@ -62,7 +62,7 @@ public void GlyphFixer_ConvertsNumbers_Farsi() var text = GetEnglishNumbers(); var output = new FastStringBuilder(10); - GlyphFixer.Fix(text, output, false, true); + GlyphFixer.Fix(text, output, false, true, false); Debug.Log("Output: " + output); @@ -75,7 +75,7 @@ public void GlyphFixer_ConvertsNumbers_Hindu() var text = GetEnglishNumbers(); var output = new FastStringBuilder(10); - GlyphFixer.Fix(text, output, false, false); + GlyphFixer.Fix(text, output, false, false, false); Debug.Log("Output: " + output); @@ -88,7 +88,7 @@ public void GlyphFixer_PreservesNumbers_WhenPreserveNumberIsTrue() var text = GetEnglishNumbers(); var output = new FastStringBuilder(10); - GlyphFixer.Fix(text, output, true, false); + GlyphFixer.Fix(text, output, true, false, false); Assert.AreEqual(text.ToString(), output.ToString()); } diff --git a/Assets/RTLTMPro/Tests/RichTextFixerTests.cs b/Assets/RTLTMPro/Tests/RichTextFixerTests.cs index 95df959..0a9292d 100644 --- a/Assets/RTLTMPro/Tests/RichTextFixerTests.cs +++ b/Assets/RTLTMPro/Tests/RichTextFixerTests.cs @@ -17,7 +17,7 @@ public void FindTag_FindsSimpleOpeningTag() // Assert Assert.AreEqual(1, type); Assert.AreEqual(5, start); - Assert.AreEqual(14, end); + Assert.AreEqual(13, end); } [Test] @@ -47,7 +47,7 @@ public void FindTag_FindsOpeningTagWithValue() // Assert Assert.AreEqual(1, type); Assert.AreEqual(5, start); - Assert.AreEqual(18, end); + Assert.AreEqual(17, end); } [Test] @@ -59,7 +59,7 @@ public void FindTag_ProducesTheSameHash_ForOpeningTagsWithDifferentValues() // Act RichTextFixer.FindTag(text1, 0, out _, out _, out _, out var hashCode1); - RichTextFixer.FindTag(text1, 0, out _, out _, out _, out var hashCode2); + RichTextFixer.FindTag(text2, 0, out _, out _, out _, out var hashCode2); // Assert Assert.AreEqual(hashCode1, hashCode2); @@ -77,7 +77,7 @@ public void FindTag_FindsSimpleSelfContainedTag() // Assert Assert.AreEqual(3, type); Assert.AreEqual(5, start); - Assert.AreEqual(15, end); + Assert.AreEqual(14, end); } [Test] @@ -92,7 +92,7 @@ public void FindTag_FindsSelfContainedTagWithValue() // Assert Assert.AreEqual(3, type); Assert.AreEqual(5, start); - Assert.AreEqual(19, end); + Assert.AreEqual(18, end); } [Test] @@ -122,7 +122,7 @@ public void FindTag_FindsClosingTag() // Assert Assert.AreEqual(2, type); Assert.AreEqual(5, start); - Assert.AreEqual(15, end); + Assert.AreEqual(14, end); } [Test] diff --git a/Assets/TextMesh Pro.meta b/Assets/TextMesh Pro.meta new file mode 100644 index 0000000..6f792ae --- /dev/null +++ b/Assets/TextMesh Pro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f95414aad47d0d4f88fc982145c6c3d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Documentation.meta b/Assets/TextMesh Pro/Documentation.meta new file mode 100644 index 0000000..ce6db85 --- /dev/null +++ b/Assets/TextMesh Pro/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f725fa0a79cbe514b9a12c635c0b52b5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources.meta b/Assets/TextMesh Pro/Resources.meta new file mode 100644 index 0000000..57042b8 --- /dev/null +++ b/Assets/TextMesh Pro/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52c0b3e45ef069f4289ca24664ca7544 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials.meta b/Assets/TextMesh Pro/Resources/Fonts & Materials.meta new file mode 100644 index 0000000..448e120 --- /dev/null +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1adfb5241fd800d458c5c41bbab6a5ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Shaders.meta b/Assets/TextMesh Pro/Resources/Shaders.meta new file mode 100644 index 0000000..b0d6534 --- /dev/null +++ b/Assets/TextMesh Pro/Resources/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 405ac602708305c43940a88d782da732 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Shaders/Text MeshPro.meta b/Assets/TextMesh Pro/Resources/Shaders/Text MeshPro.meta new file mode 100644 index 0000000..8bd53c9 --- /dev/null +++ b/Assets/TextMesh Pro/Resources/Shaders/Text MeshPro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5c22249e82008240881030156d0fc59 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Sprite Assets.meta b/Assets/TextMesh Pro/Resources/Sprite Assets.meta new file mode 100644 index 0000000..9b99b68 --- /dev/null +++ b/Assets/TextMesh Pro/Resources/Sprite Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f632ceb559ca7984d99a128b5ff48475 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Style Sheets.meta b/Assets/TextMesh Pro/Resources/Style Sheets.meta new file mode 100644 index 0000000..ea4e33b --- /dev/null +++ b/Assets/TextMesh Pro/Resources/Style Sheets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 266db4d84cce64b4dbeb65989c479693 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Sprites.meta b/Assets/TextMesh Pro/Sprites.meta new file mode 100644 index 0000000..3148fa9 --- /dev/null +++ b/Assets/TextMesh Pro/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d64803565285fe6408c49e4d4dfe83e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json index 159cda6..2320b66 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -2,20 +2,19 @@ "dependencies": { "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", - "com.unity.ads": "2.3.1", - "com.unity.analytics": "3.3.2", + "com.unity.ads": "3.5.0", + "com.unity.analytics": "3.3.5", "com.unity.collab-proxy": "1.2.16", "com.unity.ext.nunit": "1.0.0", - "com.unity.ide.rider": "1.1.0", - "com.unity.ide.vscode": "1.1.0", - "com.unity.multiplayer-hlapi": "1.0.2", - "com.unity.package-manager-ui": "2.2.0", - "com.unity.purchasing": "2.0.6", - "com.unity.test-framework": "1.0.13", - "com.unity.textmeshpro": "2.0.1", - "com.unity.timeline": "1.1.0", + "com.unity.ide.rider": "1.1.4", + "com.unity.ide.vscode": "1.2.2", + "com.unity.multiplayer-hlapi": "1.0.6", + "com.unity.purchasing": "2.1.1", + "com.unity.test-framework": "1.1.18", + "com.unity.textmeshpro": "2.1.0", + "com.unity.timeline": "1.2.6", "com.unity.ugui": "1.0.0", - "com.unity.xr.legacyinputhelpers": "2.0.2", + "com.unity.xr.legacyinputhelpers": "2.1.4", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..4049e45 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,374 @@ +{ + "dependencies": { + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.ads": { + "version": "3.5.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.analytics": { + "version": "3.3.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "1.2.16", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.0", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "1.1.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.2", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.multiplayer-hlapi": { + "version": "1.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "nuget.mono-cecil": "0.1.6-preview" + }, + "url": "https://packages.unity.com" + }, + "com.unity.purchasing": { + "version": "2.1.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.18", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "2.1.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.2.6", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.xr.legacyinputhelpers": { + "version": "2.1.4", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "nuget.mono-cecil": { + "version": "0.1.6-preview", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index b967769..3ee4356 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -3,7 +3,7 @@ --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_ExternalVersionControlSupport: Visible Meta Files m_SerializationMode: 2 m_LineEndingsForNewScripts: 2 @@ -16,8 +16,20 @@ EditorSettings: m_EtcTextureFastCompressor: 1 m_EtcTextureNormalCompressor: 2 m_EtcTextureBestCompressor: 4 - m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref m_ProjectGenerationRootNamespace: m_CollabEditorSettings: inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 1 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..9418901 --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + 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: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor:UnityEditor.PackageManager.UI:PackageManagerProjectSettings + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index f18539f..a191481 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2019.2.3f1 -m_EditorVersionWithRevision: 2019.2.3f1 (8e55c27a4621) +m_EditorVersion: 2019.4.14f1 +m_EditorVersionWithRevision: 2019.4.14f1 (4037e52648cd)