diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
index d0bee86..08403fa 100644
--- a/Assets/Scenes/SampleScene.unity
+++ b/Assets/Scenes/SampleScene.unity
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
- serializedVersion: 9
+ serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
@@ -42,8 +42,8 @@ RenderSettings:
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
- serializedVersion: 12
- m_GIWorkflowMode: 1
+ serializedVersion: 13
+ m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -66,9 +66,6 @@ LightmapSettings:
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
- m_FinalGather: 0
- m_FinalGatherFiltering: 1
- m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
@@ -96,7 +93,7 @@ LightmapSettings:
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
- m_LightingDataAsset: {fileID: 0}
+ m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
@@ -584,20 +581,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -834,20 +834,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 3
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1160,20 +1163,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1299,6 +1305,7 @@ RectTransform:
- {fileID: 1622654344}
- {fileID: 1557863855}
- {fileID: 395535431}
+ - {fileID: 910000010}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -1828,10 +1835,13 @@ MonoBehaviour:
m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
+ m_KeepTextSelectionVisible: 0
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
+ isAlert: 0
m_InputValidator: {fileID: 0}
+ m_ShouldActivateOnSelect: 1
--- !u!114 &551864341
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -2040,20 +2050,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2174,20 +2187,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2316,7 +2332,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!120 &656883574
LineRenderer:
- serializedVersion: 2
+ serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2332,6 +2348,11 @@ LineRenderer:
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2353,9 +2374,11 @@ LineRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_Positions:
- {x: 0, y: 0, z: 0}
- {x: 0, y: 0, z: 1}
@@ -2414,7 +2437,6 @@ LineRenderer:
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
- m_MaskInteraction: 0
m_UseWorldSpace: 0
m_Loop: 0
m_ApplyActiveColorSpace: 1
@@ -2481,15 +2503,14 @@ Light:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_Enabled: 1
- serializedVersion: 10
+ serializedVersion: 12
m_Type: 1
- m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.802082
- m_CookieSize: 10
+ m_CookieSize2D: {x: 10, y: 10}
m_Shadows:
m_Type: 2
m_Resolution: -1
@@ -2533,8 +2554,12 @@ Light:
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
+ m_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
+ m_LightUnit: 1
+ m_LuxAtDistance: 1
+ m_EnableSpotReflector: 1
--- !u!4 &705507995
Transform:
m_ObjectHideFlags: 0
@@ -2702,20 +2727,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2813,6 +2841,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2834,9 +2867,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &735258641
MeshFilter:
@@ -2904,6 +2939,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2925,9 +2965,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &735588180
MeshFilter:
@@ -3421,6 +3463,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -3442,9 +3489,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &894912882
MeshFilter:
@@ -3454,6 +3503,227 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 894912878}
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &910000001
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 910000002}
+ m_Layer: 0
+ m_Name: Views
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &910000002
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000001}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 910000004}
+ - {fileID: 910000006}
+ - {fileID: 910000008}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &910000003
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 910000004}
+ m_Layer: 0
+ m_Name: LiveView
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &910000004
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000003}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 910000002}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &910000005
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 910000006}
+ m_Layer: 0
+ m_Name: InverseKinematicsView
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &910000006
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000005}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 910000002}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &910000007
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 910000008}
+ m_Layer: 0
+ m_Name: ProgrammedMovementsView
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &910000008
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000007}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 910000002}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &910000009
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 910000010}
+ - component: {fileID: 910000011}
+ - component: {fileID: 910000012}
+ - component: {fileID: 910000013}
+ m_Layer: 5
+ m_Name: ViewBanner
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &910000010
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000009}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 431914656}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 48}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &910000011
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000009}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 0}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &910000012
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000009}
+ m_CullTransparentMesh: 1
+--- !u!114 &910000013
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910000009}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1ddfa843fec144e96a3cd493ce9c46ce, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ bannerHeight: 48
+ buttonPadding: 6
+ bannerBackground: {r: 0, g: 0, b: 0, a: 0.95}
+ buttonDefault: {r: 0.35, g: 0.35, b: 0.4, a: 1}
+ buttonSelected: {r: 0.990566, g: 0.990566, b: 0.990566, a: 1}
+ buttonTextColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!1001 &926406104
PrefabInstance:
m_ObjectHideFlags: 0
@@ -4138,20 +4408,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -4272,20 +4545,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -4642,20 +4918,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -4770,12 +5049,15 @@ MonoBehaviour:
m_ItemText: {fileID: 1088078804}
m_ItemImage: {fileID: 0}
m_Value: 0
+ m_MultiSelect: 0
m_Options:
m_Options:
- m_Text: Forwards
m_Image: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_Text: Backwards
m_Image: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -5102,20 +5384,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -5232,6 +5517,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5253,9 +5543,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1412872678
MeshFilter:
@@ -5337,6 +5629,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5358,9 +5655,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1423640368
MeshFilter:
@@ -5735,20 +6034,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -6166,6 +6468,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -6187,9 +6494,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1598454754
MeshFilter:
@@ -6886,20 +7195,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 00000000
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -7399,6 +7711,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -7420,9 +7737,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!4 &1015820725213645132
Transform:
@@ -7456,6 +7775,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -7477,9 +7801,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!4 &4703083530937136138
Transform:
@@ -7521,6 +7847,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -7542,9 +7873,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &5850850002678460359
GameObject:
@@ -7683,6 +8016,7 @@ BoxCollider:
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
+ - {fileID: 910000002}
- {fileID: 963194228}
- {fileID: 705507995}
- {fileID: 516716338}
diff --git a/Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs b/Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs
index e41fbfa..e3536e4 100755
--- a/Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs
+++ b/Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs
@@ -1,4 +1,4 @@
-using UnityEngine;
+using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using System.Collections;
@@ -490,15 +490,20 @@ namespace TMPro.Examples
dst_colors[vertexIndex + 3] = src_colors[vertexIndex + 3];
// Restore UV0S
- // UVS0
+ // UVS0 (Vector4[] in Unity 2022.3+ TMP, Vector2[] in older)
+#if UNITY_2022_3_OR_NEWER
+ Vector4[] src_uv0s = m_cachedMeshInfoVertexData[materialIndex].uvs0;
+ Vector4[] dst_uv0s = m_TextMeshPro.textInfo.meshInfo[materialIndex].uvs0;
+#else
Vector2[] src_uv0s = m_cachedMeshInfoVertexData[materialIndex].uvs0;
Vector2[] dst_uv0s = m_TextMeshPro.textInfo.meshInfo[materialIndex].uvs0;
+#endif
dst_uv0s[vertexIndex + 0] = src_uv0s[vertexIndex + 0];
dst_uv0s[vertexIndex + 1] = src_uv0s[vertexIndex + 1];
dst_uv0s[vertexIndex + 2] = src_uv0s[vertexIndex + 2];
dst_uv0s[vertexIndex + 3] = src_uv0s[vertexIndex + 3];
- // UVS2
+ // UVS2 (remains Vector2[] in current TMP versions)
Vector2[] src_uv2s = m_cachedMeshInfoVertexData[materialIndex].uvs2;
Vector2[] dst_uv2s = m_TextMeshPro.textInfo.meshInfo[materialIndex].uvs2;
dst_uv2s[vertexIndex + 0] = src_uv2s[vertexIndex + 0];
diff --git a/Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs b/Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs
index c4973fb..0663bcc 100755
--- a/Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs
+++ b/Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs
@@ -1,4 +1,4 @@
-using UnityEngine;
+using UnityEngine;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
@@ -150,9 +150,13 @@ namespace TMPro.Examples
destinationVertices[vertexIndex + 3] += offset;
// Restore Source UVS which have been modified by the sorting
+#if UNITY_2022_3_OR_NEWER
+ Vector4[] sourceUVs0 = cachedMeshInfoVertexData[materialIndex].uvs0;
+ Vector4[] destinationUVs0 = textInfo.meshInfo[materialIndex].uvs0;
+#else
Vector2[] sourceUVs0 = cachedMeshInfoVertexData[materialIndex].uvs0;
Vector2[] destinationUVs0 = textInfo.meshInfo[materialIndex].uvs0;
-
+#endif
destinationUVs0[vertexIndex + 0] = sourceUVs0[vertexIndex + 0];
destinationUVs0[vertexIndex + 1] = sourceUVs0[vertexIndex + 1];
destinationUVs0[vertexIndex + 2] = sourceUVs0[vertexIndex + 2];
@@ -178,7 +182,15 @@ namespace TMPro.Examples
// Updated modified vertex attributes
textInfo.meshInfo[i].mesh.vertices = textInfo.meshInfo[i].vertices;
- textInfo.meshInfo[i].mesh.uv = textInfo.meshInfo[i].uvs0;
+#if UNITY_2022_3_OR_NEWER
+ textInfo.meshInfo[i].mesh.SetUVs(0, textInfo.meshInfo[i].uvs0);
+#else
+ Vector2[] uvs0 = textInfo.meshInfo[i].uvs0;
+ Vector2[] uv2 = new Vector2[uvs0.Length];
+ for (int j = 0; j < uvs0.Length; j++)
+ uv2[j] = uvs0[j];
+ textInfo.meshInfo[i].mesh.uv = uv2;
+#endif
textInfo.meshInfo[i].mesh.colors32 = textInfo.meshInfo[i].colors32;
m_TextComponent.UpdateGeometry(textInfo.meshInfo[i].mesh, i);
diff --git a/Assets/ViewBannerUI.cs b/Assets/ViewBannerUI.cs
new file mode 100644
index 0000000..80e3e46
--- /dev/null
+++ b/Assets/ViewBannerUI.cs
@@ -0,0 +1,207 @@
+using UnityEngine;
+using UnityEngine.UI;
+using TMPro;
+
+///
+/// Top banner with three buttons (1=Live View, 2=Inverse Kinematics, 3=Programmed Movements).
+/// Each button enables the corresponding view GameObject and disables the other two.
+/// View-specific logic should be attached under those GameObjects; when disabled, it is suspended.
+///
+public class ViewBannerUI : MonoBehaviour
+{
+ private const string ViewsParentName = "Views";
+ private const string LiveViewName = "LiveView";
+ private const string InverseKinematicsViewName = "InverseKinematicsView";
+ private const string ProgrammedMovementsViewName = "ProgrammedMovementsView";
+
+ [Header("Layout")]
+ [SerializeField] private float bannerHeight = 48f;
+ [SerializeField] private float buttonPadding = 6f;
+
+ [Header("Colors")]
+ [SerializeField] private Color bannerBackground = Color.black;
+ [SerializeField] private Color buttonDefault = Color.white;
+ [SerializeField] private Color buttonSelected = Color.white;
+ [SerializeField] private Color buttonTextColor = Color.black;
+
+ private GameObject _liveViewRoot;
+ private GameObject _inverseKinematicsViewRoot;
+ private GameObject _programmedMovementsViewRoot;
+ private RectTransform _bannerRoot;
+ private Image[] _buttonImages = new Image[3];
+ // Labels without "View": Live, Inverse Kinematics, Programmed Movements
+ private static readonly string[] Labels = { "Live", "Inverse Kinematics", "Programmed Movements" };
+
+ private void Awake()
+ {
+ if (!ResolveViewRoots())
+ return;
+
+ // Use this GameObject as the banner (must be under Canvas with RectTransform + Image).
+ _bannerRoot = GetComponent();
+ if (_bannerRoot == null)
+ {
+ Debug.LogError("[ViewBannerUI] ViewBanner must have a RectTransform (e.g. under Canvas).");
+ return;
+ }
+
+ var bannerImage = GetComponent();
+ if (bannerImage != null)
+ bannerImage.color = new Color(0f, 0f, 0f, 1f); // solid black, full opacity
+
+ // Default to Live View on startup.
+ SetActiveView(ViewMode.LiveView);
+
+ for (int i = 0; i < 3; i++)
+ {
+ ViewMode mode = (ViewMode)i;
+ _buttonImages[i] = CreateViewButton(_bannerRoot, i, Labels[i], () => OnViewButtonClicked(mode));
+ }
+ RefreshButtonVisuals();
+ }
+
+ ///
+ /// Resolves the three view root GameObjects that must already exist in the scene hierarchy:
+ /// Views/LiveView, Views/InverseKinematicsView, Views/ProgrammedMovementsView.
+ /// Returns false and logs a clear error if anything is missing.
+ ///
+ private bool ResolveViewRoots()
+ {
+ Transform viewsParent = GameObject.Find(ViewsParentName)?.transform;
+ if (viewsParent == null)
+ {
+ Debug.LogError(
+ $"[ViewBannerUI] Missing '{ViewsParentName}' GameObject. " +
+ $"Please create it in the scene with children '{LiveViewName}', '{InverseKinematicsViewName}', '{ProgrammedMovementsViewName}'."
+ );
+ return false;
+ }
+
+ _liveViewRoot = viewsParent.Find(LiveViewName)?.gameObject;
+ _inverseKinematicsViewRoot = viewsParent.Find(InverseKinematicsViewName)?.gameObject;
+ _programmedMovementsViewRoot = viewsParent.Find(ProgrammedMovementsViewName)?.gameObject;
+
+ if (_liveViewRoot == null || _inverseKinematicsViewRoot == null || _programmedMovementsViewRoot == null)
+ {
+ Debug.LogError(
+ $"[ViewBannerUI] Missing one or more view roots under '{ViewsParentName}'. " +
+ $"Expected children named '{LiveViewName}', '{InverseKinematicsViewName}', '{ProgrammedMovementsViewName}'."
+ );
+ return false;
+ }
+
+ return true;
+ }
+
+ private void OnViewButtonClicked(ViewMode mode)
+ {
+ SetActiveView(mode);
+ RefreshButtonVisuals();
+ }
+
+ ///
+ /// Enables the view GameObject for the given mode and disables the other two.
+ ///
+ public void SetActiveView(ViewMode mode)
+ {
+ _liveViewRoot.SetActive(mode == ViewMode.LiveView);
+ _inverseKinematicsViewRoot.SetActive(mode == ViewMode.InverseKinematics);
+ _programmedMovementsViewRoot.SetActive(mode == ViewMode.ProgrammedMovements);
+ }
+
+ private void RefreshButtonVisuals()
+ {
+ bool liveActive = _liveViewRoot != null && _liveViewRoot.activeSelf;
+ bool ikActive = _inverseKinematicsViewRoot != null && _inverseKinematicsViewRoot.activeSelf;
+ bool pmActive = _programmedMovementsViewRoot != null && _programmedMovementsViewRoot.activeSelf;
+
+ if (_buttonImages[0] != null) _buttonImages[0].color = liveActive ? buttonSelected : buttonDefault;
+ if (_buttonImages[1] != null) _buttonImages[1].color = ikActive ? buttonSelected : buttonDefault;
+ if (_buttonImages[2] != null) _buttonImages[2].color = pmActive ? buttonSelected : buttonDefault;
+ }
+
+ private Image CreateViewButton(RectTransform parent, int index, string label, UnityEngine.Events.UnityAction onClick)
+ {
+ var go = new GameObject($"ViewButton_{label}");
+ go.transform.SetParent(parent, false);
+
+ var rect = go.AddComponent();
+ // Buttons at 1/6 width each, centered as a group (1/4 margin each side)
+ float sixth = 1f / 6f;
+ float startX = 0.25f; // left margin so block is centered
+ rect.anchorMin = new Vector2(startX + index * sixth, 0f);
+ rect.anchorMax = new Vector2(startX + (index + 1) * sixth, 1f);
+ rect.pivot = new Vector2(0.5f, 0.5f);
+ rect.anchoredPosition = Vector2.zero;
+ rect.sizeDelta = Vector2.zero;
+ rect.offsetMin = new Vector2(buttonPadding, buttonPadding);
+ rect.offsetMax = new Vector2(-buttonPadding, -buttonPadding);
+
+ var image = go.AddComponent();
+ image.color = buttonDefault;
+ image.raycastTarget = true;
+ image.sprite = CreateRoundedRectSprite();
+ image.type = Image.Type.Simple;
+
+ var button = go.AddComponent