private void Awake() { MaxSpeed = 1.8f; RigidBody = GetComponent <Rigidbody2D>(); Animator = GetComponent <Animator>(); SpriteRenderer = GetComponent <SpriteRenderer>(); AlexaTag = MainGame.Store().Get <string>("AlexaTag"); RogerTag = MainGame.Store().Get <string>("RogerTag"); PreviousState = StateNames.AlexaDown; CurrentParty = GameObject.FindGameObjectWithTag("World").GetComponent <GameParty>(); }
/// <summary> /// 读取存档数据,不处理异常 /// </summary> /// <param name="fileName"></param> private static void loadGameData(string fileName) { // // header // HeaderData // // GameVariables // GameSwitches // GameSelfSwitches // GameScreen // GameMap FileStream fs = new FileStream(fileName, FileMode.Open); // 读取文件 // 反序列化内容 byte[] lenBytes = new byte[4]; int len = 0; int offset = 0; // header fs.Read(lenBytes, 0, 4); offset += lenBytes.Length; // HeaderData fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); Dictionary <string, string> headerData = (Dictionary <string, string>)loadObjData(fs, offset, len); offset += len; // GameVariables fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameVariables gameVariables = (GameVariables)loadObjData(fs, offset, len); offset += len; // GameSwitches fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameSwitches gameSwitches = (GameSwitches)loadObjData(fs, offset, len); offset += len; // GameSelfSwitches fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameSelfSwitches gameSelfSwitches = (GameSelfSwitches)loadObjData(fs, offset, len); offset += len; // GameScreen fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameScreen gameScreen = (GameScreen)loadObjData(fs, offset, len); offset += len; // GameMap fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameMap gameMap = (GameMap)loadObjData(fs, offset, len); offset += len; // GamePlayer fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GamePlayer gamePlayer = (GamePlayer)loadObjData(fs, offset, len); offset += len; // GameParty fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); GameParty gameParty = (GameParty)loadObjData(fs, offset, len); offset += len; // bgm fs.Read(lenBytes, 0, 4); offset += 4; len = BitConverter.ToInt32(lenBytes, 0); string bgmName = (string)loadObjData(fs, offset, len); offset += len; fs.Close(); // 绑定新数据 GameTemp.gameVariables = gameVariables; GameTemp.gameSwitches = gameSwitches; GameTemp.gameSelfSwitches = gameSelfSwitches; GameTemp.gameScreen = gameScreen; GameTemp.gameMessage = new GameMessage(); GameTemp.gameChoice = new GameChoice(); GameTemp.gameMap = gameMap; GameTemp.gamePlayer = gamePlayer; GameTemp.gameParty = gameParty; GameTemp.bgmName = bgmName; }