浏览代码

导入了一个fx特效包,也许以后可以用到(?)基本实现1013的功能,包括定点抛物线火球子弹和逃跑组件,给怪物勾选canEscape可以增加该功能

Callum 4 月之前
父节点
当前提交
4c2c9e10b8
共有 100 个文件被更改,包括 7393 次插入2 次删除
  1. 2 1
      ActionTowerDefense/Assets/Cartoon FX Remaster.meta
  2. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets.meta
  3. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor.meta
  4. 14 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR Editor.asmdef
  5. 7 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR Editor.asmdef.meta
  6. 275 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs
  7. 10 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs.meta
  8. 592 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs
  9. 12 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs.meta
  10. 423 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderImporter.cs
  11. 11 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderImporter.cs.meta
  12. 38 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderPostProcessor.cs
  13. 11 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderPostProcessor.cs.meta
  14. 362 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs
  15. 12 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs.meta
  16. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics.meta
  17. 113 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays hdr ab nosp.mat
  18. 1 1
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays hdr ab nosp.mat.meta
  19. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays.png
  20. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays.png.meta
  21. 113 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic hdr ab nosp.mat
  22. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic hdr ab nosp.mat.meta
  23. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic.png
  24. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic.png.meta
  25. 125 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve ab.mat
  26. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve ab.mat.meta
  27. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve.png
  28. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve.png.meta
  29. 127 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve ab.mat
  30. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve ab.mat.meta
  31. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve.png
  32. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve.png.meta
  33. 96 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash mesh.asset
  34. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash mesh.asset.meta
  35. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash.png
  36. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash.png.meta
  37. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood.png
  38. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood.png.meta
  39. 113 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2 ab.mat
  40. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2 ab.mat.meta
  41. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2.png
  42. 128 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2.png.meta
  43. 114 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble ab.mat
  44. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble ab.mat.meta
  45. 115 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble hdr ab.mat
  46. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble hdr ab.mat.meta
  47. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble.png
  48. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble.png.meta
  49. 119 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club ab.mat
  50. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club ab.mat.meta
  51. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club.png
  52. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club.png.meta
  53. 119 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond ab.mat
  54. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond ab.mat.meta
  55. 162 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond mesh.asset
  56. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond mesh.asset.meta
  57. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond.png
  58. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond.png.meta
  59. 119 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart ab.mat
  60. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart ab.mat.meta
  61. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart.png
  62. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart.png.meta
  63. 119 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade ab.mat
  64. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade ab.mat.meta
  65. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade.png
  66. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade.png.meta
  67. 163 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur add.mat
  68. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur add.mat.meta
  69. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur.png
  70. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur.png.meta
  71. 171 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit emission.mat
  72. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit emission.mat.meta
  73. 170 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit.mat
  74. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit.mat.meta
  75. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 normal.png
  76. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 normal.png.meta
  77. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3.png
  78. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3.png.meta
  79. 166 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab hdr.mat
  80. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab hdr.mat.meta
  81. 165 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab.mat
  82. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab.mat.meta
  83. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3.png
  84. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3.png.meta
  85. 170 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 ab lit.mat
  86. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 ab lit.mat.meta
  87. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 normal.png
  88. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 normal.png.meta
  89. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2.png
  90. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2.png.meta
  91. 165 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3 ab.mat
  92. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3 ab.mat.meta
  93. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3.png
  94. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3.png.meta
  95. 167 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 ab.mat
  96. 8 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 ab.mat.meta
  97. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 normal.png
  98. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 normal.png.meta
  99. 二进制
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3.png
  100. 121 0
      ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3.png.meta

+ 2 - 1
ActionTowerDefense/Assets/PIDI Game Development Framework/Planar Reflections 4/Shared Assets/Amplify Shader Editor Nodes/4.0.0 - Amplify Shader Editor Nodes.unitypackage.meta → ActionTowerDefense/Assets/Cartoon FX Remaster.meta

@@ -1,5 +1,6 @@
 fileFormatVersion: 2
-guid: 68e1c94b04df60048974896754524c17
+guid: e1e01907eac80794bad29e96c026b62a
+folderAsset: yes
 DefaultImporter:
   externalObjects: {}
   userData: 

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bd9d1d014bf0b14428db03b2527d2d93
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1a426d2ed10d55c47b7aee95ace55b60
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 14 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR Editor.asmdef

@@ -0,0 +1,14 @@
+{
+    "name": "CFXREditor",
+    "references": [],
+    "optionalUnityReferences": [],
+    "includePlatforms": [
+        "Editor"
+    ],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": []
+}

+ 7 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR Editor.asmdef.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: eb5cb7c323a395242a81960087292f3c
+AssemblyDefinitionImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 275 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs

@@ -0,0 +1,275 @@
+//--------------------------------------------------------------------------------------------------------------------------------
+// Cartoon FX
+// (c) 2012-2020 Jean Moreno
+//--------------------------------------------------------------------------------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+
+// Parse conditional expressions from CFXR_MaterialInspector to show/hide some parts of the UI easily
+
+namespace CartoonFX
+{
+	public static class ExpressionParser
+	{
+		public delegate bool EvaluateFunction(string content);
+
+		//--------------------------------------------------------------------------------------------------------------------------------
+		// Main Function to use
+
+		static public bool EvaluateExpression(string expression, EvaluateFunction evalFunction)
+		{
+			//Remove white spaces and double && ||
+			string cleanExpr = "";
+			for(int i = 0; i < expression.Length; i++)
+			{
+				switch(expression[i])
+				{
+					case ' ': break;
+					case '&': cleanExpr += expression[i]; i++; break;
+					case '|': cleanExpr += expression[i]; i++; break;
+					default: cleanExpr += expression[i]; break;
+				}
+			}
+
+			List<Token> tokens = new List<Token>();
+			StringReader reader = new StringReader(cleanExpr);
+			Token t = null;
+			do
+			{
+				t = new Token(reader);
+				tokens.Add(t);
+			} while(t.type != Token.TokenType.EXPR_END);
+
+			List<Token> polishNotation = Token.TransformToPolishNotation(tokens);
+
+			var enumerator = polishNotation.GetEnumerator();
+			enumerator.MoveNext();
+			Expression root = MakeExpression(ref enumerator, evalFunction);
+
+			return root.Evaluate();
+		}
+
+		//--------------------------------------------------------------------------------------------------------------------------------
+		// Expression Token
+
+		public class Token
+		{
+			static Dictionary<char, KeyValuePair<TokenType, string>> typesDict = new Dictionary<char, KeyValuePair<TokenType, string>>()
+			{
+				{'(', new KeyValuePair<TokenType, string>(TokenType.OPEN_PAREN, "(")},
+				{')', new KeyValuePair<TokenType, string>(TokenType.CLOSE_PAREN, ")")},
+				{'!', new KeyValuePair<TokenType, string>(TokenType.UNARY_OP, "NOT")},
+				{'&', new KeyValuePair<TokenType, string>(TokenType.BINARY_OP, "AND")},
+				{'|', new KeyValuePair<TokenType, string>(TokenType.BINARY_OP, "OR")}
+			};
+
+			public enum TokenType
+			{
+				OPEN_PAREN,
+				CLOSE_PAREN,
+				UNARY_OP,
+				BINARY_OP,
+				LITERAL,
+				EXPR_END
+			}
+
+			public TokenType type;
+			public string value;
+
+			public Token(StringReader s)
+			{
+				int c = s.Read();
+				if(c == -1)
+				{
+					type = TokenType.EXPR_END;
+					value = "";
+					return;
+				}
+
+				char ch = (char)c;
+
+				//Special case: solve bug where !COND_FALSE_1 && COND_FALSE_2 would return True
+				bool embeddedNot = (ch == '!' && s.Peek() != '(');
+
+				if(typesDict.ContainsKey(ch) && !embeddedNot)
+				{
+					type = typesDict[ch].Key;
+					value = typesDict[ch].Value;
+				}
+				else
+				{
+					string str = "";
+					str += ch;
+					while(s.Peek() != -1 && !typesDict.ContainsKey((char)s.Peek()))
+					{
+						str += (char)s.Read();
+					}
+					type = TokenType.LITERAL;
+					value = str;
+				}
+			}
+
+			static public List<Token> TransformToPolishNotation(List<Token> infixTokenList)
+			{
+				Queue<Token> outputQueue = new Queue<Token>();
+				Stack<Token> stack = new Stack<Token>();
+
+				int index = 0;
+				while(infixTokenList.Count > index)
+				{
+					Token t = infixTokenList[index];
+
+					switch(t.type)
+					{
+						case Token.TokenType.LITERAL:
+							outputQueue.Enqueue(t);
+							break;
+						case Token.TokenType.BINARY_OP:
+						case Token.TokenType.UNARY_OP:
+						case Token.TokenType.OPEN_PAREN:
+							stack.Push(t);
+							break;
+						case Token.TokenType.CLOSE_PAREN:
+							while(stack.Peek().type != Token.TokenType.OPEN_PAREN)
+							{
+								outputQueue.Enqueue(stack.Pop());
+							}
+							stack.Pop();
+							if(stack.Count > 0 && stack.Peek().type == Token.TokenType.UNARY_OP)
+							{
+								outputQueue.Enqueue(stack.Pop());
+							}
+							break;
+						default:
+							break;
+					}
+
+					index++;
+				}
+				while(stack.Count > 0)
+				{
+					outputQueue.Enqueue(stack.Pop());
+				}
+
+				var list = new List<Token>(outputQueue);
+				list.Reverse();
+				return list;
+			}
+		}
+
+		//--------------------------------------------------------------------------------------------------------------------------------
+		// Boolean Expression Classes
+
+		public abstract class Expression
+		{
+			public abstract bool Evaluate();
+		}
+
+		public class ExpressionLeaf : Expression
+		{
+			private string content;
+			private EvaluateFunction evalFunction;
+
+			public ExpressionLeaf(EvaluateFunction _evalFunction, string _content)
+			{
+				this.evalFunction = _evalFunction;
+				this.content = _content;
+			}
+
+			override public bool Evaluate()
+			{
+				//embedded not, see special case in Token declaration
+				if(content.StartsWith("!"))
+				{
+					return !this.evalFunction(content.Substring(1));
+				}
+
+				return this.evalFunction(content);
+			}
+		}
+
+		public class ExpressionAnd : Expression
+		{
+			private Expression left;
+			private Expression right;
+
+			public ExpressionAnd(Expression _left, Expression _right)
+			{
+				this.left = _left;
+				this.right = _right;
+			}
+
+			override public bool Evaluate()
+			{
+				return left.Evaluate() && right.Evaluate();
+			}
+		}
+
+		public class ExpressionOr : Expression
+		{
+			private Expression left;
+			private Expression right;
+
+			public ExpressionOr(Expression _left, Expression _right)
+			{
+				this.left = _left;
+				this.right = _right;
+			}
+
+			override public bool Evaluate()
+			{
+				return left.Evaluate() || right.Evaluate();
+			}
+		}
+
+		public class ExpressionNot : Expression
+		{
+			private Expression expr;
+
+			public ExpressionNot(Expression _expr)
+			{
+				this.expr = _expr;
+			}
+
+			override public bool Evaluate()
+			{
+				return !expr.Evaluate();
+			}
+		}
+
+		static public Expression MakeExpression(ref List<Token>.Enumerator polishNotationTokensEnumerator, EvaluateFunction _evalFunction)
+		{
+			if(polishNotationTokensEnumerator.Current.type == Token.TokenType.LITERAL)
+			{
+				Expression lit = new ExpressionLeaf(_evalFunction, polishNotationTokensEnumerator.Current.value);
+				polishNotationTokensEnumerator.MoveNext();
+				return lit;
+			}
+			else
+			{
+				if(polishNotationTokensEnumerator.Current.value == "NOT")
+				{
+					polishNotationTokensEnumerator.MoveNext();
+					Expression operand = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction);
+					return new ExpressionNot(operand);
+				}
+				else if(polishNotationTokensEnumerator.Current.value == "AND")
+				{
+					polishNotationTokensEnumerator.MoveNext();
+					Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction);
+					Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction);
+					return new ExpressionAnd(left, right);
+				}
+				else if(polishNotationTokensEnumerator.Current.value == "OR")
+				{
+					polishNotationTokensEnumerator.MoveNext();
+					Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction);
+					Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction);
+					return new ExpressionOr(left, right);
+				}
+			}
+			return null;
+		}
+	}
+}

