diff --git a/.gitignore b/.gitignore
index ee7c00e..9667f09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
+/TableData/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
diff --git a/Assets/AddressableResources.meta b/Assets/AddressableResources.meta
new file mode 100644
index 0000000..fd39ba4
--- /dev/null
+++ b/Assets/AddressableResources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8ea9a1164bcc6a84994193f2ccd487e9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/AssetBundleResources.meta b/Assets/AssetBundleResources.meta
index fd39ba4..0f61778 100644
--- a/Assets/AssetBundleResources.meta
+++ b/Assets/AssetBundleResources.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8ea9a1164bcc6a84994193f2ccd487e9
+guid: 0b0ea77eb9eb2d744beabf5cc6b43a4a
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll b/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll
new file mode 100644
index 0000000..88e6002
Binary files /dev/null and b/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll differ
diff --git a/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll.meta b/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll.meta
new file mode 100644
index 0000000..637e999
--- /dev/null
+++ b/Assets/FirstVillain/Plugins/ExcelDataReader.DataSet.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: a597812ee2145744f8a30f98047c44a8
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirstVillain/Plugins/ExcelDataReader.dll b/Assets/FirstVillain/Plugins/ExcelDataReader.dll
new file mode 100644
index 0000000..767f8da
Binary files /dev/null and b/Assets/FirstVillain/Plugins/ExcelDataReader.dll differ
diff --git a/Assets/FirstVillain/Plugins/ExcelDataReader.dll.meta b/Assets/FirstVillain/Plugins/ExcelDataReader.dll.meta
new file mode 100644
index 0000000..54156fc
--- /dev/null
+++ b/Assets/FirstVillain/Plugins/ExcelDataReader.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: d0348492a1cc2224aa979c9b92b9ee65
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll b/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll
index 5c1ce42..34b3c88 100644
Binary files a/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll and b/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll differ
diff --git a/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll.meta b/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll.meta
index 753cac2..da7815c 100644
--- a/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll.meta
+++ b/Assets/FirstVillain/Plugins/FirstVillainLibrary.dll.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 10fcc1f254bccda448b5107530e34db0
+guid: 781f7b14bda3aac42928c2922349f57a
PluginImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll b/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll
new file mode 100644
index 0000000..341d08f
Binary files /dev/null and b/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll differ
diff --git a/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll.meta b/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll.meta
new file mode 100644
index 0000000..6419e0c
--- /dev/null
+++ b/Assets/FirstVillain/Plugins/Newtonsoft.Json.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: ec8d173e794a1ca4da93514d355acb51
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Entities.meta b/Assets/Scripts/Entities.meta
new file mode 100644
index 0000000..92006b0
--- /dev/null
+++ b/Assets/Scripts/Entities.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a05c41fb53c48884dbc7ac0c18c99f1a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Entities/JPropInfoData.cs b/Assets/Scripts/Entities/JPropInfoData.cs
new file mode 100644
index 0000000..66ea694
--- /dev/null
+++ b/Assets/Scripts/Entities/JPropInfoData.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace FirstVillain.Entities
+{
+
+
+ public class JPropInfoData
+ {
+
+ public int Id;
+
+ public float Mass;
+
+ public string PrefabName;
+
+ public int Point;
+ }
+}
diff --git a/Assets/Scripts/Entities/JPropInfoData.cs.meta b/Assets/Scripts/Entities/JPropInfoData.cs.meta
new file mode 100644
index 0000000..980ec32
--- /dev/null
+++ b/Assets/Scripts/Entities/JPropInfoData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b5a775e606fe23a4e94eb74d39ddc144
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Tools.meta b/Assets/Scripts/Tools.meta
new file mode 100644
index 0000000..f5d304e
--- /dev/null
+++ b/Assets/Scripts/Tools.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ee8c2675ff3ba2045a2a66c8de1b6d4f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Tools/Editor.meta b/Assets/Scripts/Tools/Editor.meta
new file mode 100644
index 0000000..ad27139
--- /dev/null
+++ b/Assets/Scripts/Tools/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 052f7e13c2aca714baa4c60f7c0f978c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Tools/Editor/MenuCommands.cs b/Assets/Scripts/Tools/Editor/MenuCommands.cs
new file mode 100644
index 0000000..854b7fd
--- /dev/null
+++ b/Assets/Scripts/Tools/Editor/MenuCommands.cs
@@ -0,0 +1,23 @@
+using FirstVillain.Converter;
+using System;
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using System.IO;
+using System.Reflection;
+using UnityEditor;
+using UnityEngine;
+
+public static class MenuCommands
+{
+ [MenuItem("Tools/Convert/ExcelToJson", priority = 999)]
+ public static void ConvertExcelToJson()
+ {
+ var tablePath = Application.dataPath.Replace("Assets", "TableData");
+ var jsonPath = Path.Combine(Application.dataPath, "AddressableResources", "Tables");
+ var entityPath = Path.Combine(Application.dataPath, "Scripts", "Entities");
+
+ JsonConverter.ExcelToJsonAndClass(tablePath, jsonPath, entityPath);
+
+ AssetDatabase.Refresh();
+ }
+}
diff --git a/Assets/Scripts/Tools/Editor/MenuCommands.cs.meta b/Assets/Scripts/Tools/Editor/MenuCommands.cs.meta
new file mode 100644
index 0000000..1b8e12a
--- /dev/null
+++ b/Assets/Scripts/Tools/Editor/MenuCommands.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 10139298af073df49ab28ebb7ef4986c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Tools/TableManager.cs b/Assets/Scripts/Tools/TableManager.cs
new file mode 100644
index 0000000..a6e9596
--- /dev/null
+++ b/Assets/Scripts/Tools/TableManager.cs
@@ -0,0 +1,39 @@
+using FirstVillain.Entities;
+using FirstVillain.Singleton;
+using Newtonsoft.Json;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+//±ÔÄ¢ : Å×À̺íÀ» ÇÊ¿äÇÒ ¶§¸¶´Ù ·ÎµåÇؼ »ç¿ëÇÑ´Ù.
+public class TableManager : UnitySingleton
+{
+ private void LoadTable(E_TABLE table, Action> result)
+ {
+ AddressableManager.Instance.LoadAssetAsync(table.ToString(), asset => {
+ result(JsonConvert.DeserializeObject>(asset.text));
+ });
+ }
+
+ //Å×ÀÌºíº°·Î Å×ÀÌºí °¡Á®¿À´Â ÇÔ¼ö¸¦ °è¼Ó Ãß°¡ÇØ Áà¾ßÇÏ´Â ´ÜÁ¡...
+ #region Prop
+ public void GetPropInfoById(E_TABLE table, int id, Action result)
+ {
+ LoadTable(table, loaded =>
+ {
+ var list = loaded.list;
+ result(list.Find(arg => arg.Id == id));
+ });
+ }
+
+ public void GetPropInfoList(E_TABLE table, Action> result)
+ {
+ LoadTable(table, loaded =>
+ {
+ result(loaded.list);
+ });
+ }
+
+ #endregion Prop
+}
diff --git a/Assets/Scripts/Tools/TableManager.cs.meta b/Assets/Scripts/Tools/TableManager.cs.meta
new file mode 100644
index 0000000..33193e7
--- /dev/null
+++ b/Assets/Scripts/Tools/TableManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5bc6fbba331398242bb897fd80bf8c47
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: