//存储玩家 public void SavePlayer(CharacterSystem character) { if (UnitZ.gameManager == null || character == null) { return; } PlayersRegister(UnitZ.gameManager.UserID); PlayerSaveData playersave = new PlayerSaveData(); playersave.UID = UnitZ.gameManager.UserID; playersave.PlayerName = UnitZ.gameManager.UserName; playersave.CharacterKey = character.CharacterKey; playersave.ItemData = character.inventory.GetItemDataText(); playersave.EquipData = character.inventory.GenStickerTextData(); playersave.FPSItemIndex = character.inventory.GetCollectorFPSindex(); playersave.Position = character.transform.position.x + "," + character.transform.position.y + "," + character.transform.position.z; playersave.LevelName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name; playersave.Health = character.HP; CharacterLiving living = character.GetComponent <CharacterLiving> (); if (living) { playersave.Food = living.Hungry; playersave.Water = living.Water; } WriteData(playersave); }
void Start() { character = gameObject.GetComponent<CharacterSystem> (); living = gameObject.GetComponent<CharacterLiving> (); StyleManager style = (StyleManager)GameObject.FindObjectOfType(typeof(StyleManager)); if(style && !Skin){ Skin = style.GetSkin(0); } }
void ApplyPlayerData(PlayerSaveData playersave, CharacterSystem character) { if (character && character.inventory) { string[] positionraw = playersave.Position.Split("," [0]); if (positionraw.Length > 2) { Vector3 position = Vector3.zero; float.TryParse(positionraw [0], out position.x); float.TryParse(positionraw [1], out position.y); float.TryParse(positionraw [2], out position.z); character.transform.position = position; } character.HP = playersave.Health; CharacterLiving living = character.GetComponent <CharacterLiving> (); if (living) { living.Hungry = playersave.Food; living.Water = playersave.Water; } //如果有新存储,参数都使用默认 if (playersave.Food <= 0 && playersave.Water <= 0 && playersave.Health <= 0) { character.HP = character.HPmax; if (living) { living.Hungry = living.HungryMax; living.Water = living.WaterMax; } } //Debug.Log ("Applying "+playersave.ItemData+" | "+playersave.EquipData+" | "+playersave.FPSItemIndex); //Debug.Log ("with " + PlayerSaveDataText (playersave)); character.inventory.SetupStarterItem(); character.inventory.SetItemsFromText(playersave.ItemData); character.inventory.UpdateSticker(playersave.EquipData); if (character.inventory.Items.Count > playersave.FPSItemIndex) { character.inventory.EquipItemByCollector(character.inventory.Items [playersave.FPSItemIndex]); } } }
void Update() { if (PlayerManage == null || Canvas == null) return; mainCharacter = PlayerManage.playingCharacter; if (PlayerManage.playingCharacter != null) { Canvas.gameObject.SetActive (true); } else { Canvas.gameObject.SetActive (false); } if (mainCharacter) { InputController (); if (HPbar) { HPbar.Value = mainCharacter.HP; HPbar.ValueMax = mainCharacter.HPmax; } if (FoodBar && living) { FoodBar.Value = living.Hungry; FoodBar.ValueMax = living.HungryMax; } if (WaterBar && living) { WaterBar.Value = living.Water; WaterBar.ValueMax = living.WaterMax; } if (living == null) living = mainCharacter.GetComponent<CharacterLiving> (); } else { living = null; } }