Movment update again
This commit is contained in:
parent
83f3af4baf
commit
10c5e5712d
|
@ -12,7 +12,8 @@ public class FPSController : MonoBehaviour
|
||||||
public float gravity = 20f;
|
public float gravity = 20f;
|
||||||
public float lookSpeed = 2f;
|
public float lookSpeed = 2f;
|
||||||
public float lookXLimit = 45f;
|
public float lookXLimit = 45f;
|
||||||
public float airAcceleration = 2f;
|
public float airAcceleration = 8f; // Increased air acceleration
|
||||||
|
public float airFriction = 1f; // Added air friction
|
||||||
public float groundFriction = 6f;
|
public float groundFriction = 6f;
|
||||||
|
|
||||||
Vector3 velocity = Vector3.zero;
|
Vector3 velocity = Vector3.zero;
|
||||||
|
@ -49,7 +50,7 @@ public class FPSController : MonoBehaviour
|
||||||
if (canMove)
|
if (canMove)
|
||||||
{
|
{
|
||||||
float drop = velocity.magnitude * groundFriction * Time.deltaTime;
|
float drop = velocity.magnitude * groundFriction * Time.deltaTime;
|
||||||
velocity *= Mathf.Max(velocity.magnitude - drop, 0) / velocity.magnitude; // Apply friction
|
velocity *= Mathf.Max(velocity.magnitude - drop, 0) / velocity.magnitude; // Apply ground friction
|
||||||
|
|
||||||
Accelerate(wishDir, speed, groundFriction); // Ground accelerate
|
Accelerate(wishDir, speed, groundFriction); // Ground accelerate
|
||||||
|
|
||||||
|
@ -65,11 +66,11 @@ public class FPSController : MonoBehaviour
|
||||||
|
|
||||||
if (canMove)
|
if (canMove)
|
||||||
{
|
{
|
||||||
// Air acceleration is now dependant on how aligned the move direction is with the current velocity direction
|
// Apply air friction
|
||||||
// The closer to straight ahead, the more acceleration, allowing for more maneuverability while keeping strafe speed under control
|
float drop = velocity.magnitude * airFriction * Time.deltaTime;
|
||||||
float currentSpeed = Vector3.Dot(velocity, wishDir);
|
velocity *= Mathf.Max(velocity.magnitude - drop, 0) / velocity.magnitude;
|
||||||
float accel = airAcceleration * Mathf.Max(0, 1 - currentSpeed / speed);
|
|
||||||
Accelerate(wishDir, speed, accel);
|
Accelerate(wishDir, speed, airAcceleration); // Air accelerate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue