// Update is called once per frame void Update() { if (health.isDead) { return; } //transform.forward = moveDirection; Ray cameraRay = mainCamera.ScreenPointToRay(Input.mousePosition); Plane groundPlane = new Plane(Vector3.up, Vector3.zero); float rayLength; if (groundPlane.Raycast(cameraRay, out rayLength)) { pointToLook = cameraRay.GetPoint(rayLength); Debug.DrawLine(cameraRay.origin, pointToLook, Color.blue); transform.LookAt(new Vector3(pointToLook.x, transform.position.y, pointToLook.z)); } //Add Everything to state machine to get the game to run and play better /*switch (curPlayerState) * { * case PlayerStateMachine.Walk: * PlayerMove(); * break; * case PlayerStateMachine.Attack: * PlayerAttack(); * break; * case PlayerStateMachine.Magic: * PlayerMagic(); * break; * case PlayerStateMachine.Idle: * PlayerIdle(); * break; * }*/ if (Input.GetButtonDown("Fire1")) { isAttacking = true; GetComponentInChildren <SwordMechanic>().Swing(true); } else { GetComponentInChildren <SwordMechanic>().Swing(false); isAttacking = false; } if (Input.GetButton("Fire2") && !isAttacking) { //use dot product to see if the enemy is in front of player to block damage //this would allow the player to still take damage from behind or to the player's side shield.SetActive(true); moveDirection = Vector3.zero; foreach (SwordMechanic swords in enemySword) { swords.damage = blockDamage; } } else { shield.SetActive(false); moveDirection = new Vector3(horizontalInput, (gravity * -1 * Time.deltaTime), VerticalInput); foreach (SwordMechanic swords in enemySword) { swords.damage = swords.origDamage; } } if (Input.GetKeyDown(KeyCode.E) && !isAttacking) { magicWeapon.Shoot(); } horizontalInput = Input.GetAxis("Horizontal"); VerticalInput = Input.GetAxis("Vertical"); moveDirection *= playerSpeed; if (moveDirection != Vector3.zero) { prevDirection = moveDirection; } if (Input.GetButtonDown("Jump")) { Debug.Log("Trying to dash"); moveDirection *= dashDistance; } //Debug.Log("The player's current state is " + curPlayerState); playerController.Move(moveDirection * Time.deltaTime); }