// Update is called once per frame void Update() { weaponScript = weaponSwitching.weaponScript; //Bool defenition isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask); if (previousPos == gameObject.transform.position) { isStaying = true; } else { isStaying = false; } isRunning = Input.GetKey("left shift"); if (Input.GetKey("left ctrl") || isStaying) { isRunning = false; } previousPos = gameObject.transform.position; //Some manipulation if (isGrounded && velocity.y < -2f) { velocity.y = -2f; } float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); Vector3 move = transform.right * x * inAirMultiplier + transform.forward * z * inAirMultiplier; //Moving handsAnim.SetBool("Falling", false); if (isStaying) { //StayingAnim handsAnim.SetBool("Running", false); handsAnim.SetBool("Walking", false); handsAnim.SetBool("RunAndGun", false); } else { if (isRunning) { //RunningAnim handsAnim.SetBool("Running", true); } else { //WalkingAnim handsAnim.SetBool("Running", false); handsAnim.SetBool("Walking", true); } } //Move if (!Input.GetKey("left ctrl") && Input.GetKey("left shift")) { //Run currentSpeed = runSpeed; currentTimeBetweenSteps = timeBetweenSteps_Run; if (weaponScript != null) { weaponScript.recoilMultiplier = 3f; } } else if (!Input.GetKey("left ctrl")) { //Walk currentSpeed = walkSpeed; currentTimeBetweenSteps = timeBetweenSteps_Walk; if (weaponScript != null) { weaponScript.recoilMultiplier = 2f; } } else if (Input.GetKey("left ctrl")) { //Crouch currentSpeed = crouchSpeed; currentTimeBetweenSteps = timeBetweenSteps_Crouch; if (weaponScript != null) { weaponScript.recoilMultiplier = 0.7f; } } if (isStaying && !Input.GetKey("left ctrl")) { if (weaponScript != null) { weaponScript.recoilMultiplier = 1f; } } if (!isGrounded) { if (weaponScript != null) { weaponScript.recoilMultiplier = 4f; } } controller.Move(move * currentSpeed * Time.deltaTime); //Jump if (Input.GetKeyDown("space") && isGrounded) { velocity.y = Mathf.Sqrt(jumpHeight * -2 * gravity); } if (isGrounded) { inAirMultiplier = 1f; } else { if (inAirMultiplier > minInAirMultiplier) { inAirMultiplier -= 0.001f; } } //Crouching if (Input.GetKeyDown("left ctrl") && transform.localScale != new Vector3(1, 0.4f, 1)) { transform.localScale = new Vector3(1, 0.4f, 1); foreach (Transform i in transform) { i.localScale = new Vector3(1, i.localScale.y * 2.5f, 1); } } else if (!Input.GetKey("left ctrl") && transform.localScale != new Vector3(1, 1, 1)) { if (!Physics.CheckSphere(cellingCheck.position, 0.5f, groundMask)) { gameObject.transform.localScale = new Vector3(1, 1, 1); gameObject.transform.position += new Vector3(0, 1, 0); foreach (Transform i in transform) { i.localScale = new Vector3(1, i.localScale.y / 2.5f, 1); } } } //Other velocity.y += gravity * Time.deltaTime; controller.Move(velocity * Time.deltaTime); StepSoundPlay(); }
// Update is called once per frame void Update() { int previousSelectedWeapon = selectedWeapon; ReloadScript ammoScript = GetComponentInChildren <ReloadScript>(); weaponScript = GetComponentInChildren <UniversalWeaponScript>(); animator = gameObject.GetComponent <Animator>(); if (ammoScript != null) { if (ammoScript.reloading == false) { canChange = true; } else { canChange = false; } } if (weaponScript != null) { if (weaponScript.animator.GetCurrentAnimatorStateInfo(0).IsTag("Idle")) { canChange = true; } else { canChange = false; } } else { if (ammoScript == null) { canChange = true; } } if (Input.GetAxis("Mouse ScrollWheel") > 0f & (canChange)) { if (selectedWeapon >= transform.childCount - 1) { selectedWeapon = 0; } else { selectedWeapon++; } } if (Input.GetAxis("Mouse ScrollWheel") < 0f & (canChange)) { if (selectedWeapon <= 0) { selectedWeapon = transform.childCount - 1; } else { selectedWeapon--; } } if (previousSelectedWeapon != selectedWeapon) { SelectWeapon(); } animator.SetBool("RunAndGun", false); if (animator.GetBool("Running") && weaponScript != null) { if (weaponScript.animator.GetCurrentAnimatorStateInfo(0).IsTag("Shoot")) { animator.SetBool("RunAndGun", true); } } }