+ 10 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: ce7d96d3a4d4f3b4681ab437a9710d60
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 592 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs

@@ -0,0 +1,592 @@
+//--------------------------------------------------------------------------------------------------------------------------------
+// Cartoon FX
+// (c) 2012-2020 Jean Moreno
+//--------------------------------------------------------------------------------------------------------------------------------
+
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+using System.IO;
+using System.Text.RegularExpressions;
+
+// Custom material inspector for Stylized FX shaders
+// - organize UI using comments in the shader code
+// - more flexibility than the material property drawers
+// version 2 (dec 2017)
+
+namespace CartoonFX
+{
+	public class MaterialInspector : ShaderGUI
+	{
+		//Set by PropertyDrawers to defined if the next properties should be visible
+		static private Stack<bool> ShowStack = new Stack<bool>();
+
+		static public bool ShowNextProperty { get; private set; }
+		static public void PushShowProperty(bool value)
+		{
+			ShowStack.Push(ShowNextProperty);
+			ShowNextProperty &= value;
+		}
+		static public void PopShowProperty()
+		{
+			ShowNextProperty = ShowStack.Pop();
+		}
+
+		//--------------------------------------------------------------------------------------------------
+
+		const string kGuiCommandPrefix = "//#";
+		const string kGC_IfKeyword = "IF_KEYWORD";
+		const string kGC_IfProperty = "IF_PROPERTY";
+		const string kGC_EndIf = "END_IF";
+		const string kGC_HelpBox = "HELP_BOX";
+		const string kGC_Label = "LABEL";
+
+		Dictionary<int, List<GUICommand>> guiCommands = new Dictionary<int, List<GUICommand>>();
+
+		bool initialized = false;
+		AssetImporter shaderImporter;
+		ulong lastTimestamp;
+		void Initialize(MaterialEditor editor, bool force)
+		{
+			if((!initialized || force) && editor != null)
+			{
+				initialized = true;
+
+				guiCommands.Clear();
+
+				//Find the shader and parse the source to find special comments that will organize the GUI
+				//It's hackish, but at least it allows any character to be used (unlike material property drawers/decorators) and can be used along with property drawers
+
+				var materials = new List<Material>();
+				foreach(var o in editor.targets)
+				{
+					var m = o as Material;
+					if(m != null)
+						materials.Add(m);
+				}
+				if(materials.Count > 0 && materials[0].shader != null)
+				{
+					var path = AssetDatabase.GetAssetPath(materials[0].shader);
+					//get asset importer
+					shaderImporter = AssetImporter.GetAtPath(path);
+					if(shaderImporter != null)
+					{
+						lastTimestamp = shaderImporter.assetTimeStamp;
+					}
+					//remove 'Assets' and replace with OS path
+					path = Application.dataPath + path.Substring(6);
+					//convert to cross-platform path
+					path = path.Replace('/', Path.DirectorySeparatorChar);
+					//open file for reading
+					var lines = File.ReadAllLines(path);
+
+					bool insideProperties = false;
+					//regex pattern to find properties, as they need to be counted so that
+					//special commands can be inserted at the right position when enumerating them
+					var regex = new Regex(@"[a-zA-Z0-9_]+\s*\([^\)]*\)");
+					int propertyCount = 0;
+					bool insideCommentBlock = false;
+					foreach(var l in lines)
+					{
+						var line = l.TrimStart();
+
+						if(insideProperties)
+						{
+							bool isComment = line.StartsWith("//");
+
+							if(line.Contains("/*"))
+								insideCommentBlock = true;
+							if(line.Contains("*/"))
+								insideCommentBlock = false;
+
+							//finished properties block?
+							if(line.StartsWith("}"))
+								break;
+
+							//comment
+							if(line.StartsWith(kGuiCommandPrefix))
+							{
+								string command = line.Substring(kGuiCommandPrefix.Length).TrimStart();
+								//space
+								if(string.IsNullOrEmpty(command))
+									AddGUICommand(propertyCount, new GC_Space());
+								//separator
+								else if(command.StartsWith("---"))
+									AddGUICommand(propertyCount, new GC_Separator());
+								//separator
+								else if(command.StartsWith("==="))
+									AddGUICommand(propertyCount, new GC_SeparatorDouble());
+								//if keyword
+								else if(command.StartsWith(kGC_IfKeyword))
+								{
+									var expr = command.Substring(command.LastIndexOf(kGC_IfKeyword) + kGC_IfKeyword.Length + 1);
+									AddGUICommand(propertyCount, new GC_IfKeyword() { expression = expr, materials = materials.ToArray() });
+								}
+								//if property
+								else if(command.StartsWith(kGC_IfProperty))
+								{
+									var expr = command.Substring(command.LastIndexOf(kGC_IfProperty) + kGC_IfProperty.Length + 1);
+									AddGUICommand(propertyCount, new GC_IfProperty() { expression = expr, materials = materials.ToArray() });
+								}
+								//end if
+								else if(command.StartsWith(kGC_EndIf))
+								{
+									AddGUICommand(propertyCount, new GC_EndIf());
+								}
+								//help box
+								else if(command.StartsWith(kGC_HelpBox))
+								{
+									var messageType = MessageType.Error;
+									var message = "Invalid format for HELP_BOX:\n" + command;
+									var cmd = command.Substring(command.LastIndexOf(kGC_HelpBox) + kGC_HelpBox.Length + 1).Split(new string[] { "::" }, System.StringSplitOptions.RemoveEmptyEntries);
+									if(cmd.Length == 1)
+									{
+										message = cmd[0];
+										messageType = MessageType.None;
+									}
+									else if(cmd.Length == 2)
+									{
+										try
+										{
+											var msgType = (MessageType)System.Enum.Parse(typeof(MessageType), cmd[0], true);
+											message = cmd[1].Replace("  ", "\n");
+											messageType = msgType;
+										}
+										catch { }
+									}
+									
+									AddGUICommand(propertyCount, new GC_HelpBox()
+									{
+										message = message,
+										messageType = messageType
+									});
+								}
+								//label
+								else if(command.StartsWith(kGC_Label))
+								{
+									var label = command.Substring(command.LastIndexOf(kGC_Label) + kGC_Label.Length + 1);
+									AddGUICommand(propertyCount, new GC_Label() { label = label });
+								}
+								//header: plain text after command
+								else
+								{
+									AddGUICommand(propertyCount, new GC_Header() { label = command });
+								}
+							}
+							else
+							//property
+							{
+								if(regex.IsMatch(line) && !insideCommentBlock && !isComment)
+									propertyCount++;
+							}
+						}
+
+						//start properties block?
+						if(line.StartsWith("Properties"))
+						{
+							insideProperties = true;
+						}
+					}
+				}
+			}
+		}
+
+		void AddGUICommand(int propertyIndex, GUICommand command)
+		{
+			if(!guiCommands.ContainsKey(propertyIndex))
+				guiCommands.Add(propertyIndex, new List<GUICommand>());
+
+			guiCommands[propertyIndex].Add(command);
+		}
+
+		public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader)
+		{
+			initialized = false;
+			base.AssignNewShaderToMaterial(material, oldShader, newShader);
+		}
+
+		public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
+		{
+			//init:
+			//- read metadata in properties comment to generate ui layout
+			//- force update if timestamp doesn't match last (= file externally updated)
+			bool force = (shaderImporter != null && shaderImporter.assetTimeStamp != lastTimestamp);
+			Initialize(materialEditor, force);
+
+			var shader = (materialEditor.target as Material).shader;
+			materialEditor.SetDefaultGUIWidths();
+
+			//show all properties by default
+			ShowNextProperty = true;
+			ShowStack.Clear();
+
+			for(int i = 0; i < properties.Length; i++)
+			{
+				if(guiCommands.ContainsKey(i))
+				{
+					for(int j = 0; j < guiCommands[i].Count; j++)
+					{
+						guiCommands[i][j].OnGUI();
+					}
+				}
+
+				//Use custom properties to enable/disable groups based on keywords
+				if(ShowNextProperty)
+				{
+					if((properties[i].flags & (MaterialProperty.PropFlags.HideInInspector | MaterialProperty.PropFlags.PerRendererData)) == MaterialProperty.PropFlags.None)
+					{
+						DisplayProperty(properties[i], materialEditor);
+					}
+				}
+			}
+
+			//make sure to show gui commands that are after properties
+			int index = properties.Length;
+			if(guiCommands.ContainsKey(index))
+			{
+				for(int j = 0; j < guiCommands[index].Count; j++)
+				{
+					guiCommands[index][j].OnGUI();
+				}
+			}
+
+			//Special fields
+			Styles.MaterialDrawSeparatorDouble();
+			materialEditor.RenderQueueField();
+			materialEditor.EnableInstancingField();
+		}
+
+		virtual protected void DisplayProperty(MaterialProperty property, MaterialEditor materialEditor)
+		{
+			float propertyHeight = materialEditor.GetPropertyHeight(property, property.displayName);
+			Rect controlRect = EditorGUILayout.GetControlRect(true, propertyHeight, EditorStyles.layerMaskField, new GUILayoutOption[0]);
+			materialEditor.ShaderProperty(controlRect, property, property.displayName);
+		}
+	}
+
+	// Same as Toggle drawer, but doesn't set any keyword
+	// This will avoid adding unnecessary shader keyword to the project
+	internal class MaterialToggleNoKeywordDrawer : MaterialPropertyDrawer
+	{
+		private static bool IsPropertyTypeSuitable(MaterialProperty prop)
+		{
+			return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range;
+		}
+
+		public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
+		{
+			float height;
+			if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop))
+			{
+				height = 40f;
+			}
+			else
+			{
+				height = base.GetPropertyHeight(prop, label, editor);
+			}
+			return height;
+		}
+
+		public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor)
+		{
+			if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop))
+			{
+				EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning);
+			}
+			else
+			{
+				EditorGUI.BeginChangeCheck();
+				bool flag = Mathf.Abs(prop.floatValue) > 0.001f;
+				EditorGUI.showMixedValue = prop.hasMixedValue;
+				flag = EditorGUI.Toggle(position, label, flag);
+				EditorGUI.showMixedValue = false;
+				if (EditorGUI.EndChangeCheck())
+				{
+					prop.floatValue = ((!flag) ? 0f : 1f);
+				}
+			}
+		}
+	}
+
+	// Same as KeywordEnum drawer, but uses the keyword supplied as is rather than adding a prefix to them
+	internal class MaterialKeywordEnumNoPrefixDrawer : MaterialPropertyDrawer
+	{
+		private readonly GUIContent[] labels;
+		private readonly string[] keywords;
+
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1) : this(new[] { lbl1 }, new[] { kw1 }) { }
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2) : this(new[] { lbl1, lbl2 }, new[] { kw1, kw2 }) { }
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3) : this(new[] { lbl1, lbl2, lbl3 }, new[] { kw1, kw2, kw3 }) { }
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4) : this(new[] { lbl1, lbl2, lbl3, lbl4 }, new[] { kw1, kw2, kw3, kw4 }) { }
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5 }, new[] { kw1, kw2, kw3, kw4, kw5 }) { }
+		public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5, string lbl6, string kw6) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5, lbl6 }, new[] { kw1, kw2, kw3, kw4, kw5, kw6 }) { }
+
+		public MaterialKeywordEnumNoPrefixDrawer(string[] labels, string[] keywords)
+		{
+			this.labels= new GUIContent[keywords.Length];
+			this.keywords = new string[keywords.Length];
+			for (int i = 0; i < keywords.Length; ++i)
+			{
+				this.labels[i] = new GUIContent(labels[i]);
+				this.keywords[i] = keywords[i];
+			}
+		}
+
+		static bool IsPropertyTypeSuitable(MaterialProperty prop)
+		{
+			return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range;
+		}
+
+		void SetKeyword(MaterialProperty prop, int index)
+		{
+			for (int i = 0; i < keywords.Length; ++i)
+			{
+				string keyword = GetKeywordName(prop.name, keywords[i]);
+				foreach (Material material in prop.targets)
+				{
+					if (index == i)
+						material.EnableKeyword(keyword);
+					else
+						material.DisableKeyword(keyword);
+				}
+			}
+		}
+
+		public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
+		{
+			if (!IsPropertyTypeSuitable(prop))
+			{
+				return EditorGUIUtility.singleLineHeight * 2.5f;
+			}
+			return base.GetPropertyHeight(prop, label, editor);
+		}
+
+		public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor)
+		{
+			if (!IsPropertyTypeSuitable(prop))
+			{
+				EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning);
+				return;
+			}
+
+			EditorGUI.BeginChangeCheck();
+
+			EditorGUI.showMixedValue = prop.hasMixedValue;
+			var value = (int)prop.floatValue;
+			value = EditorGUI.Popup(position, label, value, labels);
+			EditorGUI.showMixedValue = false;
+			if (EditorGUI.EndChangeCheck())
+			{
+				prop.floatValue = value;
+				SetKeyword(prop, value);
+			}
+		}
+
+		public override void Apply(MaterialProperty prop)
+		{
+			base.Apply(prop);
+			if (!IsPropertyTypeSuitable(prop))
+				return;
+
+			if (prop.hasMixedValue)
+				return;
+
+			SetKeyword(prop, (int)prop.floatValue);
+		}
+
+		// Final keyword name: property name + "_" + display name. Uppercased,
+		// and spaces replaced with underscores.
+		private static string GetKeywordName(string propName, string name)
+		{
+			// Just return the supplied name
+			return name;
+
+			// Original code:
+			/*
+			string n = propName + "_" + name;
+			return n.Replace(' ', '_').ToUpperInvariant();
+			*/
+		}
+	}
+
+
+	//================================================================================================================================================================================================
+	// GUI Commands System
+	//
+	// Workaround to Material Property Drawers limitations:
+	// - uses shader comments to organize the GUI, and show/hide properties based on conditions
+	// - can use any character (unlike property drawers)
+	// - parsed once at material editor initialization
+
+	internal class GUICommand
+	{
+		public virtual bool Visible() { return true; }
+		public virtual void OnGUI() { }
+	}
+
+	internal class GC_Separator : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparator(); } }
+	internal class GC_SeparatorDouble : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparatorDouble(); } }
+	internal class GC_Space : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) GUILayout.Space(8); } }
+	internal class GC_HelpBox : GUICommand
+	{
+		public string message { get; set; }
+		public MessageType messageType { get; set; }
+
+		public override void OnGUI()
+		{
+			if(MaterialInspector.ShowNextProperty)
+				Styles.HelpBoxRichText(message, messageType);
+		}
+	}
+	internal class GC_Header : GUICommand
+	{
+		public string label { get; set; }
+		GUIContent guiContent;
+
+		public override void OnGUI()
+		{
+			if(guiContent == null)
+				guiContent = new GUIContent(label);
+
+			if(MaterialInspector.ShowNextProperty)
+				Styles.MaterialDrawHeader(guiContent);
+		}
+	}
+	internal class GC_Label : GUICommand
+	{
+		public string label { get; set; }
+		GUIContent guiContent;
+
+		public override void OnGUI()
+		{
+			if(guiContent == null)
+				guiContent = new GUIContent(label);
+
+			if(MaterialInspector.ShowNextProperty)
+				GUILayout.Label(guiContent);
+		}
+	}
+	internal class GC_IfKeyword : GUICommand
+	{
+		public string expression { get; set; }
+		public Material[] materials { get; set; }
+		public override void OnGUI()
+		{
+			bool show = ExpressionParser.EvaluateExpression(expression, (string s) =>
+			{
+				foreach(var m in materials)
+				{
+					if(m.IsKeywordEnabled(s))
+						return true;
+				}
+				return false;
+			});
+			MaterialInspector.PushShowProperty(show);
+		}
+	}
+	internal class GC_EndIf : GUICommand { public override void OnGUI() { MaterialInspector.PopShowProperty(); } }
+
+	internal class GC_IfProperty : GUICommand
+	{
+		string _expression;
+		public string expression
+		{
+			get { return _expression; }
+			set { _expression = value.Replace("!=", "<>"); }
+		}
+		public Material[] materials { get; set; }
+
+		public override void OnGUI()
+		{
+			bool show = ExpressionParser.EvaluateExpression(expression, EvaluatePropertyExpression);
+			MaterialInspector.PushShowProperty(show);
+		}
+
+		bool EvaluatePropertyExpression(string expr)
+		{
+			//expression is expected to be in the form of: property operator value
+			var reader = new StringReader(expr);
+			string property = "";
+			string op = "";
+			float value = 0f;
+
+			int overflow = 0;
+			while(true)
+			{
+				char c = (char)reader.Read();
+
+				//operator
+				if(c == '=' || c == '>' || c == '<' || c == '!')
+				{
+					op += c;
+					//second operator character, if any
+					char c2 = (char)reader.Peek();
+					if(c2 == '=' || c2 == '>')
+					{
+						reader.Read();
+						op += c2;
+					}
+
+					//end of string is the value
+					var end = reader.ReadToEnd();
+					if(!float.TryParse(end, out value))
+					{
+						Debug.LogError("Couldn't parse float from property expression:\n" + end);
+						return false;
+					}
+
+					break;
+				}
+
+				//property name
+				property += c;
+
+				overflow++;
+				if(overflow >= 9999)
+				{
+					Debug.LogError("Expression parsing overflow!\n");
+					return false;
+				}
+			}
+
+			//evaluate property
+			bool conditionMet = false;
+			foreach(var m in materials)
+			{
+				float propValue = 0f;
+				if(property.Contains(".x") || property.Contains(".y") || property.Contains(".z") || property.Contains(".w"))
+				{
+					string[] split = property.Split('.');
+					string component = split[1];
+					switch(component)
+					{
+						case "x": propValue = m.GetVector(split[0]).x; break;
+						case "y": propValue = m.GetVector(split[0]).y; break;
+						case "z": propValue = m.GetVector(split[0]).z; break;
+						case "w": propValue = m.GetVector(split[0]).w; break;
+						default: Debug.LogError("Invalid component for vector property: '" + property + "'"); break;
+					}
+				}
+				else
+					propValue = m.GetFloat(property);
+
+				switch(op)
+				{
+					case ">=": conditionMet = propValue >= value; break;
+					case "<=": conditionMet = propValue <= value; break;
+					case ">": conditionMet = propValue > value; break;
+					case "<": conditionMet = propValue < value; break;
+					case "<>": conditionMet = propValue != value; break;	//not equal, "!=" is replaced by "<>" to prevent bug with leading ! ("not" operator)
+					case "==": conditionMet = propValue == value; break;
+					default:
+						Debug.LogError("Invalid property expression:\n" + expr);
+						break;
+				}
+				if(conditionMet)
+					return true;
+			}
+
+			return false;
+		}
+	}
+}

