void Update() { KeyMove.MoveSixDirection(speed, transform); Rot(30.0f); FleeMove(); }
public void CharacterUpdate() { CountDown.DecreaseTime(changeCharacterCountDown); CountDown.DecreaseTime(playerController.followEnemy); var tempIsControllable = playerController.GetIsControllable(); if (isPlayable != tempIsControllable) { changeCharacterCountDown.StartToCount(); } if (isPlayable != tempIsControllable) { SetSlideSizes(); } isPlayable = tempIsControllable; if (isPlayable) { if (playerController.target != oldTarget) { oldTarget = playerController.target; if (playerController.target != null) { PlayerController.GetSliderEnemy(playerController.target); } } #region Mover if (!model.ForceToStop) { input.Vector2 = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); foreach (var keyMove in utils.moveKeyCode) { if (Input.GetKey(keyMove.KeyCode.Value)) { if (Input.GetKey(KeyCode.LeftShift) && !model.ForceToWalk) { PlayerAnimator.SetBool("isRunning", true); PlayerAnimator.SetBool("isWalking", false); playerController.Walk(keyMove.Vector2, (float)model.SpeedRun); } else { PlayerAnimator.SetBool("isWalking", true); PlayerAnimator.SetBool("isRunning", false); playerController.Walk(keyMove.Vector2, (float)model.SpeedWalk); } playerController.SetLastMoviment(input.Vector2.x, input.Vector2.y); PlayerAnimator.SetFloat("speedX", input.Vector2.x); PlayerAnimator.SetFloat("speedY", input.Vector2.y); if (!keyMove.Flip.HasValue) { continue; } PlayerSpriteRenderer.flipX = keyMove.Flip.Value; } if (Input.GetKeyUp(keyMove.KeyCode.Value)) { PlayerAnimator.SetBool("isWalking", false); PlayerAnimator.SetBool("isRunning", false); } } } if (model.ForceToStop) { PlayerAnimator.SetBool("isWalking", false); PlayerAnimator.SetBool("isRunning", false); } #endregion #region Change Character if (changeCharacterCountDown.CoolDown <= 0 && Input.GetKeyDown(KeyCode.K) && !model.ForceToStop) { playerController.ChangeControllableCharacter(); camera.SendMessage("UpdatePlayerTranform"); SetSlideSizes(); } #endregion #region Interact if (Input.GetKey(KeyCode.J)) { playerController.Interact(transform, PlayerCollider2D.size); } #endregion } else { #region Follow if (model.PlayerMode == PlayerModes.Follow) { if (Mathf.Abs(Vector3.Distance(transform.position, cv.playerGameObj.transform.position)) > DistanceOfPlayer) { //playerController.WalkToPlayer(transform, cv.playerGameObj.transform, ref model); playerController.target = cv.playerGameObj.transform; Move(); PlayerAnimator.SetBool("isWalking", true); } else { PlayerAnimator.SetBool("isWalking", false); PlayerAnimator.SetBool("isRunning", false); } } #endregion #region Walk Input input = playerController.GetInput(model.LastMoviment.Value); PlayerSpriteRenderer.flipX = input.Flip.Value; PlayerAnimator.SetFloat("speedX", input.Vector2.x); PlayerAnimator.SetFloat("speedY", input.Vector2.y); #endregion if (Vector3.Distance(transform.position, cv.playerGameObj.transform.position) > 15) { model.PlayerMode = PlayerModes.Follow; } } transform.position = Utils.SetPositionZ(transform, colliderTransform.bounds.min.y); #region Change PlayerMode foreach (var playerMode in utils.playerModes) { if (Input.GetKey(playerMode.KeyButton[0]) && Input.GetKey(playerMode.KeyButton[1])) { model.PlayerMode = playerMode.Value; if (playerMode.Value == PlayerModes.Wait) { PlayerAnimator.SetBool("isWalking", false); PlayerAnimator.SetBool("isRunning", false); } } } #endregion }