如何在不使用 C# 中的玩家首选项的情况下在 Unity 中保存我的玩家位置
本文关键字:玩家 情况下 Unity 保存 位置 我的 首选项 | 更新日期: 2023-09-27 17:57:01
我一直在努力弄清楚如何在 Unity 中保存我的玩家位置,尤其是在不使用 playerprefs 的情况下,它必须是某种浮点数,因为您无法将 Vectors 保存在可序列化类中,即使是某种将 Vectors(Vector3) 转换为浮点数的方法也会有所帮助。
任何帮助将不胜感激。
你应该像这样实现ISerializable接口:
using UnityEngine;
using System;
using System.Runtime.Serialization;
[Serializable]
public class BasePrefabSaveData : ISerializable
{
public Vector3 _Position;
public BasePrefabSaveData()
{
}
public BasePrefabSaveData(SerializationInfo info, StreamingContext context)
{
_Position.x = (float)info.GetValue( "Position.x", typeof( float ) );
_Position.y = (float)info.GetValue( "Position.y", typeof( float ) );
_Position.z = (float)info.GetValue( "Position.z", typeof( float ) );
}
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue( "Position.x", _Position.x, typeof( float ) );
info.AddValue( "Position.y", _Position.y, typeof( float ) );
info.AddValue( "Position.z", _Position.z, typeof( float ) );
}
}