Exemplo n.º 1
0
    //存储玩家
    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);
    }
Exemplo n.º 2
0
 void Start()
 {
     character = gameObject.GetComponent<CharacterSystem> ();
     living = gameObject.GetComponent<CharacterLiving> ();
     StyleManager style = (StyleManager)GameObject.FindObjectOfType(typeof(StyleManager));
     if(style && !Skin){
         Skin = style.GetSkin(0);
     }
 }
Exemplo n.º 3
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]);
            }
        }
    }
Exemplo n.º 4
0
    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;
        }
    }