+ 12 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4fb4c15e772a1cc4baecc7a958bf9cc7
+timeCreated: 1486392341
+licenseType: Store
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 423 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderImporter.cs

@@ -0,0 +1,423 @@
+// #define SHOW_EXPORT_BUTTON
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Reflection;
+using UnityEditor;
+using UnityEditor.Rendering;
+using UnityEngine;
+#if UNITY_2020_2_OR_NEWER
+using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
+using UnityEngine.Rendering;
+
+namespace CartoonFX
+{
+    namespace CustomShaderImporter
+    {
+        static class Utils
+        {
+            public static bool IsUsingURP()
+            {
+#if UNITY_2019_3_OR_NEWER
+                var renderPipeline = GraphicsSettings.currentRenderPipeline;
+#else
+                var renderPipeline = GraphicsSettings.renderPipelineAsset;
+#endif
+                return renderPipeline != null && renderPipeline.GetType().Name.Contains("Universal");
+            }
+        }
+
+        [ScriptedImporter(0, FILE_EXTENSION)]
+        public class CFXR_ShaderImporter : ScriptedImporter
+        {
+            public enum RenderPipeline
+            {
+                Auto,
+                ForceBuiltInRenderPipeline,
+                ForceUniversalRenderPipeline
+            }
+
+            public const string FILE_EXTENSION = "cfxrshader";
+
+            [Tooltip("In case of errors when building the project or with addressables, you can try forcing a specific render pipeline")]
+            public RenderPipeline renderPipelineDetection = RenderPipeline.Auto;
+            public string detectedRenderPipeline = "Built-In Render Pipeline";
+            public int strippedLinesCount = 0;
+            public string shaderSourceCode;
+            public string shaderName;
+            public string[] shaderErrors;
+            public ulong variantCount;
+            public ulong variantCountUsed;
+
+            enum ComparisonOperator
+            {
+                Equal,
+                Greater,
+                GreaterOrEqual,
+                Less,
+                LessOrEqual
+            }
+
+#if UNITY_2022_2_OR_NEWER
+            const int URP_VERSION = 14;
+#elif UNITY_2021_2_OR_NEWER
+            const int URP_VERSION = 12;
+#elif UNITY_2021_1_OR_NEWER
+            const int URP_VERSION = 11;
+#elif UNITY_2020_3_OR_NEWER
+            const int URP_VERSION = 10;
+#else
+            const int URP_VERSION = 7;
+#endif
+
+            static ComparisonOperator ParseComparisonOperator(string symbols)
+            {
+                switch (symbols)
+                {
+                    case "==": return ComparisonOperator.Equal;
+                    case "<=": return ComparisonOperator.LessOrEqual;
+                    case "<": return ComparisonOperator.Less;
+                    case ">": return ComparisonOperator.Greater;
+                    case ">=": return ComparisonOperator.GreaterOrEqual;
+                    default: throw new Exception("Invalid comparison operator: " + symbols);
+                }
+            }
+
+            static bool CompareWithOperator(int value1, int value2, ComparisonOperator comparisonOperator)
+            {
+                switch (comparisonOperator)
+                {
+                    case ComparisonOperator.Equal: return value1 == value2;
+                    case ComparisonOperator.Greater: return value1 > value2;
+                    case ComparisonOperator.GreaterOrEqual: return value1 >= value2;
+                    case ComparisonOperator.Less: return value1 < value2;
+                    case ComparisonOperator.LessOrEqual: return value1 <= value2;
+                    default: throw new Exception("Invalid comparison operator value: " + comparisonOperator);
+                }
+            }
+
+            bool StartsOrEndWithSpecialTag(string line)
+            {
+                bool startsWithTag = (line.Length > 4 && line[0] == '/' && line[1] == '*' && line[2] == '*' && line[3] == '*');
+                if (startsWithTag) return true;
+
+                int l = line.Length-1;
+                bool endsWithTag = (line.Length > 4 && line[l] == '/' && line[l-1] == '*' && line[l-2] == '*' && line[l-3] == '*');
+                return endsWithTag;
+            }
+
+            public override void OnImportAsset(AssetImportContext context)
+            {
+                bool isUsingURP;
+                switch (renderPipelineDetection)
+                {
+                    default:
+                    case RenderPipeline.Auto:
+                    {
+                        isUsingURP = Utils.IsUsingURP();
+                        detectedRenderPipeline = isUsingURP ? "Universal Render Pipeline" : "Built-In Render Pipeline";
+                        break;
+                    }
+                    case RenderPipeline.ForceBuiltInRenderPipeline:
+                    {
+                        detectedRenderPipeline = "Built-In Render Pipeline";
+                        isUsingURP = false;
+                        break;
+                    }
+                    case RenderPipeline.ForceUniversalRenderPipeline:
+                    {
+                        detectedRenderPipeline = "Universal Render Pipeline";
+                        isUsingURP = true;
+                        break;
+                    }
+                }
+
+                StringWriter shaderSource = new StringWriter();
+                string[] sourceLines = File.ReadAllLines(context.assetPath);
+                Stack<bool> excludeCurrentLines = new Stack<bool>();
+                strippedLinesCount = 0;
+
+                for (int i = 0; i < sourceLines.Length; i++)
+                {
+                    bool excludeThisLine = excludeCurrentLines.Count > 0 && excludeCurrentLines.Peek();
+
+                    string line = sourceLines[i];
+                    if (StartsOrEndWithSpecialTag(line))
+                    {
+                        if (line.StartsWith("/*** BIRP ***/"))
+                        {
+                            excludeCurrentLines.Push(excludeThisLine || isUsingURP);
+                        }
+                        else if (line.StartsWith("/*** URP ***/"))
+                        {
+                            excludeCurrentLines.Push(excludeThisLine || !isUsingURP);
+                        }
+                        else if (line.StartsWith("/*** URP_VERSION "))
+                        {
+                            string subline = line.Substring("/*** URP_VERSION ".Length);
+                            int spaceIndex = subline.IndexOf(' ');
+                            string version = subline.Substring(spaceIndex, subline.LastIndexOf(' ') - spaceIndex);
+                            string op = subline.Substring(0, spaceIndex);
+
+                            var compOp = ParseComparisonOperator(op);
+                            int compVersion = int.Parse(version);
+
+                            bool isCorrectURP = CompareWithOperator(URP_VERSION, compVersion, compOp);
+                            excludeCurrentLines.Push(excludeThisLine || !isCorrectURP);
+                        }
+                        else if (excludeThisLine && line.StartsWith("/*** END"))
+                        {
+                            excludeCurrentLines.Pop();
+                        }
+                        else if (!excludeThisLine && line.StartsWith("/*** #define URP_VERSION ***/"))
+                        {
+                            shaderSource.WriteLine("\t\t\t#define URP_VERSION " + URP_VERSION);
+                        }
+                    }
+                    else
+                    {
+                        if (excludeThisLine)
+                        {
+                            strippedLinesCount++;
+                            continue;
+                        }
+
+                        shaderSource.WriteLine(line);
+                    }
+                }
+
+                // Get source code and extract name
+                shaderSourceCode = shaderSource.ToString();
+                int idx = shaderSourceCode.IndexOf("Shader \"", StringComparison.InvariantCulture) + 8;
+                int idx2 = shaderSourceCode.IndexOf('"', idx);
+                shaderName = shaderSourceCode.Substring(idx, idx2 - idx);
+                shaderErrors = null;
+
+                Shader shader = ShaderUtil.CreateShaderAsset(context, shaderSourceCode, true);
+
+                if (ShaderUtil.ShaderHasError(shader))
+                {
+                    string[] shaderSourceLines = shaderSourceCode.Split(new [] {'\n'}, StringSplitOptions.None);
+                    var errors = ShaderUtil.GetShaderMessages(shader);
+                    shaderErrors = Array.ConvertAll(errors, err => $"{err.message} (line {err.line})");
+                    foreach (ShaderMessage error in errors)
+                    {
+                        string message = error.line <= 0 ?
+                            string.Format("Shader Error in '{0}' (in file '{2}')\nError: {1}\n", shaderName, error.message, error.file) :
+                            string.Format("Shader Error in '{0}' (line {2} in file '{3}')\nError: {1}\nLine: {4}\n", shaderName, error.message, error.line, error.file, shaderSourceLines[error.line-1]);
+                        if (error.severity == ShaderCompilerMessageSeverity.Warning)
+                        {
+                            Debug.LogWarning(message);
+                        }
+                        else
+                        {
+                            Debug.LogError(message);
+                        }
+                    }
+                }
+                else
+                {
+                    ShaderUtil.ClearShaderMessages(shader);
+                }
+
+                context.AddObjectToAsset("MainAsset", shader);
+                context.SetMainObject(shader);
+
+                // Try to count variant using reflection:
+                // internal static extern ulong GetVariantCount(Shader s, bool usedBySceneOnly);
+                variantCount = 0;
+                variantCountUsed = 0;
+                MethodInfo getVariantCountReflection = typeof(ShaderUtil).GetMethod("GetVariantCount", BindingFlags.Static | BindingFlags.NonPublic);
+                if (getVariantCountReflection != null)
+                {
+                    try
+                    {
+                        object result = getVariantCountReflection.Invoke(null, new object[] {shader, false});
+                        variantCount = (ulong)result;
+                        result = getVariantCountReflection.Invoke(null, new object[] {shader, true});
+                        variantCountUsed = (ulong)result;
+                    }
+                    catch
+                    {
+                        // ignored
+                    }
+                }
+            }
+        }
+
+        namespace Inspector
+        {
+            [CustomEditor(typeof(CFXR_ShaderImporter)), CanEditMultipleObjects]
+            public class TCP2ShaderImporter_Editor : Editor
+            {
+                CFXR_ShaderImporter Importer => (CFXR_ShaderImporter) this.target;
+
+                // From: UnityEditor.ShaderInspectorPlatformsPopup
+                static string FormatCount(ulong count)
+                {
+                    bool flag = count > 1000000000uL;
+                    string result;
+                    if (flag)
+                    {
+                        result = (count / 1000000000.0).ToString("f2", CultureInfo.InvariantCulture.NumberFormat) + "B";
+                    }
+                    else
+                    {
+                        bool flag2 = count > 1000000uL;
+                        if (flag2)
+                        {
+                            result = (count / 1000000.0).ToString("f2", CultureInfo.InvariantCulture.NumberFormat) + "M";
+                        }
+                        else
+                        {
+                            bool flag3 = count > 1000uL;
+                            if (flag3)
+                            {
+                                result = (count / 1000.0).ToString("f2", CultureInfo.InvariantCulture.NumberFormat) + "k";
+                            }
+                            else
+                            {
+                                result = count.ToString();
+                            }
+                        }
+                    }
+                    return result;
+                }
+
+                static GUIStyle _HelpBoxRichTextStyle;
+                static GUIStyle HelpBoxRichTextStyle
+                {
+                    get
+                    {
+                        if (_HelpBoxRichTextStyle == null)
+                        {
+                            _HelpBoxRichTextStyle = new GUIStyle("HelpBox");
+                            _HelpBoxRichTextStyle.richText = true;
+                            _HelpBoxRichTextStyle.margin = new RectOffset(4, 4, 0, 0);
+                            _HelpBoxRichTextStyle.padding = new RectOffset(4, 4, 4, 4);
+                        }
+                        return _HelpBoxRichTextStyle;
+                    }
+                }
+
+                public override void OnInspectorGUI()
+                {
+                    bool multipleValues = serializedObject.isEditingMultipleObjects;
+
+                    CFXR_ShaderImporter.RenderPipeline detection = ((CFXR_ShaderImporter)target).renderPipelineDetection;
+                    bool isUsingURP = Utils.IsUsingURP();
+                    serializedObject.Update();
+
+                    GUILayout.Label(Importer.shaderName);
+                    string variantsText = "";
+                    if (Importer.variantCount > 0 && Importer.variantCountUsed > 0)
+                    {
+                        string variantsCount = multipleValues ? "-" : FormatCount(Importer.variantCount);
+                        string variantsCountUsed = multipleValues ? "-" : FormatCount(Importer.variantCountUsed);
+                        variantsText = $"\nVariants (currently used): <b>{variantsCountUsed}</b>\nVariants (including unused): <b>{variantsCount}</b>";
+                    }
+                    string strippedLinesCount = multipleValues ? "-" : Importer.strippedLinesCount.ToString();
+                    string renderPipeline = Importer.detectedRenderPipeline;
+                    if (targets is { Length: > 1 })
+                    {
+                        foreach (CFXR_ShaderImporter importer in targets)
+                        {
+                            if (importer.detectedRenderPipeline != renderPipeline)
+                            {
+                                renderPipeline = "-";
+                                break;
+                            }
+                        }
+                    }
+                    GUILayout.Label($"{(detection == CFXR_ShaderImporter.RenderPipeline.Auto ? "Detected" : "Forced")} render pipeline: <b>{renderPipeline}</b>\nStripped lines: <b>{strippedLinesCount}</b>{variantsText}", HelpBoxRichTextStyle);
+
+                    if (Importer.shaderErrors != null && Importer.shaderErrors.Length > 0)
+                    {
+                        GUILayout.Space(4);
+                        var color = GUI.color;
+                        GUI.color = new Color32(0xFF, 0x80, 0x80, 0xFF);
+                        GUILayout.Label($"<b>Errors:</b>\n{string.Join("\n", Importer.shaderErrors)}", HelpBoxRichTextStyle);
+                        GUI.color = color;
+                    }
+
+                    bool shouldReimportShader = false;
+                    bool compiledForURP = Importer.detectedRenderPipeline.Contains("Universal");
+                    if (detection == CFXR_ShaderImporter.RenderPipeline.Auto
+                        && ((isUsingURP && !compiledForURP) || (!isUsingURP && compiledForURP)))
+                    {
+                        GUILayout.Space(4);
+                        Color guiColor = GUI.color;
+                        GUI.color *= Color.yellow;
+                        EditorGUILayout.HelpBox("The detected render pipeline doesn't match the pipeline this shader was compiled for!\nPlease reimport the shaders for them to work in the current render pipeline.", MessageType.Warning);
+                        if (GUILayout.Button("Reimport Shader"))
+                        {
+                            shouldReimportShader = true;
+                        }
+                        GUI.color = guiColor;
+                    }
+
+                    GUILayout.Space(4);
+
+
+                    EditorGUI.BeginChangeCheck();
+                    EditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(CFXR_ShaderImporter.renderPipelineDetection)));
+                    if (EditorGUI.EndChangeCheck())
+                    {
+                        shouldReimportShader = true;
+                    }
+
+                    if (GUILayout.Button("View Source", GUILayout.ExpandWidth(false)))
+                    {
+                        string path = Application.temporaryCachePath + "/" + Importer.shaderName.Replace("/", "-") + "_Source.shader";
+                        if (File.Exists(path))
+                        {
+                            File.SetAttributes(path, FileAttributes.Normal);
+                        }
+
+                        File.WriteAllText(path, Importer.shaderSourceCode);
+                        File.SetAttributes(path, FileAttributes.ReadOnly);
+                        UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(path, 0);
+                    }
+
+#if SHOW_EXPORT_BUTTON
+                    GUILayout.Space(8);
+
+                    EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(importer.shaderSourceCode));
+                    {
+                        if (GUILayout.Button("Export .shader file", GUILayout.ExpandWidth(false)))
+                        {
+                            string savePath = EditorUtility.SaveFilePanel("Export CFXR shader", Application.dataPath, "CFXR Shader","shader");
+                            if (!string.IsNullOrEmpty(savePath))
+                            {
+                                File.WriteAllText(savePath, importer.shaderSourceCode);
+                            }
+                        }
+                    }
+                    EditorGUI.EndDisabledGroup();
+#endif
+
+                    serializedObject.ApplyModifiedProperties();
+
+                    if (shouldReimportShader)
+                    {
+                        ReimportShader();
+                    }
+                }
+
+                void ReimportShader()
+                {
+                    foreach (UnityEngine.Object t in targets)
+                    {
+                        string path = AssetDatabase.GetAssetPath(t);
+                        AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceSynchronousImport);
+                    }
+                }
+            }
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderImporter.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fe56ec25963759b49955809beeb4324b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 38 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderPostProcessor.cs

