update 0.5.8
This commit is contained in:
@@ -0,0 +1,326 @@
|
||||
# XericUnityAnalyzer 规则文档
|
||||
|
||||
## 所有诊断规则一览
|
||||
|
||||
本文档列出 `com.lrss3.deconstruction` 包中 `XericUnityAnalyzer` Roslyn 分析器的所有诊断规则,
|
||||
涵盖 MacroObject(Unity 层级/组件操作)和 MacroString(TextBlockBuilder 富文本)的优化建议。
|
||||
|
||||
---
|
||||
|
||||
### XRX0001 — 重复访问 Transform.parent 属性
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 对 Transform 对象的 `.parent` 属性进行重复链式访问(直接链式、变量中转、赋值链)。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.parent.parent;
|
||||
Transform p = transform.parent;
|
||||
p.parent; // ← 这里报警
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetParents()` 扩展方法,返回 `IEnumerable<Transform>`。
|
||||
|
||||
---
|
||||
|
||||
### XRX0002 — 重复调用 GetParents()
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Performance |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在同一方法中对同一对象调用 `GetParents()` 超过 1 次。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.GetParents();
|
||||
transform.GetParents(); // ← 第二次调用报警
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetParentsSafety()` 扩展方法,返回 `IList<Transform>` 可复用。
|
||||
|
||||
---
|
||||
|
||||
### XRX0003 — 重复调用 GetChild()
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Performance |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在同一方法中对同一对象调用 `Transform.GetChild()` 超过 1 次。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.GetChild(0);
|
||||
transform.GetChild(1); // ← 第二次调用报警
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetChildren()` 扩展方法,一次性获取所有子节点。
|
||||
|
||||
---
|
||||
|
||||
### XRX0004 — for 循环 + GetChild 遍历子节点
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 使用 `for (int i = 0; i < xxx.childCount; i++)` 配合 `GetChild(i)` 遍历子节点。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
for (int i = 0; i < transform.childCount; i++)
|
||||
{
|
||||
transform.GetChild(i); // ← 建议替换为 foreach
|
||||
}
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetChildren()` 扩展方法,配合 `foreach` 更简洁。
|
||||
|
||||
---
|
||||
|
||||
### XRX0005 — 重复调用 GetChildren()
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Performance |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在同一方法中对同一对象调用 `GetChildren()` 超过 1 次。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.GetChildren();
|
||||
transform.GetChildren(); // ← 第二次调用报警
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetChildrenSafety()` 扩展方法,返回 `IList<Transform>` 可复用。
|
||||
|
||||
---
|
||||
|
||||
### XRX0006 — GetChildren 后提取 gameObject
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 对 `GetChildren()` 结果使用 `.Select(x => x.gameObject)` 或 LINQ 查询提取 gameObject。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.GetChildren().Select(c => c.gameObject);
|
||||
// 或
|
||||
from c in transform.GetChildren() select c.gameObject;
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetChildrenGameObject()` 扩展方法,直接返回 `IEnumerable<GameObject>`。
|
||||
|
||||
---
|
||||
|
||||
### XRX0007 — 嵌套遍历子节点层级
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 嵌套调用 `GetChildren()` 或嵌套使用 for + GetChild 遍历多层子节点。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
foreach (var child in transform.GetChildren())
|
||||
{
|
||||
foreach (var grandchild in child.GetChildren()) // ← 嵌套报警
|
||||
{
|
||||
// ...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetChildrenBFS()` 扩展方法,BFS 一步到位返回所有层级子节点。
|
||||
|
||||
---
|
||||
|
||||
### XRX0008 — 在 parent 和 GetChild 之间跳跃访问
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在同一方法中对同一对象同时访问 `.parent` 属性和调用 `GetChild()` 方法。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
var p = transform.parent; // ← 访问父级
|
||||
var c = transform.GetChild(0); // ← 访问子级
|
||||
// 可能在寻找兄弟节点
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetBrother()` 扩展方法,返回所有兄弟节点。
|
||||
|
||||
---
|
||||
|
||||
### XRX0009 — GetComponent 判空后 AddComponent
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 先调用 `GetComponent<T>()`,判空后再调用 `AddComponent<T>()` 的"获取或添加"模式。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
var comp = obj.GetComponent<Image>();
|
||||
if (comp == null)
|
||||
comp = obj.AddComponent<Image>();
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.GetComponentAnyway<T>()` 扩展方法,一步完成获取或添加。
|
||||
|
||||
---
|
||||
|
||||
### XRX0010 — 对枚举器逐项 GetComponent
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在 `.Select()` / `foreach` / `for` 循环中对成员逐项调用 `GetComponent`。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
transform.GetChildren().Select(c => c.GetComponent<Image>());
|
||||
// 或
|
||||
foreach (var child in transform.GetChildren())
|
||||
child.GetComponent<Image>(); // ← 逐项报警
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.IEnumerable.GetComponent<T>()` 扩展方法,针对枚举器直接提取组件。
|
||||
|
||||
---
|
||||
|
||||
### XRX0011 — 循环中查找特定组件后跳出
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 在循环中逐项 GetComponent 并在找到后判空 break 的"搜索组件"模式。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
Image found = null;
|
||||
foreach (var child in transform.GetChildren())
|
||||
{
|
||||
found = child.GetComponent<Image>();
|
||||
if (found != null) break; // ← 搜索模式报警
|
||||
}
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.IEnumerable.GetComponent<T>(out T comp)` 扩展方法,一次完成搜索。
|
||||
|
||||
---
|
||||
|
||||
### XRX0012 — 通过名称查找返回对象
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 遍历子节点并比较 `.name` 来查找特定名称的对象(foreach + name == "xxx" + return)。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
foreach (var child in transform.GetChildren())
|
||||
{
|
||||
if (child.name == "Target") // ← 名称比较
|
||||
return child; // ← 找到返回
|
||||
}
|
||||
// 或 LINQ:
|
||||
transform.GetChildren().FirstOrDefault(c => c.name == "Target");
|
||||
```
|
||||
|
||||
**建议方案:** `MacroObject.FindFamilyMember()` / `FindFamilyMemberExact()` / `FindFamilyMemberFuzzy()` 扩展方法。
|
||||
|
||||
---
|
||||
|
||||
### XRX0101 — 富文本字符串字面量
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| 分类 | Usage |
|
||||
| 严重性 | Warning |
|
||||
|
||||
**触发条件:** 检测到字符串字面量中包含类似 XML 的 Unity 富文本标签(如 `<b>`, `<color=...>`, `<line-height=...>` 等)。
|
||||
|
||||
**示例:**
|
||||
```csharp
|
||||
// 触发警告
|
||||
var text = "<b>abc</b>";
|
||||
```
|
||||
|
||||
**建议方案:** 使用 **TextBlockBuilder 包裹器语法** 或 **BlockUtilKit 框架语法** 进行类型安全构建:
|
||||
|
||||
<!-- 代码修复 1: TextBlockBuilder 语法 -->
|
||||
```csharp
|
||||
// 优化为 TextBlockBuilder 语法
|
||||
new TextBlockBuilder()
|
||||
{
|
||||
new BBlock("abc")
|
||||
}
|
||||
```
|
||||
|
||||
<!-- 代码修复 2: 框架语法 -->
|
||||
```csharp
|
||||
// 优化为框架语法(配合 using static BlockUtilKit)
|
||||
Pure(
|
||||
B(Label("abc"))
|
||||
).BuildBlockByAgentOnce()
|
||||
```
|
||||
|
||||
**注意:** 此规则提供两个 CodeFix 选项——"转换为 TextBlockBuilder 语法"和"转换为框架语法",可通过 IDE 的自动修复功能直接应用。
|
||||
|
||||
---
|
||||
|
||||
## 规则索引
|
||||
|
||||
| ID | 规则标题 | 文件 |
|
||||
|----|---------|------|
|
||||
| XRX0001 | 重复访问 parent 属性 | ObjectRelation |
|
||||
| XRX0002 | 重复调用 GetParents() | ObjectRelation |
|
||||
| XRX0003 | 重复调用 GetChild() | ObjectRelation |
|
||||
| XRX0004 | for 循环 + GetChild 遍历 | ObjectRelation |
|
||||
| XRX0005 | 重复调用 GetChildren() | ObjectRelation |
|
||||
| XRX0006 | GetChildren + Select gameObject | ObjectRelation |
|
||||
| XRX0007 | 嵌套遍历子节点层级 | ObjectRelation |
|
||||
| XRX0008 | parent 和 GetChild 跳跃访问 | ObjectRelation |
|
||||
| XRX0009 | GetComponent + AddComponent | ComponentSearch |
|
||||
| XRX0010 | 枚举器逐项 GetComponent | ComponentSearch |
|
||||
| XRX0011 | 循环查找特定组件 | ComponentSearch |
|
||||
| XRX0012 | 名称查找返回对象 | FamilyNaming |
|
||||
| XRX0101 | 富文本字符串字面量 | RichTextDetection |
|
||||
Binary file not shown.
@@ -0,0 +1,292 @@
|
||||
// Made with Amplify Shader Editor v1.9.9.1
|
||||
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||||
Shader "XUIBasic"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
|
||||
_Color ("Tint", Color) = (1,1,1,1)
|
||||
|
||||
_StencilComp ("Stencil Comparison", Float) = 8
|
||||
_Stencil ("Stencil ID", Float) = 0
|
||||
_StencilOp ("Stencil Operation", Float) = 0
|
||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||
|
||||
_ColorMask ("Color Mask", Float) = 15
|
||||
|
||||
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
|
||||
|
||||
_CoordTransform( "CoordTransform", Vector ) = ( 1, 1, 0, 0 )
|
||||
_CoordCenterv2( "CoordCenter(v2)", Vector ) = ( 0.5, 0.5, 0, 0 )
|
||||
_CoordRotateAngle( "CoordRotateAngle", Float ) = 0
|
||||
[KeywordEnum( Gradient,Polygon )] _ElementType( "Element Type", Float ) = 0
|
||||
[KeywordEnum( Linear,Sin,Cos,Exponential )] _GradientType( "GradientType", Float ) = 0
|
||||
_ExpNumber( "ExpNumber", Float ) = 1
|
||||
_ColorA( "Color A", Color ) = ( 0, 1, 0.07612991, 1 )
|
||||
_ColorB( "Color B", Color ) = ( 1, 0, 0, 1 )
|
||||
_PolygonSides( "PolygonSides", Float ) = 5
|
||||
_PolygonSizev2( "PolygonSize(v2)", Vector ) = ( 0.5, 0.5, 0, 0 )
|
||||
[KeywordEnum( Normal,Mode,ABS )] _CoordRange( "CoordRange", Float ) = 0
|
||||
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
LOD 0
|
||||
|
||||
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
|
||||
|
||||
Stencil
|
||||
{
|
||||
Ref [_Stencil]
|
||||
ReadMask [_StencilReadMask]
|
||||
WriteMask [_StencilWriteMask]
|
||||
Comp [_StencilComp]
|
||||
Pass [_StencilOp]
|
||||
}
|
||||
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ZTest [unity_GUIZTestMode]
|
||||
Blend One OneMinusSrcAlpha
|
||||
ColorMask [_ColorMask]
|
||||
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "Default"
|
||||
CGPROGRAM
|
||||
#define ASE_VERSION 19901
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma target 3.5
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityUI.cginc"
|
||||
|
||||
#pragma multi_compile_local _ UNITY_UI_CLIP_RECT
|
||||
#pragma multi_compile_local _ UNITY_UI_ALPHACLIP
|
||||
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES0
|
||||
#define ASE_NEEDS_FRAG_TEXTURE_COORDINATES0
|
||||
#pragma shader_feature_local _ELEMENTTYPE_GRADIENT _ELEMENTTYPE_POLYGON
|
||||
#pragma shader_feature_local _GRADIENTTYPE_LINEAR _GRADIENTTYPE_SIN _GRADIENTTYPE_COS _GRADIENTTYPE_EXPONENTIAL
|
||||
#pragma shader_feature_local _COORDRANGE_NORMAL _COORDRANGE_MODE _COORDRANGE_ABS
|
||||
|
||||
|
||||
struct appdata_t
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 vertex : SV_POSITION;
|
||||
fixed4 color : COLOR;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
float4 worldPosition : TEXCOORD1;
|
||||
float4 mask : TEXCOORD2;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
fixed4 _Color;
|
||||
fixed4 _TextureSampleAdd;
|
||||
float4 _ClipRect;
|
||||
float4 _MainTex_ST;
|
||||
float _UIMaskSoftnessX;
|
||||
float _UIMaskSoftnessY;
|
||||
|
||||
uniform float4 _ColorA;
|
||||
uniform float4 _ColorB;
|
||||
uniform float4 _CoordTransform;
|
||||
uniform float2 _CoordCenterv2;
|
||||
uniform float _CoordRotateAngle;
|
||||
uniform float _ExpNumber;
|
||||
uniform float2 _PolygonSizev2;
|
||||
uniform float _PolygonSides;
|
||||
|
||||
|
||||
v2f vert(appdata_t v )
|
||||
{
|
||||
v2f OUT;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
|
||||
|
||||
|
||||
|
||||
v.vertex.xyz += float3( 0, 0, 0 ) ;
|
||||
|
||||
float4 vPosition = UnityObjectToClipPos(v.vertex);
|
||||
OUT.worldPosition = v.vertex;
|
||||
OUT.vertex = vPosition;
|
||||
|
||||
float2 pixelSize = vPosition.w;
|
||||
pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||
|
||||
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||
float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
|
||||
OUT.texcoord = v.texcoord;
|
||||
OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
|
||||
|
||||
OUT.color = v.color * _Color;
|
||||
return OUT;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f IN ) : SV_Target
|
||||
{
|
||||
//Round up the alpha color coming from the interpolator (to 1.0/256.0 steps)
|
||||
//The incoming alpha could have numerical instability, which makes it very sensible to
|
||||
//HDR color transparency blend, when it blends with the world's texture.
|
||||
const half alphaPrecision = half(0xff);
|
||||
const half invAlphaPrecision = half(1.0/alphaPrecision);
|
||||
IN.color.a = round(IN.color.a * alphaPrecision)*invAlphaPrecision;
|
||||
|
||||
float2 texCoord1 = IN.texcoord.xy * (_CoordTransform).xy + (_CoordTransform).zw;
|
||||
float cos2 = cos( ( ( _CoordRotateAngle * 2.0 ) * UNITY_PI ) );
|
||||
float sin2 = sin( ( ( _CoordRotateAngle * 2.0 ) * UNITY_PI ) );
|
||||
float2 rotator2 = mul( texCoord1 - _CoordCenterv2 , float2x2( cos2 , -sin2 , sin2 , cos2 )) + _CoordCenterv2;
|
||||
float2 temp_output_2_0_g3 = rotator2;
|
||||
float2 temp_output_3_0_g3 = float2( 1,1 );
|
||||
float2 temp_output_1_0_g3 = ( temp_output_2_0_g3 % temp_output_3_0_g3 );
|
||||
float2 temp_output_6_0_g3 = saturate( sign( temp_output_2_0_g3 ) );
|
||||
float2 lerpResult4_g3 = lerp( ( ( temp_output_1_0_g3 + temp_output_3_0_g3 ) % temp_output_3_0_g3 ) , temp_output_1_0_g3 , temp_output_6_0_g3);
|
||||
#if defined( _COORDRANGE_NORMAL )
|
||||
float2 staticSwitch26 = rotator2;
|
||||
#elif defined( _COORDRANGE_MODE )
|
||||
float2 staticSwitch26 = lerpResult4_g3;
|
||||
#elif defined( _COORDRANGE_ABS )
|
||||
float2 staticSwitch26 = abs( rotator2 );
|
||||
#else
|
||||
float2 staticSwitch26 = rotator2;
|
||||
#endif
|
||||
float temp_output_18_0 = (staticSwitch26).x;
|
||||
#if defined( _GRADIENTTYPE_LINEAR )
|
||||
float staticSwitch13 = temp_output_18_0;
|
||||
#elif defined( _GRADIENTTYPE_SIN )
|
||||
float staticSwitch13 = sin( temp_output_18_0 );
|
||||
#elif defined( _GRADIENTTYPE_COS )
|
||||
float staticSwitch13 = cos( temp_output_18_0 );
|
||||
#elif defined( _GRADIENTTYPE_EXPONENTIAL )
|
||||
float staticSwitch13 = pow( temp_output_18_0 , _ExpNumber );
|
||||
#else
|
||||
float staticSwitch13 = temp_output_18_0;
|
||||
#endif
|
||||
float temp_output_2_0_g4 = _PolygonSides;
|
||||
float cosSides12_g4 = cos( ( UNITY_PI / temp_output_2_0_g4 ) );
|
||||
float2 appendResult18_g4 = (float2(( _PolygonSizev2.x * cosSides12_g4 ) , ( _PolygonSizev2.y * cosSides12_g4 )));
|
||||
float2 break23_g4 = ( (staticSwitch26*2.0 + -1.0) / appendResult18_g4 );
|
||||
float polarCoords30_g4 = atan2( break23_g4.x , -break23_g4.y );
|
||||
float temp_output_52_0_g4 = ( 6.28318548202515 / temp_output_2_0_g4 );
|
||||
float2 appendResult25_g4 = (float2(break23_g4.x , -break23_g4.y));
|
||||
float2 finalUVs29_g4 = appendResult25_g4;
|
||||
float temp_output_44_0_g4 = ( cos( ( ( floor( ( 0.5 + ( polarCoords30_g4 / temp_output_52_0_g4 ) ) ) * temp_output_52_0_g4 ) - polarCoords30_g4 ) ) * length( finalUVs29_g4 ) );
|
||||
#if defined( _ELEMENTTYPE_GRADIENT )
|
||||
float staticSwitch11 = staticSwitch13;
|
||||
#elif defined( _ELEMENTTYPE_POLYGON )
|
||||
float staticSwitch11 = saturate( ( ( 1.0 - temp_output_44_0_g4 ) / fwidth( temp_output_44_0_g4 ) ) );
|
||||
#else
|
||||
float staticSwitch11 = staticSwitch13;
|
||||
#endif
|
||||
float4 lerpResult14 = lerp( _ColorA , _ColorB , staticSwitch11);
|
||||
float4 appendResult7 = (float4(lerpResult14));
|
||||
|
||||
|
||||
half4 color = appendResult7;
|
||||
|
||||
#ifdef UNITY_UI_CLIP_RECT
|
||||
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
|
||||
color.a *= m.x * m.y;
|
||||
#endif
|
||||
|
||||
#ifdef UNITY_UI_ALPHACLIP
|
||||
clip (color.a - 0.001);
|
||||
#endif
|
||||
|
||||
color.rgb *= color.a;
|
||||
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
CustomEditor "AmplifyShaderEditor.MaterialInspector"
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
/*ASEBEGIN
|
||||
Version=19901
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;5;-1408,256;Inherit;False;Property;_CoordRotateAngle;CoordRotateAngle;2;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.Vector4Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;28;-1920,0;Inherit;False;Property;_CoordTransform;CoordTransform;0;0;Create;True;0;0;0;False;0;False;1,1,0,0;1,1,0,0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;9;-1184,256;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;2;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;30;-1664,96;Inherit;False;False;False;True;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;29;-1664,16;Inherit;False;True;True;False;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;1;-1408,0;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.PiNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;8;-1024,256;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.Vector2Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;4;-1408,128;Inherit;False;Property;_CoordCenterv2;CoordCenter(v2);1;0;Create;True;0;0;0;False;0;False;0.5,0.5;0.5,0.5;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
|
||||
Node;AmplifyShaderEditor.Vector2Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;34;-768,-128;Inherit;False;Constant;_Vector0;Vector 0;11;0;Create;True;0;0;0;False;0;False;1,1;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
|
||||
Node;AmplifyShaderEditor.RotatorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;2;-896,0;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.FunctionNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;32;-512,0;Inherit;False;PMod;-1;;3;f21979a9080cb044ca372458f5a37d88;1,33,0;2;2;FLOAT2;0,0;False;3;FLOAT2;1,1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.AbsOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;36;-480,128;Inherit;False;1;0;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.StaticSwitch, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;26;-256,-128;Inherit;False;Property;_CoordRange;CoordRange;10;0;Create;True;0;0;0;False;0;False;0;0;0;True;;KeywordEnum;3;Normal;Mode;ABS;Create;True;True;All;9;1;FLOAT2;0,0;False;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT2;0,0;False;6;FLOAT2;0,0;False;7;FLOAT2;0,0;False;8;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;18;0,-128;Inherit;False;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;23;0,96;Inherit;False;Property;_ExpNumber;ExpNumber;5;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SinOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;19;256,-64;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CosOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;20;256,0;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.PowerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;22;256,64;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.Vector2Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;25;0,384;Inherit;False;Property;_PolygonSizev2;PolygonSize(v2);9;0;Create;True;0;0;0;False;0;False;0.5,0.5;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;24;0,288;Inherit;False;Property;_PolygonSides;PolygonSides;8;0;Create;True;0;0;0;False;0;False;5;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.FunctionNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;10;256,256;Inherit;False;Polygon;-1;;4;6906ef7087298c94c853d6753e182169;0;4;1;FLOAT2;0,0;False;2;FLOAT;5;False;3;FLOAT;0.5;False;4;FLOAT;0.5;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.StaticSwitch, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;13;512,-128;Inherit;False;Property;_GradientType;GradientType;4;0;Create;True;0;0;0;False;0;False;0;0;0;True;;KeywordEnum;4;Linear;Sin;Cos;Exponential;Create;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.StaticSwitch, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;11;896,-128;Inherit;False;Property;_ElementType;Element Type;3;0;Create;True;0;0;0;False;0;False;0;0;0;True;;KeywordEnum;2;Gradient;Polygon;Create;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;15;896,-512;Inherit;False;Property;_ColorA;Color A;6;0;Create;True;0;0;0;False;0;False;0,1,0.07612991,1;0,1,0.07612991,1;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.ColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;16;896,-320;Inherit;False;Property;_ColorB;Color B;7;0;Create;True;0;0;0;False;0;False;1,0,0,1;1,0,0,1;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;14;1152,-384;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;7;1312,-384;Inherit;False;FLOAT4;4;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;1;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;0;1472,-384;Float;False;True;-1;3;AmplifyShaderEditor.MaterialInspector;0;3;XUIBasic;5056123faa0c79b47ab6ad7e8bf059a4;True;Default;0;0;Default;2;False;True;3;1;False;;10;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;True;True;True;True;True;0;True;_ColorMask;False;False;False;False;False;False;False;True;True;0;True;_Stencil;255;True;_StencilReadMask;255;True;_StencilWriteMask;0;True;_StencilComp;0;True;_StencilOp;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;0;True;unity_GUIZTestMode;False;True;5;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;CanUseSpriteAtlas=True;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;False;0;;0;0;Standard;0;0;1;True;False;;False;0
|
||||
WireConnection;9;0;5;0
|
||||
WireConnection;30;0;28;0
|
||||
WireConnection;29;0;28;0
|
||||
WireConnection;1;0;29;0
|
||||
WireConnection;1;1;30;0
|
||||
WireConnection;8;0;9;0
|
||||
WireConnection;2;0;1;0
|
||||
WireConnection;2;1;4;0
|
||||
WireConnection;2;2;8;0
|
||||
WireConnection;32;2;2;0
|
||||
WireConnection;32;3;34;0
|
||||
WireConnection;36;0;2;0
|
||||
WireConnection;26;1;2;0
|
||||
WireConnection;26;0;32;0
|
||||
WireConnection;26;2;36;0
|
||||
WireConnection;18;0;26;0
|
||||
WireConnection;19;0;18;0
|
||||
WireConnection;20;0;18;0
|
||||
WireConnection;22;0;18;0
|
||||
WireConnection;22;1;23;0
|
||||
WireConnection;10;1;26;0
|
||||
WireConnection;10;2;24;0
|
||||
WireConnection;10;3;25;1
|
||||
WireConnection;10;4;25;2
|
||||
WireConnection;13;1;18;0
|
||||
WireConnection;13;0;19;0
|
||||
WireConnection;13;2;20;0
|
||||
WireConnection;13;3;22;0
|
||||
WireConnection;11;1;13;0
|
||||
WireConnection;11;0;10;0
|
||||
WireConnection;14;0;15;0
|
||||
WireConnection;14;1;16;0
|
||||
WireConnection;14;2;11;0
|
||||
WireConnection;7;0;14;0
|
||||
WireConnection;0;0;7;0
|
||||
ASEEND*/
|
||||
//CHKSM=EF1BCF878CBE9DBF87503B5564BA985D4602AE12
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b840b32ff140044cbe24edf0fea80a5
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_Cube
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_NORMAL
|
||||
- _ELEMENTTYPE_POLYGON
|
||||
- _GRADIENTTYPE_LINEAR
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 0
|
||||
- _CoordRotateAngle: 0
|
||||
- _ElementType: 1
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 1
|
||||
- _GradientType: 0
|
||||
- _PolygonSides: 4
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 1.25, g: 1.25, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 459b300b87daebf4589bfaee0ea18161
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientX01
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_NORMAL
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_EXPONENTIAL
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 0
|
||||
- _CoordRotateAngle: 0.5
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 3
|
||||
- _PolygonSides: 5
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50533983623ed3340aa999ad69777864
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientX010
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_ABS
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_LINEAR
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 2
|
||||
- _CoordRotateAngle: 0
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 0
|
||||
- _PolygonSides: 5
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 2, g: 2, b: -1, a: 0}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97c6ab2cffb9c564a97a2df07ded5499
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientX10
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_NORMAL
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_EXPONENTIAL
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 0
|
||||
- _CoordRotateAngle: 0
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 3
|
||||
- _PolygonSides: 5
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4a8f3de3cefc1544c8e35a5c155f5d4a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,57 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientY01
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_NORMAL
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_EXPONENTIAL
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 0
|
||||
- _CoordRotateAngle: 0.25
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 3
|
||||
- _PolygonSides: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 842f2052018d45b4cbee58f9e3aa126a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientY010
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_ABS
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_LINEAR
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 2
|
||||
- _CoordRotateAngle: 0.25
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 0
|
||||
- _PolygonSides: 5
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 2, g: 2, b: 0, a: -0.5}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 056550500989d154080e2aab1e25f3f9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Xuib_GradientY10
|
||||
m_Shader: {fileID: 4800000, guid: 1b840b32ff140044cbe24edf0fea80a5, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COORDRANGE_NORMAL
|
||||
- _ELEMENTTYPE_GRADIENT
|
||||
- _GRADIENTTYPE_EXPONENTIAL
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _ColorMask: 15
|
||||
- _CoordRange: 0
|
||||
- _CoordRotateAngle: 0.75
|
||||
- _ElementType: 0
|
||||
- _Elementtype: 0
|
||||
- _ExpNumber: 0.5
|
||||
- _GradientType: 3
|
||||
- _PolygonSides: 5
|
||||
- _PolygonSidesv1: 5
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UseUIAlphaClip: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorA: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorB: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _CoordCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordCenterv2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CoordTransform: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _PolygonSize: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _PolygonSizev2: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3481ff25eecee72449e5e93a6fa64ee8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -4,7 +4,7 @@ using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using XericLibrary.Runtime.MacroLibrary;
|
||||
|
||||
namespace DigitalTwinTool
|
||||
namespace Deconstruction.Runtime
|
||||
{
|
||||
public static class MacroEventTrigger
|
||||
{
|
||||
@@ -84,49 +84,49 @@ namespace DigitalTwinTool
|
||||
|
||||
#region 细节事件
|
||||
|
||||
public static EventTrigger.TriggerEvent OnPointerEnter(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onPointerEnter(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.PointerEnter);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnPointerExit(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onPointerExit(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.PointerExit);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnPointerDown(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onPointerDown(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.PointerDown);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnPointerUp(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onPointerUp(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.PointerUp);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnPointerClick(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onPointerClick(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.PointerClick);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnDrag(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onDrag(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Drag);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnDrop(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onDrop(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Drop);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnScroll(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onScroll(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Scroll);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnUpdateSelected(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onUpdateSelected(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.UpdateSelected);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnSelect(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onSelect(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Select);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnDeselect(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onDeselect(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Deselect);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnMove(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onMove(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Move);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnInitializePotentialDrag(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onInitializePotentialDrag(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.InitializePotentialDrag);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnBeginDrag(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onBeginDrag(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.BeginDrag);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnEndDrag(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onEndDrag(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.EndDrag);
|
||||
|
||||
/// <summary>
|
||||
@@ -134,10 +134,10 @@ namespace DigitalTwinTool
|
||||
/// </summary>
|
||||
/// <param name="eventTrigger"></param>
|
||||
/// <returns></returns>
|
||||
public static EventTrigger.TriggerEvent OnSubmit(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onSubmit(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Submit);
|
||||
|
||||
public static EventTrigger.TriggerEvent OnCancel(this EventTrigger eventTrigger)
|
||||
public static EventTrigger.TriggerEvent onCancel(this EventTrigger eventTrigger)
|
||||
=> eventTrigger.GetEventTrigger(EventTriggerType.Cancel);
|
||||
|
||||
private static EventTrigger.TriggerEvent GetEventTrigger(this EventTrigger eventTrigger, EventTriggerType type)
|
||||
@@ -160,6 +160,8 @@ namespace DigitalTwinTool
|
||||
return e;
|
||||
}
|
||||
|
||||
public static void ClearAllEventTrigger(this EventTrigger eventTrigger) => eventTrigger.triggers.Clear();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -6,26 +6,42 @@ using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XericLibrary.Runtime.MacroLibrary;
|
||||
|
||||
namespace DigitalTwinTool
|
||||
namespace Deconstruction.Runtime
|
||||
{
|
||||
public static class MacroLayout
|
||||
{
|
||||
/// <summary>
|
||||
/// 将布局组标记为脏,以触发重算。
|
||||
/// 将布局组标记为脏,以触发重算布局。
|
||||
/// </summary>
|
||||
/// <param name="layoutGroup"></param>
|
||||
public static void SetDirty(this LayoutGroup layoutGroup)
|
||||
public static void SetLayoutDirty(this LayoutGroup layoutGroup)
|
||||
{
|
||||
var type = typeof(LayoutGroup);
|
||||
var method = type.GetMethod("SetDirty", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
method?.Invoke(layoutGroup, null);
|
||||
// var type = typeof(LayoutGroup);
|
||||
// var method = type.GetMethod("SetDirty", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
// method?.Invoke(layoutGroup, null);
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(layoutGroup.RectTransform());
|
||||
}
|
||||
|
||||
private static HashSet<RectTransform> _rebuildSet = new HashSet<RectTransform>();
|
||||
public static void WaitParentLayoutRebuild(this MonoBehaviour script)
|
||||
/// <summary>
|
||||
/// 将canvas组件白哦及为脏,以触发canvas充算布局
|
||||
/// </summary>
|
||||
/// <param name="rectTrans"></param>
|
||||
public static void SetLayoutDirty(this RectTransform rectTrans)
|
||||
{
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTrans);
|
||||
}
|
||||
|
||||
|
||||
private static HashSet<RectTransform> _rebuildSet = new HashSet<RectTransform>();
|
||||
/// <summary>
|
||||
/// 等待这帧过去之后再触发重建
|
||||
/// </summary>
|
||||
/// <param name="script"></param>
|
||||
public static void WaitParentLayoutRebuildThenRebuildAgen(this MonoBehaviour script)
|
||||
{
|
||||
if (!script.RectTransform())
|
||||
return;
|
||||
script.StartCoroutine(waitForRebuild());
|
||||
|
||||
return;
|
||||
IEnumerator waitForRebuild()
|
||||
{
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af972e12c8e41814188a98b92de42e0c
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Lrss3.Deconstruction",
|
||||
"rootNamespace": "Deconstruction",
|
||||
"references": [
|
||||
"GUID:6055be8ebefd69e48b49212b09b47b2f"
|
||||
"Unity.TextMeshPro"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
@@ -60,7 +60,9 @@ namespace Deconstruction.UI.TmpText
|
||||
/// <summary>
|
||||
/// 当前超链接管理器下的所有超链接
|
||||
/// </summary>
|
||||
#if ODIN_INSPECTOR
|
||||
[ShowInInspector]
|
||||
#endif
|
||||
public List<TMPHyperlinkReceiver> Children { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace Deconstruction.UI.TmpText
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"超链接目标事件存在错误 {_tmpText.text.LimitStringLength(32)} :\n{e.Message}\n{e.Data}", this);
|
||||
Debug.LogError($"超链接目标事件存在错误 {_tmpText.text.LimitStringLength(32)} :\n{e.Message}\n{e}\n\n", this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 579f0719bf2bbad4cbf32941bd430366
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
安装说明
|
||||
--------
|
||||
|
||||
这个目录包含 Xeric Library 的 Roslyn 语法分析器 DLL。
|
||||
|
||||
重要:DLL 不能放在深层目录!
|
||||
==============================
|
||||
|
||||
Rider / VS 等 IDE 在扫描 Roslyn Analyzer 时,只会识别浅层目录下的 DLL。
|
||||
如果 DLL 被放在过深的路径中,IDE 将不会加载它,代码检查也会失效。
|
||||
|
||||
推荐放置位置(任选其一):
|
||||
|
||||
Assets/ ← 项目根目录(直接放入)
|
||||
Assets/Editor/ ← Editor 专用目录
|
||||
Assets/Plugins/ ← 传统插件目录
|
||||
|
||||
不推荐的位置:
|
||||
|
||||
Assets/Samples/.../XericUnityAnalyzer/ ← Sample 导入后默认在这里,IDE 可能不识别!
|
||||
|
||||
因此,从 Package Manager 导入此 Sample 后,请手动将 XericUnityAnalyzer.dll
|
||||
移动到上述推荐位置之一,然后删除原 Sample 目录即可。
|
||||
+6
-1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user