Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / serialize / SerializeVector3.cs
@lijincheng lijincheng on 3 Jun 2023 1 KB 导出表
using System.Text.Json.Serialization;
using Godot;

/// <summary>
/// 可序列化的 Vector3 对象
/// </summary>
public class SerializeVector3
{
    public SerializeVector3(float x, float y, float z)
    {
        X = x;
        Y = y;
        Z = z;
    }

    public SerializeVector3(Vector3 v)
    {
        X = v.X;
        Y = v.Y;
        Z = v.Z;
    }

    public SerializeVector3(Vector3I v)
    {
        X = v.X;
        Y = v.Y;
        Z = v.Z;
    }
    
    public SerializeVector3(SerializeVector3 v)
    {
        X = v.X;
        Y = v.Y;
    }
    
    public SerializeVector3()
    {
    }
    
    [JsonInclude]
    public float X { get; private set; }
    [JsonInclude]
    public float Y  { get; private set; }
    [JsonInclude]
    public float Z  { get; private set; }
    
    /// <summary>
    /// 转为 Vector3
    /// </summary>
    public Vector3 AsVector3()
    {
        return new Vector3(X, Y, Z);
    }

    /// <summary>
    /// 转为 Vector3I
    /// </summary>
    public Vector3I AsVector3I()
    {
        return new Vector3I((int)X, (int)Y, (int)Z);
    }
}