@@ -0,0 +1,38 @@
+using System;
+using UnityEditor;
+using UnityEngine;
+
+namespace CartoonFX
+{
+    namespace CustomShaderImporter
+    {
+        public class CFXR_ShaderPostProcessor : AssetPostprocessor
+        {
+            static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
+            {
+                CleanCFXRShaders(importedAssets);
+            }
+
+            static void CleanCFXRShaders(string[] paths)
+            {
+                foreach (var assetPath in paths)
+                {
+                    if (!assetPath.EndsWith(CFXR_ShaderImporter.FILE_EXTENSION, StringComparison.InvariantCultureIgnoreCase))
+                    {
+                        continue;
+                    }
+
+                    var shader = AssetDatabase.LoadMainAssetAtPath(assetPath) as Shader;
+                    if (shader != null)
+                    {
+                        ShaderUtil.ClearShaderMessages(shader);
+                        if (!ShaderUtil.ShaderHasError(shader))
+                        {
+                            ShaderUtil.RegisterShader(shader);
+                        }
+                    }
+                }
+            }
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ShaderPostProcessor.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 29d46695388f9a84d9ae71b5140727a3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 362 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs

@@ -0,0 +1,362 @@
+//--------------------------------------------------------------------------------------------------------------------------------
+// Cartoon FX
+// (c) 2012-2020 Jean Moreno
+//--------------------------------------------------------------------------------------------------------------------------------
+
+using UnityEngine;
+using UnityEditor;
+
+// GUI Styles and UI methods
+
+namespace CartoonFX
+{
+	public static class Styles
+	{
+		//================================================================================================================================
+		// GUI Styles
+		//================================================================================================================================
+
+		//================================================================================================================================
+		// (x) close button
+		static GUIStyle _closeCrossButton;
+		public static GUIStyle CloseCrossButton
+		{
+			get
+			{
+				if(_closeCrossButton == null)
+				{
+					//Try to load GUISkin according to its GUID
+					//Assumes that its .meta file should always stick with it!
+					string guiSkinPath = AssetDatabase.GUIDToAssetPath("02d396fa782e5d7438e231ea9f8be23c");
+					var gs = AssetDatabase.LoadAssetAtPath<GUISkin>(guiSkinPath);
+					if(gs != null)
+					{
+						_closeCrossButton = System.Array.Find<GUIStyle>(gs.customStyles, x => x.name == "CloseCrossButton");
+					}
+
+					//Else fall back to minibutton
+					if(_closeCrossButton == null)
+						_closeCrossButton = EditorStyles.miniButton;
+				}
+				return _closeCrossButton;
+			}
+		}
+
+		//================================================================================================================================
+		// Shuriken Toggle with label alignment fix
+		static GUIStyle _shurikenToggle;
+		public static GUIStyle ShurikenToggle
+		{
+			get
+			{
+				if(_shurikenToggle == null)
+				{
+					_shurikenToggle = new GUIStyle("ShurikenToggle");
+					_shurikenToggle.fontSize = 9;
+					_shurikenToggle.contentOffset = new Vector2(16, -1);
+					if(EditorGUIUtility.isProSkin)
+					{
+						var textColor = new Color(.8f, .8f, .8f);
+						_shurikenToggle.normal.textColor = textColor;
+						_shurikenToggle.active.textColor = textColor;
+						_shurikenToggle.focused.textColor = textColor;
+						_shurikenToggle.hover.textColor = textColor;
+						_shurikenToggle.onNormal.textColor = textColor;
+						_shurikenToggle.onActive.textColor = textColor;
+						_shurikenToggle.onFocused.textColor = textColor;
+						_shurikenToggle.onHover.textColor = textColor;
+					}
+				}
+				return _shurikenToggle;
+			}
+		}
+
+		//================================================================================================================================
+		// Bold mini-label (the one from EditorStyles isn't actually "mini")
+		static GUIStyle _miniBoldLabel;
+		public static GUIStyle MiniBoldLabel
+		{
+			get
+			{
+				if(_miniBoldLabel == null)
+				{
+					_miniBoldLabel = new GUIStyle(EditorStyles.boldLabel);
+					_miniBoldLabel.fontSize = 10;
+					_miniBoldLabel.margin = new RectOffset(0, 0, 0, 0);
+				}
+				return _miniBoldLabel;
+			}
+		}
+
+		//================================================================================================================================
+		// Bold mini-foldout
+		static GUIStyle _miniBoldFoldout;
+		public static GUIStyle MiniBoldFoldout
+		{
+			get
+			{
+				if(_miniBoldFoldout == null)
+				{
+					_miniBoldFoldout = new GUIStyle(EditorStyles.foldout);
+					_miniBoldFoldout.fontSize = 10;
+					_miniBoldFoldout.fontStyle = FontStyle.Bold;
+					_miniBoldFoldout.margin = new RectOffset(0, 0, 0, 0);
+				}
+				return _miniBoldFoldout;
+			}
+		}
+
+		//================================================================================================================================
+		// Gray right-aligned label for Orderable List (Material Animator)
+		static GUIStyle _PropertyTypeLabel;
+		public static GUIStyle PropertyTypeLabel
+		{
+			get
+			{
+				if(_PropertyTypeLabel == null)
+				{
+					_PropertyTypeLabel = new GUIStyle(EditorStyles.label);
+					_PropertyTypeLabel.alignment = TextAnchor.MiddleRight;
+					_PropertyTypeLabel.normal.textColor = Color.gray;
+					_PropertyTypeLabel.fontSize = 9;
+				}
+				return _PropertyTypeLabel;
+			}
+		}
+
+		// Dark Gray right-aligned label for Orderable List (Material Animator)
+		static GUIStyle _PropertyTypeLabelFocused;
+		public static GUIStyle PropertyTypeLabelFocused
+		{
+			get
+			{
+				if(_PropertyTypeLabelFocused == null)
+				{
+					_PropertyTypeLabelFocused = new GUIStyle(EditorStyles.label);
+					_PropertyTypeLabelFocused.alignment = TextAnchor.MiddleRight;
+					_PropertyTypeLabelFocused.normal.textColor = new Color(.2f, .2f, .2f);
+					_PropertyTypeLabelFocused.fontSize = 9;
+				}
+				return _PropertyTypeLabelFocused;
+			}
+		}
+
+		//================================================================================================================================
+		// Rounded Box
+		static GUIStyle _roundedBox;
+		public static GUIStyle RoundedBox
+		{
+			get
+			{
+				if(_roundedBox == null)
+				{
+					_roundedBox = new GUIStyle(EditorStyles.helpBox);
+				}
+				return _roundedBox;
+			}
+		}
+
+		//================================================================================================================================
+		// Center White Label ("Editing Spline" label in Scene View)
+		static GUIStyle _CenteredWhiteLabel;
+		public static GUIStyle CenteredWhiteLabel
+		{
+			get
+			{
+				if(_CenteredWhiteLabel == null)
+				{
+					_CenteredWhiteLabel = new GUIStyle(EditorStyles.centeredGreyMiniLabel);
+					_CenteredWhiteLabel.fontSize = 20;
+					_CenteredWhiteLabel.normal.textColor = Color.white;
+				}
+				return _CenteredWhiteLabel;
+			}
+		}
+
+		//================================================================================================================================
+		// Used to draw lines for separators
+		static public GUIStyle _LineStyle;
+		static public GUIStyle LineStyle
+		{
+			get
+			{
+				if(_LineStyle == null)
+				{
+					_LineStyle = new GUIStyle();
+					_LineStyle.normal.background = EditorGUIUtility.whiteTexture;
+					_LineStyle.stretchWidth = true;
+				}
+
+				return _LineStyle;
+			}
+		}
+
+		//================================================================================================================================
+		// HelpBox with rich text formatting support
+		static GUIStyle _HelpBoxRichTextStyle;
+		static public GUIStyle HelpBoxRichTextStyle
+		{
+			get
+			{
+				if(_HelpBoxRichTextStyle == null)
+				{
+					_HelpBoxRichTextStyle = new GUIStyle("HelpBox");
+					_HelpBoxRichTextStyle.richText = true;
+				}
+				return _HelpBoxRichTextStyle;
+			}
+		}
+
+		//================================================================================================================================
+		// Material Blue Header
+		static public GUIStyle _MaterialHeaderStyle;
+		static public GUIStyle MaterialHeaderStyle
+		{
+			get
+			{
+				if(_MaterialHeaderStyle == null)
+				{
+					_MaterialHeaderStyle = new GUIStyle(EditorStyles.label);
+					_MaterialHeaderStyle.fontStyle = FontStyle.Bold;
+					_MaterialHeaderStyle.fontSize = 11;
+					_MaterialHeaderStyle.padding.top = 0;
+					_MaterialHeaderStyle.padding.bottom = 0;
+					_MaterialHeaderStyle.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(75, 128, 255, 255) : new Color32(0, 50, 230, 255);
+					_MaterialHeaderStyle.stretchWidth = true;
+				}
+
+				return _MaterialHeaderStyle;
+			}
+		}
+
+		//================================================================================================================================
+		// Material Header emboss effect
+		static public GUIStyle _MaterialHeaderStyleHighlight;
+		static public GUIStyle MaterialHeaderStyleHighlight
+		{
+			get
+			{
+				if(_MaterialHeaderStyleHighlight == null)
+				{
+					_MaterialHeaderStyleHighlight = new GUIStyle(MaterialHeaderStyle);
+					_MaterialHeaderStyleHighlight.contentOffset = new Vector2(1, 1);
+					_MaterialHeaderStyleHighlight.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(255, 255, 255, 16) : new Color32(255, 255, 255, 32);
+				}
+
+				return _MaterialHeaderStyleHighlight;
+			}
+		}
+
+		//================================================================================================================================
+		// Filled rectangle
+
+		static private GUIStyle _WhiteRectangleStyle;
+
+		static public void DrawRectangle(Rect position, Color color)
+		{
+			var col = GUI.color;
+			GUI.color *= color;
+			DrawRectangle(position);
+			GUI.color = col;
+		}
+		static public void DrawRectangle(Rect position)
+		{
+			if(_WhiteRectangleStyle == null)
+			{
+				_WhiteRectangleStyle = new GUIStyle();
+				_WhiteRectangleStyle.normal.background = EditorGUIUtility.whiteTexture;
+			}
+
+			if(Event.current != null && Event.current.type == EventType.Repaint)
+			{
+				_WhiteRectangleStyle.Draw(position, false, false, false, false);
+			}
+		}
+
+		//================================================================================================================================
+		// Methods
+		//================================================================================================================================
+
+		static public void DrawLine(float height = 2f)
+		{
+			DrawLine(Color.black, height);
+		}
+		static public void DrawLine(Color color, float height = 1f)
+		{
+			Rect position = GUILayoutUtility.GetRect(0f, float.MaxValue, height, height, LineStyle);
+			DrawLine(position, color);
+		}
+		static public void DrawLine(Rect position, Color color)
+		{
+			if(Event.current.type == EventType.Repaint)
+			{
+				Color orgColor = GUI.color;
+				GUI.color = orgColor * color;
+				LineStyle.Draw(position, false, false, false, false);
+				GUI.color = orgColor;
+			}
+		}
+
+		static public void MaterialDrawHeader(GUIContent guiContent)
+		{
+			var rect = GUILayoutUtility.GetRect(guiContent, MaterialHeaderStyle);
+			GUI.Label(rect, guiContent, MaterialHeaderStyleHighlight);
+			GUI.Label(rect, guiContent, MaterialHeaderStyle);
+		}
+
+		static public void MaterialDrawSeparator()
+		{
+			GUILayout.Space(4);
+			if(EditorGUIUtility.isProSkin)
+				DrawLine(new Color(.3f, .3f, .3f, 1f), 1);
+			else
+				DrawLine(new Color(.6f, .6f, .6f, 1f), 1);
+			GUILayout.Space(4);
+		}
+
+		static public void MaterialDrawSeparatorDouble()
+		{
+			GUILayout.Space(6);
+			if(EditorGUIUtility.isProSkin)
+			{
+				DrawLine(new Color(.1f, .1f, .1f, 1f), 1);
+				DrawLine(new Color(.4f, .4f, .4f, 1f), 1);
+			}
+			else
+			{
+				DrawLine(new Color(.3f, .3f, .3f, 1f), 1);
+				DrawLine(new Color(.9f, .9f, .9f, 1f), 1);
+			}
+			GUILayout.Space(6);
+		}
+
+		//built-in console icons, also used in help box
+		static Texture2D warnIcon;
+		static Texture2D infoIcon;
+		static Texture2D errorIcon;
+
+		static public void HelpBoxRichText(Rect position, string message, MessageType msgType)
+		{
+			Texture2D icon = null;
+			switch(msgType)
+			{
+				case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break;
+				case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break;
+				case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break;
+			}
+			EditorGUI.LabelField(position, GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle);
+		}
+
+		static public void HelpBoxRichText(string message, MessageType msgType)
+		{
+			Texture2D icon = null;
+			switch(msgType)
+			{
+				case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break;
+				case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break;
+				case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break;
+			}
+			EditorGUILayout.LabelField(GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle);
+		}
+	}
+}

+ 12 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 26306333afc273640814fd7a7b3968e0
+timeCreated: 1501149213
+licenseType: Store
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ae70c5d833aa6d74e9429910c18b70c6
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 113 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays hdr ab nosp.mat

@@ -0,0 +1,113 @@
+%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: cfxr aura rays hdr ab nosp
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_HDR_BOOST
+  - _CFXR_SINGLE_CHANNEL
+  m_InvalidKeywords:
+  - _
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 4ece64fbaa1a3d14091abf505199104e, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 1
+    - _HdrMultiply: 2
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 4.237095, g: 4.237095, b: 4.237095, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 1 - 1
ActionTowerDefense/Assets/material/rayEffect.mat.meta → ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays hdr ab nosp.mat.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: b87f42822818faf4dacc51c9a1434c8b
+guid: 59b66e1956031654985c136e6927a7d8
 NativeFormatImporter:
   externalObjects: {}
   mainObjectFileID: 2100000

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura rays.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 4ece64fbaa1a3d14091abf505199104e
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 2
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 113 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic hdr ab nosp.mat

@@ -0,0 +1,113 @@
+%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: cfxr aura runic hdr ab nosp
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_HDR_BOOST
+  - _CFXR_SINGLE_CHANNEL
+  m_InvalidKeywords:
+  - _
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: ccb58def4933d4e46b7a1fc023bf6259, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 1
+    - _HdrMultiply: 2
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 4.237095, g: 4.237095, b: 4.237095, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic hdr ab nosp.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cbb6f419bbe7c6e4d9ce7e0322aa267d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr aura runic.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: ccb58def4933d4e46b7a1fc023bf6259
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 2
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 125 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve ab.mat

@@ -0,0 +1,125 @@
+%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: cfxr blood dissolve ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DISSOLVE
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 2800000, guid: 0611efd272757c345a8ded5f38dd3f88, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: a29f55dbea218ca4fbd94deb36027aee, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 0.25
+    - _AmbientIntensity: 0.5
+    - _AmbientLighting: 0
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DebugDissolveTime: 0
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 1
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 2, g: 2, b: 2, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 28dde998c7abf234498a42d0aab38421
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood dissolve.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 0611efd272757c345a8ded5f38dd3f88
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 127 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve ab.mat

@@ -0,0 +1,127 @@
+%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: cfxr blood splash dissolve ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DISSOLVE
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 2800000, guid: 66389432937edf24a943c3944a78bd01, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: b00dc0b0f4174b14aa9e3caa8d9b0859, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 0.25
+    - _AmbientIntensity: 0.5
+    - _AmbientLighting: 0
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DebugDissolveTime: 0
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.5
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 1
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 2, g: 2, b: 2, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ccfff22ed954c6f41ade040a8a7c8f22
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash dissolve.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 66389432937edf24a943c3944a78bd01
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

文件差异内容过多而无法显示
+ 96 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash mesh.asset


+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash mesh.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03b90fa8ed1d4104abc8b7431ab290e6
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 4300000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood splash.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: b00dc0b0f4174b14aa9e3caa8d9b0859
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr blood.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: a29f55dbea218ca4fbd94deb36027aee
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 113 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2 ab.mat

@@ -0,0 +1,113 @@
+%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: cfxr bubble 2 ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _CFXR_SINGLE_CHANNEL
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: e60eda0ccf5343e46b8cb114df9ba50d, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2 ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 21417cf5ab018164f9d28d2e35ad8cb7
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2.png


+ 128 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble 2.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: e60eda0ccf5343e46b8cb114df9ba50d
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 1
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 1
+  - serializedVersion: 3
+    buildTarget: WebGL
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 114 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble ab.mat

@@ -0,0 +1,114 @@
+%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: cfxr bubble ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: c78c2071651a73d4db16ad0155af4dad, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b723f81f440998d42a4d4b393cac870c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 115 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble hdr ab.mat

@@ -0,0 +1,115 @@
+%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: cfxr bubble hdr ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_HDR_BOOST
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: c78c2071651a73d4db16ad0155af4dad, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 1
+    - _HdrMultiply: 10
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble hdr ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 92f3f05a0e6f8e840b8e4367b2c7713b
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr bubble.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: c78c2071651a73d4db16ad0155af4dad
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 64
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club ab.mat

@@ -0,0 +1,119 @@
+%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: cfxr card club ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: d92fa0efcefbc2e4db627980b9abdb4c, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 2
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 3.8792846, g: 3.8792846, b: 3.8792846, a: 0}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a36ba77acbf3644f855c8700b01c682
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card club.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: d92fa0efcefbc2e4db627980b9abdb4c
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond ab.mat

@@ -0,0 +1,119 @@
+%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: cfxr card diamond ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: d8c4f60c4d65b1d40a18db39349c9439, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 2
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 3.8792846, g: 3.8792846, b: 3.8792846, a: 0}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4814d2dd466a574d8746a53e0ab0443
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 162 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond mesh.asset

@@ -0,0 +1,162 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!43 &4300000
+Mesh:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: cfxr card diamond mesh
+  serializedVersion: 9
+  m_SubMeshes:
+  - serializedVersion: 2
+    firstByte: 0
+    indexCount: 21
+    topology: 0
+    baseVertex: 0
+    firstVertex: 0
+    vertexCount: 9
+    localAABB:
+      m_Center: {x: 0, y: 0, z: 0}
+      m_Extent: {x: 0.4921875, y: 0.4921875, z: 0}
+  m_Shapes:
+    vertices: []
+    shapes: []
+    channels: []
+    fullWeights: []
+  m_BindPose: []
+  m_BoneNameHashes: 
+  m_RootBoneNameHash: 0
+  m_MeshCompression: 0
+  m_IsReadable: 1
+  m_KeepVertices: 1
+  m_KeepIndices: 1
+  m_IndexFormat: 0
+  m_IndexBuffer: 010007000500050003000100010008000700070006000500050004000300030002000100010000000800
+  m_VertexData:
+    serializedVersion: 2
+    m_VertexCount: 9
+    m_Channels:
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 3
+    - stream: 0
+      offset: 12
+      format: 0
+      dimension: 3
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 24
+      format: 0
+      dimension: 2
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    m_DataSize: 288
+    _typelessdata: 000040bd0000fc3e000000000000000000000000000080bf0000e83e00007e3f0000fcbe0000803c000000000000000000000000000080bf0000003c0000043f0000fcbe000060bd000000000000000000000000ffff7fbf0000003c0000e43e000090bd0000fcbe000000000000000000000000000080bf0000dc3e0000003c0000803c0000fcbe000000000000000000000000000080bf0000043f0000003c0000203e0000c4be000000000000000000000000000080bf0000283f0000f03d0000fc3e0000c0bd000000000000000000000000000080bf00007e3f0000d03e0000fc3e0000c03c000000000000000000000000000080bf00007e3f0000063f0000c03d0000fc3e000000000000000000000000000080bf0000183f00007e3f
+  m_CompressedMesh:
+    m_Vertices:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_UV:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Normals:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Tangents:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Weights:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_NormalSigns:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_TangentSigns:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_FloatColors:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_BoneIndices:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Triangles:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_UVInfo: 0
+  m_LocalAABB:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0.4921875, y: 0.4921875, z: 0}
+  m_MeshUsageFlags: 0
+  m_BakedConvexCollisionMesh: 
+  m_BakedTriangleCollisionMesh: 
+  m_MeshMetrics[0]: 1
+  m_MeshMetrics[1]: 1
+  m_MeshOptimized: 0
+  m_StreamData:
+    offset: 0
+    size: 0
+    path: 

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond mesh.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 215b94bafc110894881bb24975d050ee
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 4300000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card diamond.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: d8c4f60c4d65b1d40a18db39349c9439
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart ab.mat

