Browse Source

生成SO代码

master
coffee 6 months ago
parent
commit
89ee74af92
  1. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit.meta
  2. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base.meta
  3. 31
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs
  4. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs.meta
  5. 7
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs
  6. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs.meta
  7. 9
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs
  8. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs.meta
  9. 8
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs
  10. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs.meta
  11. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl.meta
  12. 43
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs
  13. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs.meta
  14. 17
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs
  15. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs.meta
  16. 26
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs
  17. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs.meta
  18. 31
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs
  19. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs.meta
  20. 10
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs
  21. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs.meta
  22. 28
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs
  23. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs.meta
  24. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer.meta
  25. 17
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs
  26. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs.meta
  27. 55
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ClassCodeData.cs
  28. 3
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ClassCodeData.cs.meta
  29. 46
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
  30. 67
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs
  31. 49
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs
  32. 3
      Assets/Unity-Tools/Core/ExcelResolver/Interface.meta
  33. 7
      Assets/Unity-Tools/Core/Util/TypeUtil.cs
  34. 5
      ProjectSettings/ProjectSettings.asset

3
Assets/Unity-Tools/Core/Editor/CodeGenKit.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5cd35fec940c4cb89f79b6c66901008e
timeCreated: 1735992114

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 0fa6f94e2e704e0faeac90ef8e185f2f
timeCreated: 1735992174

31
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs

