private void Move(Vector3 moveDir) { if (stunTimer <= 0) { if (!collisionChecker.IsColliding(transform.position + (moveDir * speed + pushVelocity) * Time.deltaTime, false)) transform.position += (moveDir * speed + pushVelocity) * Time.deltaTime; } else { if (!collisionChecker.IsColliding(transform.position + pushVelocity * Time.deltaTime, false)) transform.position += pushVelocity * Time.deltaTime; } if (slowTimer > 0) { slowTimer -= Time.deltaTime; if (slowTimer < 0) speed = baseSpeed; } if(stunTimer > 0) { stunTimer -= Time.deltaTime; } if (pushVelocity.magnitude > 0) { if (pushVelocity.magnitude < resistForce) pushVelocity = new Vector3(0, 0, 0); else pushVelocity -= pushVelocity.normalized * resistForce * Time.deltaTime; } Turn(moveDir); }
private void Move(Vector3 moveDir, bool left) { float runMult = 1.0f; if (alwaysSprint || (!left && runAction.GetState(SteamVR_Input_Sources.RightHand) || left && runAction.GetState(SteamVR_Input_Sources.LeftHand))) { runMult = runMultiplier; } velocity = moveDir * moveSpeed * runMult; if (!collisionChecker.IsColliding(transform.position + velocity * Time.deltaTime, true)) { transform.position += velocity * Time.deltaTime; } }