@@ -0,0 +1,119 @@
+%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: cfxr card heart ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 38af1cf4cdd0bb047a178879cbb9bf1f, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 2
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 3.8792846, g: 3.8792846, b: 3.8792846, a: 0}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 56dcdb394ebaf9841bfd56db0f1ea05c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card heart.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 38af1cf4cdd0bb047a178879cbb9bf1f
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade ab.mat

@@ -0,0 +1,119 @@
+%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: cfxr card spade ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_RGBA
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 495bf78b2a79c4049ba5feebcc016c39, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 0
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.1
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadePow: 1
+    - _FadeAlongU: 0
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SoftParticlesFadeDistanceFar: 2
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 3.8792846, g: 3.8792846, b: 3.8792846, a: 0}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fdebe8f9090761f44a629442b2b5cf57
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr card spade.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 495bf78b2a79c4049ba5feebcc016c39
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 163 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur add.mat

@@ -0,0 +1,163 @@
+%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: cfxr cloud blur add
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _CFXR_ADDITIVE
+  - _CFXR_DISSOLVE
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _CFXR_OVERLAYTEX_1X
+  - _FADING_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_OVERLAYBLEND_A
+  - _CFXR_SINGLE_CHANNEL
+  - _OVERLAYTEX_OFF
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 2800000, guid: c934e911e8386904398e71d6d79bcb84, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 3f4b2ef884de1f64e90da1a73016c1fd, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 2800000, guid: c934e911e8386904398e71d6d79bcb84, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BacklightTransmittance: 1
+    - _BlendingType: 3
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 2
+    - _CFXR_OVERLAYTEX: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.5
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.35
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 1
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 0.5
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 0
+    - _UseBackLighting: 0
+    - _UseDissolve: 1
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 1
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0.3, g: 0.3, b: 0.5, a: 0.5}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur add.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0eb2f2d564c8c87418392fdf927b2cee
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr cloud blur.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 3f4b2ef884de1f64e90da1a73016c1fd
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 2
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 171 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit emission.mat

