Skip to content

Commit 2b4a350

Browse files
Support for UnityUI RectMask2D (#9702)
* Adding UNITY_UI_CLIP_RECT support to the MRTK/Standard shader.
1 parent d26e5fc commit 2b4a350

File tree

3 files changed

+51
-30
lines changed

3 files changed

+51
-30
lines changed

Assets/MRTK/SDK/Features/UX/Prefabs/Slate/SlateUGUI.prefab

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,9 @@ GameObject:
352352
serializedVersion: 6
353353
m_Component:
354354
- component: {fileID: 224017967242958273}
355-
- component: {fileID: 114708886606366759}
356355
- component: {fileID: 222065373125170189}
357356
- component: {fileID: 114854708881193683}
357+
- component: {fileID: 4090038691019577845}
358358
m_Layer: 5
359359
m_Name: Viewport
360360
m_TagString: Untagged
@@ -382,19 +382,6 @@ RectTransform:
382382
m_AnchoredPosition: {x: 0, y: 0}
383383
m_SizeDelta: {x: 0, y: 0}
384384
m_Pivot: {x: 0, y: 1}
385-
--- !u!114 &114708886606366759
386-
MonoBehaviour:
387-
m_ObjectHideFlags: 0
388-
m_CorrespondingSourceObject: {fileID: 0}
389-
m_PrefabInstance: {fileID: 0}
390-
m_PrefabAsset: {fileID: 0}
391-
m_GameObject: {fileID: 1542384694952789}
392-
m_Enabled: 1
393-
m_EditorHideFlags: 0
394-
m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3}
395-
m_Name:
396-
m_EditorClassIdentifier:
397-
m_ShowMaskGraphic: 0
398385
--- !u!222 &222065373125170189
399386
CanvasRenderer:
400387
m_ObjectHideFlags: 0
@@ -430,6 +417,18 @@ MonoBehaviour:
430417
m_FillClockwise: 1
431418
m_FillOrigin: 0
432419
m_UseSpriteMesh: 0
420+
--- !u!114 &4090038691019577845
421+
MonoBehaviour:
422+
m_ObjectHideFlags: 0
423+
m_CorrespondingSourceObject: {fileID: 0}
424+
m_PrefabInstance: {fileID: 0}
425+
m_PrefabAsset: {fileID: 0}
426+
m_GameObject: {fileID: 1542384694952789}
427+
m_Enabled: 1
428+
m_EditorHideFlags: 0
429+
m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3}
430+
m_Name:
431+
m_EditorClassIdentifier:
433432
--- !u!1 &1712204423372907
434433
GameObject:
435434
m_ObjectHideFlags: 0
@@ -2206,9 +2205,9 @@ GameObject:
22062205
serializedVersion: 6
22072206
m_Component:
22082207
- component: {fileID: 6647081080591808399}
2209-
- component: {fileID: 703902783973535641}
22102208
- component: {fileID: 7409808861860865596}
22112209
- component: {fileID: 520160181843908597}
2210+
- component: {fileID: 910422878816264293}
22122211
m_Layer: 5
22132212
m_Name: Viewport
22142213
m_TagString: Untagged
@@ -2236,19 +2235,6 @@ RectTransform:
22362235
m_AnchoredPosition: {x: 0, y: 0}
22372236
m_SizeDelta: {x: -18, y: 0}
22382237
m_Pivot: {x: 0, y: 1}
2239-
--- !u!114 &703902783973535641
2240-
MonoBehaviour:
2241-
m_ObjectHideFlags: 0
2242-
m_CorrespondingSourceObject: {fileID: 0}
2243-
m_PrefabInstance: {fileID: 0}
2244-
m_PrefabAsset: {fileID: 0}
2245-
m_GameObject: {fileID: 2848800613087917502}
2246-
m_Enabled: 1
2247-
m_EditorHideFlags: 0
2248-
m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3}
2249-
m_Name:
2250-
m_EditorClassIdentifier:
2251-
m_ShowMaskGraphic: 0
22522238
--- !u!222 &7409808861860865596
22532239
CanvasRenderer:
22542240
m_ObjectHideFlags: 0
@@ -2284,6 +2270,18 @@ MonoBehaviour:
22842270
m_FillClockwise: 1
22852271
m_FillOrigin: 0
22862272
m_UseSpriteMesh: 0
2273+
--- !u!114 &910422878816264293
2274+
MonoBehaviour:
2275+
m_ObjectHideFlags: 0
2276+
m_CorrespondingSourceObject: {fileID: 0}
2277+
m_PrefabInstance: {fileID: 0}
2278+
m_PrefabAsset: {fileID: 0}
2279+
m_GameObject: {fileID: 2848800613087917502}
2280+
m_Enabled: 1
2281+
m_EditorHideFlags: 0
2282+
m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3}
2283+
m_Name:
2284+
m_EditorClassIdentifier:
22872285
--- !u!1 &3059731576085144653
22882286
GameObject:
22892287
m_ObjectHideFlags: 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ver: 0
1+
ver: 1

