void /*Fixed*/ Update() { move = new Vector3( SpiffyInput.GetAxis("Horizontal"), 0.0f, SpiffyInput.GetAxis("Vertical") ); }
void FixedUpdate() { // if( PauseMenu.IsOpen() ) return; if (CanJump()) { canJump = true; jumpLeniency.Reset(); yVel = 0.0f; } else if (jumpLeniency.Update(Time.fixedDeltaTime)) { canJump = false; } // if( canJump ) forwardAxisPower = vertAxis; // move.Normalize(); var ang = cam.transform.eulerAngles.y * Mathf.Deg2Rad - Mathf.PI / 2.0f; var xMove = Mathf.Cos(ang) * move.z + Mathf.Sin(ang + Mathf.PI) * move.x; var yMove = -Mathf.Sin(ang) * move.z + Mathf.Cos(ang + Mathf.PI) * move.x; vel.x += xMove * moveSpeed * Time.fixedDeltaTime; vel.y += yMove * moveSpeed * Time.fixedDeltaTime; // xMove *= bhMod * bhStrafeMod; // yMove *= bhMod; // if( Mathf.Abs( xMove ) > 0.0f || Mathf.Abs( yMove ) > 0.0f ) // { // var rot = transform.eulerAngles; // rot.y = Mathf.Atan2( xMove,yMove ) * Mathf.Rad2Deg; // rot.y = Mathf.LerpAngle( transform.eulerAngles.y,rot.y,rotSpeed * Time.fixedDeltaTime ); // // transform.eulerAngles = rot; // // // animCtrl.SetBool( "walk",true ); // } // else // { // // animCtrl.SetBool( "walk",false ); // } if (SpiffyInput.GetAxis("Jump") > 0.0f) { if (!jumping && canJump) { jumping = true; if (yVel < 0.2f) { audSrc.PlayOneShot(jumpSound); } } } else if (variableJump) { if (jumping && minJump.Update(Time.fixedDeltaTime)) { StopJumping(); } } if (jumping) { yVel = jumpPower; if (jumpTimer.Update(Time.fixedDeltaTime)) { StopJumping(); } } else { yVel -= gravAcc * Time.fixedDeltaTime; } if (vel.magnitude > maxSpeed) { vel = vel.normalized * maxSpeed; } if (resetPos == Vector3.zero) { charCtrl.Move((new Vector3(vel.x, yVel, vel.y) * moveSpeed + forceMove) * Time.fixedDeltaTime); if (footstepTimer.Update(Time.fixedDeltaTime) && charCtrl.isGrounded && move.sqrMagnitude > 0.2f) { footstepTimer.Reset(); audSrc.PlayOneShot(footstepSounds[Random.Range(0, footstepSounds.Count)]); } } else { var diff = resetPos - transform.position; charCtrl.Move(diff); resetPos = Vector3.zero; gameObject.layer = LayerMask.NameToLayer("Player"); } // animCtrl.SetBool( "jump",yVel > 0.0f ); // animCtrl.SetBool( "jump",!canJump ); if (charCtrl.isGrounded) { if (stopForceMove || !SpiffyInput.CheckFree("Sprint")) { forceMove.Set(0.0f, 0.0f, 0.0f); } } if (canSprint) { if (SpiffyInput.CheckFree("Sprint")) { footstepTimer.Update(Time.fixedDeltaTime); if (forceMove.sqrMagnitude < maxSprintSpd * maxSprintSpd) { forceMove += (cam.transform.forward + Vector3.up * sprintUpBias) * sprintAccel * Time.fixedDeltaTime; // forceMove.x += xMove * sprintAccel * Time.fixedDeltaTime; // forceMove.z += yMove * sprintAccel * Time.fixedDeltaTime; } } } if (canJetpack) { if (SpiffyInput.CheckFree("Jump")) { var forceDir = cam.transform.forward + Vector3.up * jetpackUpBias; forceMove += forceDir * jetpackAccel * Time.fixedDeltaTime; } } vel *= decel; forceMove *= forceDecay; }