@@ -0,0 +1,171 @@
+%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: cfxr debris 3x3 ab lit emission
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_LIGHTING_ALL
+  - _EMISSION
+  - _NORMALMAP
+  m_InvalidKeywords:
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGB
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _OVERLAYTEX_OFF
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 89e84656724ca9045bb4f742113d74be, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: c77bd9e350bb29b47bf79c281d43f52c, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 0.5
+    - _DirectLightingSmoothing: 1
+    - _DirectLightingThreshold: 0.5
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 1
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 1
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 3
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 1
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit emission.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f7ffbf43e28f7014d968ef0d50836718
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 170 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit.mat

@@ -0,0 +1,170 @@
+%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: cfxr debris 3x3 ab lit
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_LIGHTING_ALL
+  - _NORMALMAP
+  m_InvalidKeywords:
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGB
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _OVERLAYTEX_OFF
+  - _SINGLECHANNEL_ON
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 89e84656724ca9045bb4f742113d74be, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: c77bd9e350bb29b47bf79c281d43f52c, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 0.5
+    - _DirectLightingSmoothing: 1
+    - _DirectLightingThreshold: 0.5
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 1
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 3
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 1
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 ab lit.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 21758c48417fe2e43b8845f710749ad7
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 normal.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3 normal.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 89e84656724ca9045bb4f742113d74be
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 1
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris 3x3.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: c77bd9e350bb29b47bf79c281d43f52c
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 166 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab hdr.mat

