U_读取和写入Txt

https://www.youtube.com/watch?v=ziBIeKlLqL0

using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;

[Serializable]
public class RoomSaveLoad : MonoBehaviour{
    [Serializable]
    public class RoomInfo {
        public float xPos;
        public float yPos;
        public float zPos;
    }

    [Serializable]
    public class SaveData {
        public List<RoomInfo> roomInfoList = new List<RoomInfo>();
    }

    public void Save() {
        // 创建数据
        var data = new SaveData();
        // 房间列表
        var roomList = RoomManager.instance.AllRoomList;
        for (var i = 0; i < roomList.Count; i++) {
            var tempRoom = roomList[i];
            var roomInfo = new RoomInfo();
            roomInfo.xPos = tempRoom.transform.position.x;
            roomInfo.yPos = tempRoom.transform.position.y;
            roomInfo.zPos = tempRoom.transform.position.z;
            data.roomInfoList.Add(roomInfo);
        }
        
        // 保存数据
        var bin = new BinaryFormatter();
        var stream = new FileStream(Application.persistentDataPath + "/SaveFile.txt", FileMode.Create);
        bin.Serialize(stream, data);
        stream.Close();
        
        Debug.Log("Game Saved");
    }

    public void Load() {
        if (File.Exists(Application.persistentDataPath + "/SaveFile.txt")) {
            // 提取数据
            var bin = new BinaryFormatter();
            var stream = new FileStream(Application.persistentDataPath + "/SaveFile.txt", FileMode.Open);

            var data = (SaveData)bin.Deserialize(stream);
            var roomList = RoomManager.instance.AllRoomList;
            for (var i = 0; i < roomList.Count; i++) {
                var tempRoom = roomList[i];
                var info = data.roomInfoList[i];
                tempRoom.transform.position = new Vector3(info.xPos, info.yPos, info.zPos);
            }

            stream.Close();
        } else {
            Debug.Log("no file found");
        }
    }
}
posted @ 2022-04-19 18:18  匿鱼  阅读(232)  评论(0)    收藏  举报