@ -1,31 +0,0 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public abstract class CodeScope : ICodeScope
{
public bool Semicolon { get; set; }
public virtual void Gen(ICodeWriter writer)
{
GenFirstLine(writer);
new OpenBraceCode().Gen(writer);
writer.IndentCount++;
foreach (var code in Codes)
{
code.Gen(writer);
}
writer.IndentCount--;
new CloseBraceCode(Semicolon).Gen(writer);
}
protected abstract void GenFirstLine(ICodeWriter writer);
public List<ICode> Codes { get; } = new();
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 737f0286aef24e158bf957af85f06c15
timeCreated: 1735992259

7
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs

@ -1,7 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public interface ICode
{
void Gen(ICodeWriter writer);
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5b930fc6d1d247949af8177d796c4265
timeCreated: 1735992194

9
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs

@ -1,9 +0,0 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public interface ICodeScope : ICode
{
List<ICode> Codes { get; }
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 249dc2e076114187958bc580f2455fec
timeCreated: 1735992236

8
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs

@ -1,8 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public interface ICodeWriter
{
int IndentCount { get; set; }
void WriteLine(string code = null);
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 96536dd301a640eba7ff5c8d8a597663
timeCreated: 1735992216

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 2362665fe861427fb3d22bfc213e7543
timeCreated: 1735992283

43
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs

@ -1,43 +0,0 @@
using System;
namespace Tools.Editor.CodeGenKit
{
public sealed class ClassScope : CodeScope
{
private readonly bool _isPartial;
private readonly bool _isStatic;
private readonly bool _isSealed;
private readonly string _parentClassName;
private readonly string _className;
public bool IsStatic => _isStatic;
public ClassScope(bool isPartial, bool isStatic, bool isSealed, string className, string parentClassName = "")
{
_isPartial = isPartial;
_isStatic = isStatic;
_isSealed = isSealed;
_parentClassName = parentClassName;
_className = className;
}
protected override void GenFirstLine(ICodeWriter writer)
{
writer.WriteLine(
$"public {(_isSealed ? "sealed " : string.Empty)}{(_isStatic ? "static " : string.Empty)}{(_isPartial ? "partial " : string.Empty)}class {_className}{(string.IsNullOrEmpty(_parentClassName) ? string.Empty : " : " + _parentClassName)}");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Class(this ICodeScope self, string className, bool isPartial, bool isStatic,
bool isSealed,
string parentClassName = "", Action<ClassScope> classScopeSetting = null)
{
var classScope = new ClassScope(isPartial, isStatic, isSealed, className, parentClassName);
classScopeSetting?.Invoke(classScope);
self.Codes.Add(classScope);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 87bdee7f495f44fdab681a299935d76e
timeCreated: 1735993249

17
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs

@ -1,17 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class CloseBraceCode : ICode
{
private readonly bool _semicolon;
public CloseBraceCode(bool semicolon)
{
_semicolon = semicolon;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine("}" + (_semicolon ? ";" : string.Empty));
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 21a1d549d9fc4c5893e8b5454e43e5af
timeCreated: 1735992305

26
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs

@ -1,26 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class CustomCode : ICode
{
private readonly string _content;
public CustomCode(string content)
{
_content = content;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine(_content);
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Custom(this ICodeScope self, string content)
{
self.Codes.Add(new CustomCode(content));
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: d6858c0550a54e8d9c5cf7065bf582a1
timeCreated: 1735992474

31
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs

@ -1,31 +0,0 @@
using System;
namespace Tools.Editor.CodeGenKit
{
public sealed class NameSpaceScope : CodeScope
{
private readonly string _nameSpace;
public NameSpaceScope(string nameSpace)
{
_nameSpace = nameSpace;
}
protected override void GenFirstLine(ICodeWriter writer)
{
writer.WriteLine($"namespace {_nameSpace}");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope NameSpace(this ICodeScope self, string nameSpace,
Action<NameSpaceScope> nameSpaceSetting = null)
{
var nameSpaceCode = new NameSpaceScope(nameSpace);
nameSpaceSetting?.Invoke(nameSpaceCode);
self.Codes.Add(nameSpaceCode);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5fe126821e724abaaaf317cceac9d41b
timeCreated: 1735992680

10
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs

@ -1,10 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class OpenBraceCode : ICode
{
public void Gen(ICodeWriter writer)
{
writer.WriteLine("{");
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 3702874220a7472bb4f3f83980744f72
timeCreated: 1735992289

28
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs

@ -1,28 +0,0 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class UsingCode : ICode
{
private readonly string _nameSpace;
public UsingCode(string nameSpace)
{
_nameSpace = nameSpace;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine($"using {_nameSpace};");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Using(this ICodeScope self, string nameSpace)
{
var code = new UsingCode(nameSpace);
self.Codes.Add(code);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 299e6452df21426183f1622b56cfdd85
timeCreated: 1735992567

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 541182aef19445418568c1693eda34de
timeCreated: 1735992180

17
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs

@ -1,17 +0,0 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public sealed class RootCode : ICodeScope
{
public void Gen(ICodeWriter writer)
{
foreach (var code in Codes)
{
code.Gen(writer);
}
}
public List<ICode> Codes { get; } = new();
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 26b647313d594f05b7ca562f2b34ce56
timeCreated: 1735992153

55
Assets/Unity-Tools/Core/ExcelResolver/Editor/ClassCodeData.cs

@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using Sirenix.Utilities;
namespace Tools.ExcelResolver.Editor
{
internal class ClassCodeData : IDisposable
{
public TableType tableType;
public string className;
public FieldData[] fields;
public int[] keyIndex;
public ClassCodeData(TableType tableType, string className)
{
this.tableType = tableType;
this.className = $"{char.ToUpper(className[0])}{className.Substring(1)}";
}
public void Dispose()
{
className = null;
fields.ForEach(field => field.Dispose());
fields = null;
keyIndex = null;
}
}
internal class FieldData : IDisposable
{
public string name;
public Type type;
public string info;
public string description;
public string path;
public void Dispose()
{
name = null;
type = null;
info = null;
description = null;
path = null;
}
}
internal enum TableType
{
SingleKeyTable, // 单主键表
UnionMultiKeyTable, // 多主键表(联合索引)
MultiKeyTable, // 多主键表(独立索引)
NotKetTable, // 无主键表
ColumnTable, // 纵表
}
}

3
Assets/Unity-Tools/Core/ExcelResolver/Editor/ClassCodeData.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: aa78605805cf49e0aa0df50ccac8bb9d
timeCreated: 1736054922

46
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using OfficeOpenXml; using OfficeOpenXml;
@ -9,16 +10,6 @@ namespace Tools.ExcelResolver.Editor
{ {
public sealed partial class ExcelResolverEditorWindow public sealed partial class ExcelResolverEditorWindow
{ {
private enum TableType
{
SingleKeyTable, // 单主键表
UnionMultiKeyTable, // 多主键表(联合索引)
MultiKeyTable, // 多主键表(独立索引)
NotKetTable, // 无主键表
ColumnTable, // 纵表
}
private void ReadExcel() private void ReadExcel()
{ {
// 获取Excel文件 // 获取Excel文件
@ -37,18 +28,24 @@ namespace Tools.ExcelResolver.Editor
continue; continue;
} }
var type = CheckTableType(worksheet); var classCodeData = new ClassCodeData(CheckTableType(worksheet, out var keyIndex), excelFile.Name[..^5])
GetFieldData(worksheet); {
fields = GetFieldData(worksheet),
keyIndex = keyIndex
};
WriteSOCode(classCodeData);
} }
} }
private TableType CheckTableType(ExcelWorksheet worksheet) private TableType CheckTableType(ExcelWorksheet worksheet, out int[] keyIndex)
{ {
var startColumn = worksheet.Dimension.Start.Column; // 起始列 var startColumn = worksheet.Dimension.Start.Column; // 起始列
var endColumn = worksheet.Dimension.End.Column; // 结束列 var endColumn = worksheet.Dimension.End.Column; // 结束列
string config = worksheet.Cells[1, 1].Text; string config = worksheet.Cells[1, 1].Text;
var type = TableType.SingleKeyTable; var type = TableType.SingleKeyTable;
keyIndex = null;
if (config.Contains("SingleKeyTable")) if (config.Contains("SingleKeyTable"))
{ {
type = TableType.SingleKeyTable; type = TableType.SingleKeyTable;
@ -119,19 +116,24 @@ namespace Tools.ExcelResolver.Editor
} }
} }
private void GetFieldData(ExcelWorksheet worksheet) private FieldData[] GetFieldData(ExcelWorksheet worksheet)
{ {
var startColumn = worksheet.Dimension.Start.Column; // 起始列 List<FieldData> fieldDatas = new List<FieldData>();
var endColumn = worksheet.Dimension.End.Column; // 结束列 var endColumn = worksheet.Dimension.End.Column;
Debug.Log(endColumn);
for (int col = 2; col <= endColumn; col++) for (int col = 2; col <= endColumn; col++)
{ {
FieldData fieldData = new FieldData(); FieldData fieldData = new FieldData
fieldData.name = worksheet.Cells[2, col].Text; {
fieldData.description = worksheet.Cells[4, col].Text; name = worksheet.Cells[2, col].Text,
fieldData.type = TypeUtil.GetType(worksheet.Cells[3, col].Text); type = TypeUtil.GetTypeByString(worksheet.Cells[3, col].Text),
Debug.Log(fieldData.type); info = worksheet.Cells[4, col].Text,
description = worksheet.Cells[5, col].Text,
path = worksheet.Cells[6, col].Text,
};
fieldDatas.Add(fieldData);
} }
return fieldDatas.ToArray();
} }
} }
} }

67
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs

@ -1,33 +1,62 @@
using System; using System;
using Tools.Editor.CodeGenKit; using System.CodeDom;
/* 使用CodeCompileUnit需要将Edit->Project Settings->Player->Other Settings->Api Compatibility Level改为.NET 4.x(或.NET Framework) */
namespace Tools.ExcelResolver.Editor namespace Tools.ExcelResolver.Editor
{ {
internal class FieldData public sealed partial class ExcelResolverEditorWindow
{ {
public string name; private void WriteDataCode(ClassCodeData classCodeData)
public Type type; {
public string description; string path = $"{excelResolverConfig.CodePathRoot}/{classCodeData.className}.cs";
CodeCompileUnit compileUnit = new CodeCompileUnit();
CodeNamespace codeNamespace = new CodeNamespace(excelResolverConfig.GenerateDataClassNameSpace);
compileUnit.Namespaces.Add(codeNamespace);
string[] classImports = new string[]
{
"System",
"System.Collections",
"System.Collections.Generic",
"UnityEngine",
};
foreach (var import in classImports)
{
codeNamespace.Imports.Add(new CodeNamespaceImport(import));
} }
public sealed partial class ExcelResolverEditorWindow CodeTypeDeclaration classType = new CodeTypeDeclaration(classCodeData.className)
{ {
private int[] keyIndex; IsClass = true,
TypeAttributes = System.Reflection.TypeAttributes.Public,
private void WriteTypeCode() CustomAttributes = new CodeAttributeDeclarationCollection()
{ {
var code = new RootCode(); new CodeAttributeDeclaration("Serializable")
code.Custom("// 代码使用工具生成,请勿随意修改"); }
code.Using("System"); };
code.Using("System.Collections.Generic");
code.Using("System.Linq");
code.NameSpace(excelResolverConfig.GenerateDataClassNameSpace, cope => // switch (classCodeData.tableType)
{ // {
cope.Custom("[Serializable]"); // case TableType.SingleKeyTable:
// cope.Class($"") // classType.BaseTypes.Add(new CodeTypeReference("Dictionary<int, " + classCodeData.className + ">"));
}); // break;
// case TableType.UnionMultiKeyTable:
// classType.BaseTypes.Add(new CodeTypeReference("Dictionary<string, " + classCodeData.className + ">"));
// break;
// case TableType.MultiKeyTable:
// classType.BaseTypes.Add(new CodeTypeReference("Dictionary<int, " + classCodeData.className + ">"));
// break;
// case TableType.NotKetTable:
// classType.BaseTypes.Add(new CodeTypeReference("List<" + classCodeData.className + ">"));
// break;
// case TableType.ColumnTable:
// classType.BaseTypes.Add(new CodeTypeReference("Dictionary<int, " + classCodeData.className + ">"));
// break;
// default:
// throw new ArgumentOutOfRangeException();
// }
} }
} }
} }

49
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs

@ -1,7 +1,54 @@
namespace Tools.ExcelResolver.Editor using System.CodeDom;
using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CSharp;
namespace Tools.ExcelResolver.Editor
{ {
public sealed partial class ExcelResolverEditorWindow public sealed partial class ExcelResolverEditorWindow
{ {
private void WriteSOCode(ClassCodeData classCodeData)
{
string outputPath = $"{excelResolverConfig.CodePathRoot}/{classCodeData.className}.cs";
CodeCompileUnit compileUnit = new CodeCompileUnit();
CodeNamespace codeNamespace = new CodeNamespace(excelResolverConfig.GenerateDataClassNameSpace);
compileUnit.Namespaces.Add(codeNamespace);
string[] classImports = new string[]
{
"System",
"System.Collections",
"System.Collections.Generic",
"UnityEngine",
};
foreach (var import in classImports)
{
codeNamespace.Imports.Add(new CodeNamespaceImport(import));
}
CodeTypeDeclaration classType = new CodeTypeDeclaration(classCodeData.className)
{
IsClass = true,
TypeAttributes = System.Reflection.TypeAttributes.Public,
BaseTypes =
{
new CodeTypeReference("ScriptableObject")
}
};
codeNamespace.Types.Add(classType);
CodeGeneratorOptions options = new CodeGeneratorOptions
{
BracingStyle = "C",
BlankLinesBetweenMembers = false,
VerbatimOrder = true,
};
using (StreamWriter writer = new StreamWriter(outputPath))
{
CSharpCodeProvider provider = new CSharpCodeProvider();
provider.GenerateCodeFromCompileUnit(compileUnit, writer, options);
}
}
} }
} }

3
Assets/Unity-Tools/Core/ExcelResolver/Interface.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0d117c752ed842e2a1350b2a36b0cc00
timeCreated: 1736058450

7
Assets/Unity-Tools/Core/Util/TypeUtil.cs

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine;
namespace Tools namespace Tools
{ {
@ -13,16 +14,22 @@ namespace Tools
"float" => typeof(float), "float" => typeof(float),
"string" => typeof(string), "string" => typeof(string),
"bool" => typeof(bool), "bool" => typeof(bool),
"Vector2" => typeof(Vector2),
"Vector3" => typeof(Vector3),
"List<int>" => typeof(List<int>), "List<int>" => typeof(List<int>),
"List<float>" => typeof(List<float>), "List<float>" => typeof(List<float>),
"List<string>" => typeof(List<string>), "List<string>" => typeof(List<string>),
"List<bool>" => typeof(List<bool>), "List<bool>" => typeof(List<bool>),
"List<Vector2>" => typeof(List<Vector2>),
"List<Vector3>" => typeof(List<Vector3>),
"List<List<int>>" => typeof(List<List<int>>), "List<List<int>>" => typeof(List<List<int>>),
"List<List<float>>" => typeof(List<List<float>>), "List<List<float>>" => typeof(List<List<float>>),
"List<List<string>>" => typeof(List<List<string>>), "List<List<string>>" => typeof(List<List<string>>),
"List<List<bool>>" => typeof(List<List<bool>>), "List<List<bool>>" => typeof(List<List<bool>>),
"List<List<Vector2>>" => typeof(List<List<Vector2>>),
"List<List<Vector3>>" => typeof(List<List<Vector3>>),
"enum" => typeof(Enum), "enum" => typeof(Enum),
"DateTime" => typeof(DateTime), "DateTime" => typeof(DateTime),

5
ProjectSettings/ProjectSettings.asset

@ -838,6 +838,7 @@ PlayerSettings:
platformArchitecture: {} platformArchitecture: {}
scriptingBackend: scriptingBackend:
Android: 1 Android: 1
Standalone: 0
il2cppCompilerConfiguration: {} il2cppCompilerConfiguration: {}
il2cppCodeGeneration: {} il2cppCodeGeneration: {}
il2cppStacktraceInformation: {} il2cppStacktraceInformation: {}
@ -866,7 +867,7 @@ PlayerSettings:
gcIncremental: 1 gcIncremental: 1
gcWBarrierValidation: 0 gcWBarrierValidation: 0
apiCompatibilityLevelPerPlatform: {} apiCompatibilityLevelPerPlatform: {}
editorAssembliesCompatibilityLevel: 1 editorAssembliesCompatibilityLevel: 2
m_RenderingPath: 1 m_RenderingPath: 1
m_MobileRenderingPath: 1 m_MobileRenderingPath: 1
metroPackageName: ToolProject metroPackageName: ToolProject
@ -943,7 +944,7 @@ PlayerSettings:
hmiCpuConfiguration: hmiCpuConfiguration:
hmiLogStartupTiming: 0 hmiLogStartupTiming: 0
qnxGraphicConfPath: qnxGraphicConfPath:
apiCompatibilityLevel: 6 apiCompatibilityLevel: 3
captureStartupLogs: {} captureStartupLogs: {}
activeInputHandler: 2 activeInputHandler: 2
windowsGamepadBackendHint: 0 windowsGamepadBackendHint: 0

Loading…
Cancel
Save