@@ -0,0 +1,166 @@
+%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: cfxr debris flat unlit 3x3 ab hdr
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_HDR_BOOST
+  - _CFXR_OVERLAYBLEND_RGB
+  m_InvalidKeywords:
+  - _
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYTEX_OFF
+  - _OVERLAYTEX_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: f0fc63002361baf4a903d44ab024b19b, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 1
+    - _HdrMultiply: 6
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 0
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab hdr.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a6b83a8798dc3f748822ba3b239a8728
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 165 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab.mat

@@ -0,0 +1,165 @@
+%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: cfxr debris flat unlit 3x3 ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_OVERLAYBLEND_RGB
+  m_InvalidKeywords:
+  - _
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYTEX_OFF
+  - _OVERLAYTEX_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: f0fc63002361baf4a903d44ab024b19b, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 0
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3 ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e4bb08e9ff5d134fa0d5b0bfe6a2eb9
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris flat unlit 3x3.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: f0fc63002361baf4a903d44ab024b19b
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 170 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 ab lit.mat

@@ -0,0 +1,170 @@
+%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: cfxr debris ice 2x2 ab lit
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_DITHERED_SHADOWS_ON
+  - _CFXR_LIGHTING_ALL
+  - _CFXR_OVERLAYBLEND_RGB
+  - _CFXR_SINGLE_CHANNEL
+  - _EMISSION
+  - _NORMALMAP
+  m_InvalidKeywords:
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_OVERLAYTEX_OFF
+  - _OVERLAYTEX_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 19748a8ba2114654bbdc0e540f47baba, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 5631ad2c0e51148479f2586eb8ce868e, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 1
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.02
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 0.5
+    - _DirectLightingSmoothing: 1
+    - _DirectLightingThreshold: 0.5
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 0.5
+    - _SingleChannel: 1
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 1
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 3
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 1
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0.6754477, b: 1, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 ab lit.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d7db40b0f0e0ac045b7b14e8f37ade3e
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 normal.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2 normal.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 19748a8ba2114654bbdc0e540f47baba
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 1
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris ice 2x2.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 5631ad2c0e51148479f2586eb8ce868e
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 165 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3 ab.mat

