10 changed files with 185 additions and 23 deletions
@ -0,0 +1,51 @@
|
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEditor; |
||||
using UnityEngine; |
||||
|
||||
namespace Tools.ExcelResolver.Editor |
||||
{ |
||||
public sealed partial class ExcelResolverEditorWindow |
||||
{ |
||||
private void WriteUtilSO(string path, Type dataSOType, List<ScriptableObject> assets, ClassCodeData classCodeData) |
||||
{ |
||||
var utilName = $"{classCodeData.className}Util"; |
||||
var utilPath = $"{path}/_{utilName}.asset"; |
||||
|
||||
Type utilType = ExcelResolverUtil.GetOrCacheTypeByName(utilName); |
||||
|
||||
var instance = AssetDatabase.LoadAssetAtPath<ScriptableObject>(utilPath); |
||||
if (instance == null) |
||||
{ |
||||
instance = ScriptableObject.CreateInstance(utilName); |
||||
AssetDatabase.CreateAsset(instance, utilPath); |
||||
} |
||||
|
||||
switch (classCodeData.tableType) |
||||
{ |
||||
case TableType.SingleKeyTable: |
||||
var keyField = classCodeData.keyField[0]; |
||||
var dict = (IDictionary)Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(keyField.type.RealType, dataSOType)); |
||||
|
||||
var keyFieldInfo = dataSOType.GetField(keyField.varName); |
||||
foreach (var asset in assets) |
||||
{ |
||||
var key = keyFieldInfo.GetValue(asset); |
||||
dict[key] = asset; |
||||
} |
||||
instance.GetType().GetField("Data").SetValue(instance, dict); |
||||
break; |
||||
case TableType.UnionMultiKeyTable: |
||||
break; |
||||
case TableType.MultiKeyTable: |
||||
break; |
||||
case TableType.NotKetTable: |
||||
break; |
||||
case TableType.ColumnTable: |
||||
break; |
||||
} |
||||
EditorUtility.SetDirty(instance); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 3b78262c18a44a04af02c750d7628d02 |
||||
timeCreated: 1737914896 |
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2 |
||||
guid: c7b7eb46a7ca8244890947b043ee79ab |
||||
guid: fd4758da888e8054b897780d3fa8f13a |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 11400000 |
@ -0,0 +1,95 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!114 &11400000 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 0} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 0b8ec7437f31db141b138472f0c2a3aa, type: 3} |
||||
m_Name: _HeroUtil |
||||
m_EditorClassIdentifier: |
||||
serializationData: |
||||
SerializedFormat: 2 |
||||
SerializedBytes: |
||||
ReferencedUnityObjects: |
||||
- {fileID: 11400000, guid: 3b98756cd197195498b14b5e67935cbe, type: 2} |
||||
- {fileID: 11400000, guid: cdde19489f16dce429041c1d6e207864, type: 2} |
||||
- {fileID: 11400000, guid: 934bc10c06f0592419baf474987cc0a7, type: 2} |
||||
- {fileID: 11400000, guid: fd4758da888e8054b897780d3fa8f13a, type: 2} |
||||
SerializedBytesString: |
||||
Prefab: {fileID: 0} |
||||
PrefabModificationsReferencedUnityObjects: [] |
||||
PrefabModifications: [] |
||||
SerializationNodes: |
||||
- Name: Data |
||||
Entry: 7 |
||||
Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[Tools.ExcelResolver.Hero, |
||||
Assembly-CSharp]], mscorlib |
||||
- Name: comparer |
||||
Entry: 7 |
||||
Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, |
||||
mscorlib]], mscorlib |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
||||
- Name: |
||||
Entry: 12 |
||||
Data: 4 |
||||
- Name: |
||||
Entry: 7 |
||||
Data: |
||||
- Name: $k |
||||
Entry: 3 |
||||
Data: 1 |
||||
- Name: $v |
||||
Entry: 10 |
||||
Data: 0 |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
||||
- Name: |
||||
Entry: 7 |
||||
Data: |
||||
- Name: $k |
||||
Entry: 3 |
||||
Data: 2 |
||||
- Name: $v |
||||
Entry: 10 |
||||
Data: 1 |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
||||
- Name: |
||||
Entry: 7 |
||||
Data: |
||||
- Name: $k |
||||
Entry: 3 |
||||
Data: 3 |
||||
- Name: $v |
||||
Entry: 10 |
||||
Data: 2 |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
||||
- Name: |
||||
Entry: 7 |
||||
Data: |
||||
- Name: $k |
||||
Entry: 3 |
||||
Data: 6 |
||||
- Name: $v |
||||
Entry: 10 |
||||
Data: 3 |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
||||
- Name: |
||||
Entry: 13 |
||||
Data: |
||||
- Name: |
||||
Entry: 8 |
||||
Data: |
Loading…
Reference in new issue