Assets/MRTK/StandardAssets/Shaders/MixedRealityStandard.shader

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ Shader "Mixed Reality Toolkit/Standard"
142142

143143
#pragma multi_compile_instancing
144144
#pragma multi_compile _ LIGHTMAP_ON
145+
#pragma multi_compile _ UNITY_UI_CLIP_RECT
145146
#pragma multi_compile _ _HOVER_LIGHT_MEDIUM _HOVER_LIGHT_HIGH
146147
#pragma multi_compile _ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX
147148

@@ -186,6 +187,7 @@ Shader "Mixed Reality Toolkit/Standard"
186187
#define IF(a, b, c) lerp(b, c, step((fixed) (a), 0.0));
187188

188189
#include "UnityCG.cginc"
190+
#include "UnityUI.cginc"
189191
#include "UnityStandardConfig.cginc"
190192
#include "UnityStandardUtils.cginc"
191193
#include "MixedRealityShaderUtils.cginc"
@@ -211,7 +213,13 @@ Shader "Mixed Reality Toolkit/Standard"
211213
#undef _WORLD_POSITION
212214
#endif
213215

214-
#if defined(_ALPHATEST_ON) || defined(_CLIPPING_PRIMITIVE) || defined(_ROUND_CORNERS)
216+
#if defined(UNITY_UI_CLIP_RECT)
217+
#define _LOCAL_POSITION
218+
#else
219+
#undef _LOCAL_POSITION
220+
#endif
221+
222+
#if defined(_ALPHATEST_ON) || defined(UNITY_UI_CLIP_RECT) || defined(_CLIPPING_PRIMITIVE) || defined(_ROUND_CORNERS)
215223
#define _ALPHA_CLIP
216224
#else
217225
#undef _ALPHA_CLIP
@@ -298,6 +306,9 @@ Shader "Mixed Reality Toolkit/Standard"
298306
float3 worldPosition : TEXCOORD2;
299307
#endif
300308
#endif
309+
#if defined(_LOCAL_POSITION)
310+
float3 localPosition : TEXCOORD7;
311+
#endif
301312
#if defined(_SCALE)
302313
float3 scale : TEXCOORD3;
303314
#endif
@@ -345,6 +356,10 @@ Shader "Mixed Reality Toolkit/Standard"
345356
fixed _Cutoff;
346357
#endif
347358

359+
#if defined(UNITY_UI_CLIP_RECT)
360+
float4 _ClipRect;
361+
#endif
362+
348363
fixed _Metallic;
349364
fixed _Smoothness;
350365

@@ -623,6 +638,10 @@ Shader "Mixed Reality Toolkit/Standard"
623638
o.worldPosition.xyz = worldVertexPosition;
624639
#endif
625640

641+
#if defined(_LOCAL_POSITION)
642+
o.localPosition.xyz = vertexPosition;
643+
#endif
644+
626645
#if defined(_NEAR_PLANE_FADE)
627646
float rangeInverse = 1.0 / (_FadeBeginDistance - _FadeCompleteDistance);
628647
#if defined(_NEAR_LIGHT_FADE)
@@ -1029,6 +1048,10 @@ Shader "Mixed Reality Toolkit/Standard"
10291048
pointToLight *= roundCornerClip;
10301049
#endif
10311050

1051+
#ifdef UNITY_UI_CLIP_RECT
1052+
albedo.a *= UnityGet2DClipping(i.localPosition.xy, _ClipRect);
1053+
#endif
1054+
10321055
#if defined(_ALPHA_CLIP)
10331056
#if !defined(_ALPHATEST_ON)
10341057
_Cutoff = 0.5;

0 commit comments

Comments
 (0)