using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; using WK.Data; namespace WK { [StructLayout(LayoutKind.Explicit)] public struct CharacterStatsValue { [FieldOffset(0)] public int i; [FieldOffset(0)] public float f; [FieldOffset(0)] public bool boolean; [FieldOffset(0)] public char c; [FieldOffset(0)] public Vector2 v2; [FieldOffset(0)] public Vector3 v3; [FieldOffset(0)] public Vector4 v4; [FieldOffset(0)] public Color color; } /// /// 运行时角色基础属性 /// public abstract class CharacterStats { /// /// 表格数据 /// public CharacterStatsMetadata metadata; /// /// 当前属性值 /// public CharacterStatsValue value; public ref int intValue => ref value.i; public ref bool boolValue => ref value.boolean; public ref float floatValue => ref value.f; public ref char chartValue => ref value.c; public ref Vector2 Vector2Value => ref value.v2; public ref Vector3 Vector3Value => ref value.v3; public ref Vector4 Vector4Value => ref value.v4; public string uid { get { return metadata.uid; } } //public T Access() //{ // return null; //} } }