@@ -0,0 +1,165 @@
+%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: cfxr debris unlit 3x3 ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  m_InvalidKeywords:
+  - _
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGB
+  - _CFXR_OVERLAYTEX_OFF
+  - _OVERLAYTEX_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: ce355ddea16ad0a41abee534af68b82a, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 0
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 0
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 0
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3 ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0ab14112d95c069419bd90ef39fba9b2
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris unlit 3x3.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: ce355ddea16ad0a41abee534af68b82a
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 512
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 167 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 ab.mat

@@ -0,0 +1,167 @@
+%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: cfxr debris wood 3x3 ab
+  m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d,
+    type: 3}
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _ALPHATEST_ON
+  - _CFXR_LIGHTING_ALL
+  - _NORMALMAP
+  m_InvalidKeywords:
+  - _CFXR_AMBIENT_LIGHTING
+  - _CFXR_DITHERED_SHADOWS_OFF
+  - _CFXR_OVERLAYBLEND_RGB
+  - _CFXR_OVERLAYTEX_OFF
+  - _CFXR_SINGLE_CHANNEL
+  - _OVERLAYTEX_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 2becb40852344304cb0ba0dae53f5dbe, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DissolveTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DistortTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DitherCustom:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _GradientMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 87ce40d5900abcf4e8019548afbdffe8, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OverlayTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SecondColorTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AmbientColor: 1
+    - _AmbientIntensity: 0.75
+    - _AmbientLighting: 1
+    - _BacklightTransmittance: 1
+    - _BlendingType: 0
+    - _BumpScale: 1
+    - _CFXR_DITHERED_SHADOWS: 0
+    - _CFXR_OVERLAYBLEND: 1
+    - _CFXR_OVERLAYTEX: 0
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DirLightScreenAtten: 1
+    - _DirectLightingMix: 0.6
+    - _DirectLightingRamp: 1
+    - _DissolveSmooth: 0.2
+    - _Distort: 0.1
+    - _DoubleDissolve: 0
+    - _DstBlend: 10
+    - _EdgeFadeMax: 2
+    - _EdgeFadeMin: 3
+    - _EdgeFadePow: 2
+    - _FadeAlongU: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrBoost: 0
+    - _HdrMultiply: 0
+    - _IndirectLightingMix: 1
+    - _InvertDissolveTex: 0
+    - _LightingWorldPosStrength: 0.2
+    - _Metallic: 0
+    - _Mode: 0
+    - _OVERLAYBLEND: 0
+    - _OVERLAYTEX: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _ReceivedShadowsStrength: 0.5
+    - _SecondColorSmooth: 0.2
+    - _ShadowStrength: 1
+    - _SingleChannel: 1
+    - _SmoothnessTextureChannel: 0
+    - _SoftParticlesFadeDistanceFar: 1
+    - _SoftParticlesFadeDistanceNear: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 5
+    - _UVDistortionAdd: 0
+    - _UVSec: 0
+    - _UseAlphaClip: 1
+    - _UseBackLighting: 0
+    - _UseDissolve: 0
+    - _UseDissolveOffsetUV: 0
+    - _UseEF: 0
+    - _UseEmission: 0
+    - _UseFB: 0
+    - _UseFontColor: 0
+    - _UseGradientMap: 0
+    - _UseLighting: 3
+    - _UseLightingWorldPosOffset: 0
+    - _UseNormalMap: 1
+    - _UseSP: 0
+    - _UseSecondColor: 0
+    - _UseUV2Distortion: 0
+    - _UseUVDistortion: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _DissolveScroll: {r: 0, g: 0, b: 0, a: 0}
+    - _DistortScrolling: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OverlayTex_Scroll: {r: 0, g: 0, b: 2, a: 2}
+    - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 ab.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7e65055c579688c4d8037b12e2dcd7a1
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 normal.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3 normal.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 2becb40852344304cb0ba0dae53f5dbe
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 1
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3.png


+ 121 - 0
ActionTowerDefense/Assets/Cartoon FX Remaster/CFXR Assets/Graphics/cfxr debris wood 3x3.png.meta

@@ -0,0 +1,121 @@
+fileFormatVersion: 2
+guid: 87ce40d5900abcf4e8019548afbdffe8
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 10
+  textureShape: 1
+  singleChannelComponent: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: WebGL
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 63
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

部分文件因为文件数量过多而无法显示