public void OnDash(Dashable dashable) { dashable.EnableDashability(timeToDashPoint, dataBase.character.collisionFlags.IsGrounded); CalculateDashVelocity(out m_MoveVector); UpdateFacing(); dataBase.animator.SetBool(m_HashDashingPara, true); }
public void Load() { //https://www.sitepoint.com/saving-and-loading-player-game-data-in-unity/ if (Directory.Exists("Saves") == false || File.Exists("Saves/save.binary") == false) { return; } BinaryFormatter formatter = new BinaryFormatter(); FileStream saveFile = File.Open("Saves/save.binary", FileMode.Open); localSaveModel = (SaveModel)formatter.Deserialize(saveFile); saveFile.Close(); GameManager.instance.player.transform.position = localSaveModel.Player.Position.GetVector(); GameManager.instance.player.transform.eulerAngles = localSaveModel.Player.Rotation.GetVector(); GameManager.instance.player.playerValues.health = localSaveModel.Player.Health; GameManager.instance.player.playerValues.maxHealth = localSaveModel.Player.MaxHealth; GameManager.instance.coinCount = localSaveModel.Player.Coins; LevelManager.instance.hasGateKey = localSaveModel.HasKey; if (LevelManager.instance.hasGateKey) { UIManager.instance.ShowKeyImage(); } else { UIManager.instance.HideKeyImage(); } foreach (ObjectModel model in localSaveModel.MovableObjects) { if (MovableObjects.ContainsKey(model.Id)) { GameObject go = MovableObjects[model.Id]; go.transform.position = model.Position.GetVector(); go.transform.eulerAngles = model.Rotation.GetVector(); go.SetActive(model.IsActive); } } foreach (ObjectModel model in localSaveModel.Haybales) { if (MovableObjects.ContainsKey(model.Id)) { GameObject go = Haybales[model.Id]; go.transform.position = model.Position.GetVector(); go.transform.eulerAngles = model.Rotation.GetVector(); go.SetActive(model.IsActive); } } foreach (ObjectModel model in localSaveModel.Checkpoints) { if (Checkpoints.ContainsKey(model.Id)) { GameObject go = Checkpoints[model.Id]; go.transform.position = model.Position.GetVector(); go.transform.eulerAngles = model.Rotation.GetVector(); go.SetActive(model.IsActive); } } foreach (FallingObjectModel model in localSaveModel.FallingObjects) { if (FallingObjects.ContainsKey(model.Id)) { FallingObject obj = FallingObjects[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); obj.HasFallen = model.HasFallen; obj.gameObject.SetActive(model.IsActive); } } foreach (FallingObjectModel model in localSaveModel.TrapObjects) { if (TrapObjects.ContainsKey(model.Id)) { Breakable obj = TrapObjects[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); obj.Broke = model.HasFallen; obj.gameObject.SetActive(model.IsActive); } } foreach (EnemyModel model in localSaveModel.Enemies) { if (Enemies.ContainsKey(model.Id)) { Peasant obj = Enemies[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); if (model.IsStunned) { // obj.PlayerDash(Vector3.zero); obj.isDying = true; } else { obj.ShouldGoAlive = true; } obj.gameObject.SetActive(model.IsActive); } } foreach (GateModel model in localSaveModel.Gates) { if (Gates.ContainsKey(model.Id)) { GateScript obj = Gates[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); if (model.IsOpen) { obj.Open(); UIManager.instance.HideKeyImage(); } obj.gameObject.SetActive(model.IsActive); } } foreach (ObjectModel model in localSaveModel.Dashables) { if (Dashables.ContainsKey(model.Id)) { Dashable obj = Dashables[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); obj.gameObject.SetActive(model.IsActive); } } foreach (ObjectModel model in localSaveModel.Coins) { if (Coins.ContainsKey(model.Id)) { CoinPickup obj = Coins[model.Id]; obj.transform.position = model.Position.GetVector(); obj.transform.eulerAngles = model.Rotation.GetVector(); obj.gameObject.SetActive(model.IsActive); } } }