diff options
Diffstat (limited to 'marching/Assets/Scripts')
19 files changed, 346 insertions, 54 deletions
diff --git a/marching/Assets/Scripts/Buffs/Buff.cs b/marching/Assets/Scripts/Buffs/Buff.cs index 2320176..430fa70 100644 --- a/marching/Assets/Scripts/Buffs/Buff.cs +++ b/marching/Assets/Scripts/Buffs/Buff.cs @@ -1,6 +1,8 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using WK; +using WK.Data; /// <summary> /// Buff结构 @@ -8,7 +10,7 @@ using UnityEngine; public abstract class Buff { // 元数据 - public BuffDef metadata; + public BuffMetadata metadata; // buff效果器 public BuffEfectorBase effector; diff --git a/marching/Assets/Scripts/Buffs/BuffDef.cs b/marching/Assets/Scripts/Buffs/BuffDef.cs deleted file mode 100644 index 835589b..0000000 --- a/marching/Assets/Scripts/Buffs/BuffDef.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class BuffDef -{ - - public string uid; - - public string name_key; - - public string icon; - -} diff --git a/marching/Assets/Scripts/Buffs/BuffMetadata.cs b/marching/Assets/Scripts/Buffs/BuffMetadata.cs new file mode 100644 index 0000000..de7c391 --- /dev/null +++ b/marching/Assets/Scripts/Buffs/BuffMetadata.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace WK.Data +{ + + public class BuffMetadata + { + + public string uid; + + public string name_key; + + public string icon; + + // 暂留数据 + public string extra_data; + + } + +} diff --git a/marching/Assets/Scripts/Buffs/BuffDef.cs.meta b/marching/Assets/Scripts/Buffs/BuffMetadata.cs.meta index 2fbd7ff..2fbd7ff 100644 --- a/marching/Assets/Scripts/Buffs/BuffDef.cs.meta +++ b/marching/Assets/Scripts/Buffs/BuffMetadata.cs.meta diff --git a/marching/Assets/Scripts/Data.meta b/marching/Assets/Scripts/Data.meta new file mode 100644 index 0000000..3622fa8 --- /dev/null +++ b/marching/Assets/Scripts/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9dac4e9417c4a4343926c0fd48551b07 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/marching/Assets/Scripts/Data/DataManager.cs b/marching/Assets/Scripts/Data/DataManager.cs new file mode 100644 index 0000000..e56c80b --- /dev/null +++ b/marching/Assets/Scripts/Data/DataManager.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.VisualScripting; +using UnityEngine; + +namespace WK.Data +{ + + public class DataManager : Singleton<DataManager> + { + + private Dictionary<string/*uid*/, CharacterStatsMetadata> m_CharacterStatsMetadata; + private Dictionary<string/*uid*/, BuffMetadata> m_BuffMetadata; + + public CharacterStatsMetadata GetCharacterStats(string uid) + { + CharacterStatsMetadata metadata; + if(m_CharacterStatsMetadata.TryGetValue(uid, out metadata)) + { + return metadata; + } + return null; + } + + public BuffMetadata GetBuffMetadata(string uid) + { + BuffMetadata metadata; + if(m_BuffMetadata.TryGetValue(uid, out metadata)) + { + return metadata; + } + return null; + } + + } + +}
\ No newline at end of file diff --git a/marching/Assets/Scripts/Data/DataManager.cs.meta b/marching/Assets/Scripts/Data/DataManager.cs.meta new file mode 100644 index 0000000..e2f87df --- /dev/null +++ b/marching/Assets/Scripts/Data/DataManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 426d62970250f0f41b68370ced13105b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/marching/Assets/Scripts/Managers/ResourceManager.cs b/marching/Assets/Scripts/Managers/ResourceManager.cs new file mode 100644 index 0000000..4b318ca --- /dev/null +++ b/marching/Assets/Scripts/Managers/ResourceManager.cs @@ -0,0 +1,32 @@ +using System.Collections; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine; + +namespace WK +{ + + public class ResourceManager : Singleton<ResourceManager> + { + + // 资源根目录是Assets/Bundle/,后续可能会把部分资源移动到streamingAssets目录 + public const string kAssetRoot = "Assets/Bundle/"; + + public T LoadAsset<T>(string relativePath) where T : UnityEngine.Object + { +#if UNITY_EDITOR + string path = kAssetRoot + relativePath; + T obj = AssetDatabase.LoadAssetAtPath(path, typeof(T)) as T; + return obj; +#else + return null ; +#endif + } + + + + } + +} diff --git a/marching/Assets/Scripts/Managers/ResourceManager.cs.meta b/marching/Assets/Scripts/Managers/ResourceManager.cs.meta new file mode 100644 index 0000000..b3c985b --- /dev/null +++ b/marching/Assets/Scripts/Managers/ResourceManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 928e39b9448c1c74caa349620602617b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/marching/Assets/Scripts/Physics/PhysicsManager.cs b/marching/Assets/Scripts/Physics/PhysicsManager.cs index 0225443..279ebbb 100644 --- a/marching/Assets/Scripts/Physics/PhysicsManager.cs +++ b/marching/Assets/Scripts/Physics/PhysicsManager.cs @@ -8,7 +8,6 @@ public enum ColliderType { Collider, Hurtbox, - //Hitbox, } public partial class PhysicsManager : Singleton<PhysicsManager> diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs index 22c2f4e..d5fd913 100644 --- a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs +++ b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs @@ -1,7 +1,6 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -using static UnityEditor.Rendering.CameraUI; /// <summary> /// 碰撞检测 diff --git a/marching/Assets/Scripts/Stats/CharacterStatsBase.cs b/marching/Assets/Scripts/Stats/CharacterStatsBase.cs index a2e5fe2..b4869cb 100644 --- a/marching/Assets/Scripts/Stats/CharacterStatsBase.cs +++ b/marching/Assets/Scripts/Stats/CharacterStatsBase.cs @@ -1,16 +1,58 @@ using System.Collections; using System.Collections.Generic; +using System.Runtime.InteropServices; using UnityEngine; +using WK.Data; -/// <summary> -/// 角色基础属性 -/// </summary> -public abstract class CharacterStatsBase +namespace WK { + + [System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)] + public struct CharacterStatsValue + { + [System.Runtime.InteropServices.FieldOffset(0)] + public int i; + [System.Runtime.InteropServices.FieldOffset(0)] + public float f; + [System.Runtime.InteropServices.FieldOffset(0)] + public bool boolean; + [System.Runtime.InteropServices.FieldOffset(0)] + public char c; + [System.Runtime.InteropServices.FieldOffset(0)] + public Vector2 v2; + [System.Runtime.InteropServices.FieldOffset(0)] + public Vector3 v3; + [System.Runtime.InteropServices.FieldOffset(0)] + public Vector4 v4; + [System.Runtime.InteropServices.FieldOffset(0)] + public Color color; + } + + /// <summary> - /// 属性唯一标识 + /// 运行时角色基础属性 /// </summary> - public string UID; + public abstract class CharacterStats + { + + /// <summary> + /// 表格数据 + /// </summary> + public CharacterStatsMetadata metadata; + + /// <summary> + /// 当前属性值 + /// </summary> + public CharacterStatsValue value; + + public string uid + { + get + { + return metadata.uid; + } + } + } } diff --git a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs b/marching/Assets/Scripts/Stats/CharacterStatsDef.cs deleted file mode 100644 index 87eeecd..0000000 --- a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class CharacterStatsDef -{ - public string uid; - - public string name_key; - - public int type; - -} diff --git a/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs new file mode 100644 index 0000000..3b0b13b --- /dev/null +++ b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace WK.Data +{ + + /// <summary> + /// 角色基础属性元数据 + /// </summary> + public class CharacterStatsMetadata + { + public string uid; + + public string name_key; + + public int type; + + // 暂留数据 + public string extra_data; + } + +} diff --git a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs.meta b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs.meta index a8d9a08..a8d9a08 100644 --- a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs.meta +++ b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs.meta diff --git a/marching/Assets/Scripts/Tests.meta b/marching/Assets/Scripts/Tests.meta new file mode 100644 index 0000000..3219e35 --- /dev/null +++ b/marching/Assets/Scripts/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6e9b28f26f6aee49be2a1c0676abaf1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/marching/Assets/Scripts/Tests/TestCSV.cs b/marching/Assets/Scripts/Tests/TestCSV.cs new file mode 100644 index 0000000..068d235 --- /dev/null +++ b/marching/Assets/Scripts/Tests/TestCSV.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Resources; +using System.Text; +using UnityEngine; +using yutokun; + +public class TestCSV : MonoBehaviour +{ + #region 搴忓垪鍖 + + #endregion + + #region 鍏叡瀛楁 + + #endregion + + #region 绉佹湁瀛楁 + + #endregion + + private void OnEnable() + { + // 绉佹湁瀛楁璧嬪 + + // 鍏叡瀛楁璧嬪 + + // 鍒濆鍖 + + TextAsset text = WK.ResourceManager.Instance.LoadAsset<TextAsset>("metadata/default_stats.csv"); + + var sheet = CSVParser.LoadFromString(text.text); + + var styled = new StringBuilder(); + foreach (var row in sheet) + { + styled.Append("| "); + + if (row[0][0] == '#') + continue; + + foreach (var cell in row) + { + styled.Append(cell); + styled.Append(" | "); + } + + styled.AppendLine(); + } + + Debug.Log(styled.ToString()); // Unity + Console.WriteLine(styled.ToString()); // C# + + } + +} diff --git a/marching/Assets/Scripts/Tests/TestCSV.cs.meta b/marching/Assets/Scripts/Tests/TestCSV.cs.meta new file mode 100644 index 0000000..48e6de1 --- /dev/null +++ b/marching/Assets/Scripts/Tests/TestCSV.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e9d405b1bd5e604db9cc8638d465aaf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs b/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs index 4a39895..950b7ae 100644 --- a/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs +++ b/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs @@ -3,35 +3,92 @@ using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; +using WK.Data; +using WK; -public class CharacterInfo +namespace WK { - /// <summary> - /// 角色所有属性 - /// </summary> - private List<CharacterStatsBase> m_Stats; + public class CharacterStatsCollection + { + + } + + public class CharacterBuffsCollection + { + + } + + public class CharacterPerksCollection + { + + } /// <summary> - /// 角色当前所有buff - /// </summary> - private List<Buff> m_Buffs; - - /// <summary> - /// 角色当前所有被动 + /// 角色当前状态 /// </summary> - private List<PerkBase> m_Perks; - - public CharacterStatsBase GetStats(string statsUID) + public class CharacterInfo { - for(int i = 0; i < m_Stats.Count; ++i) + + /// <summary> + /// 角色当前所有属性 + /// </summary> + private List<CharacterStats> m_Stats; + + public CharacterStatsCollection stats { get { return m_AllStats; } } + private CharacterStatsCollection m_AllStats; + + /// <summary> + /// 角色当前所有buff + /// </summary> + private List<Buff> m_Buffs; + + /// <summary> + /// 角色当前所有被动 + /// </summary> + private List<PerkBase> m_Perks; + + public CharacterStats this[string statsUID] { - if (m_Stats[i].UID == statsUID) + get { - return m_Stats[i]; + if (m_Stats == null) + { + return null; + } + return GetStats(statsUID); } } - return null; + + public CharacterStats GetStats(string statsUID) + { + for (int i = 0; i < m_Stats.Count; ++i) + { + if (m_Stats[i].uid == statsUID) + { + return m_Stats[i]; + } + } + return null; + } + + public bool HasStats(string statsUID) + { + for (int i = 0; i < m_Stats.Count; ++i) + { + if (m_Stats[i].uid == statsUID) + { + return true; + } + } + return false; + } + + public bool HasBuff(string buffUID) + { + return false; + } + } } |