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;
//}
}
}