This commit is contained in:
CortexCore
2023-10-02 23:24:56 +08:00
parent 8ef5c7ec0a
commit 947e52e748
183 changed files with 107857 additions and 9378 deletions

View File

@@ -27,8 +27,9 @@ namespace BITFALL.Entities.Player.Movement
[SerializeReference, SubclassSelector]
private IProvider adsProvider;
[SerializeField] private LocationAdditive locationAdditive;
[SerializeField] private Transform cameraTransform;
public Vector3 ViewCenter { get; set; }
public Quaternion ViewRotation { get; set; }
public Vector3 LocomotionBasedVelocity { get;private set; }
@@ -43,8 +44,8 @@ namespace BITFALL.Entities.Player.Movement
public ExpectState<bool> ExpectJump;
public ExpectState<bool> ExpectCrouch;
public ExpectState<bool> ExpectSprint;
public ExpectState<Vector3> expectClimb;
public Vector3 CurrentCameraPosition;
public ExpectState<Vector3> ExpectClimb;
public ExpectState<Vector3> CurrentCameraPosition;
private readonly ValidHandle allowMovement = new();
private readonly ValidHandle allowRun = new();
private IEntityPhysics physics;
@@ -53,7 +54,6 @@ namespace BITFALL.Entities.Player.Movement
private Vector3 keepVelocity;
public override void OnAwake()
{
CurrentCameraPosition = initialCameraPosition;
_health = entity.Get<IHealth>();
_health.OnSetAlive += OnSetAlive;
physics = entity.Get<IEntityPhysics>();
@@ -126,7 +126,7 @@ namespace BITFALL.Entities.Player.Movement
var playerConfig = Data.Get<PlayerConfig>() ?? new PlayerConfig();
var ads = adsProvider.Get<float>();
if (ads is 0) ads = 1;
var raw = context.ReadValue<Vector2>() * playerConfig.sensitivity * playerConfig.m_yaw * ads;
var raw = context.ReadValue<Vector2>() * playerConfig.Sensitivity * playerConfig.M_Yaw * ads;
var lookInput = LookInput;
lookInput.x -= raw.y;
lookInput.y += raw.x;
@@ -148,7 +148,7 @@ namespace BITFALL.Entities.Player.Movement
ExpectCrouch.Reset();
if (climbClosePoint.TryGetClosePoint(out var closePoint))
{
expectClimb.shouldBe = closePoint;
ExpectClimb.shouldBe = closePoint;
TransitionState<Climb>();
}
}
@@ -188,8 +188,10 @@ namespace BITFALL.Entities.Player.Movement
public override void OnUpdate(float deltaTime)
{
CurrentState?.BeforeUpdateMovement(deltaTime);
CurrentState?.AfterUpdateMovement(deltaTime);
}
public override void OnFixedUpdate(float deltaTime)
{
var currentVelocity = actor.Velocity;
@@ -215,13 +217,19 @@ namespace BITFALL.Entities.Player.Movement
public override void OnLateUpdate(float deltaTime)
{
if (allowMovement.Allow is false) return;
var rotation = Quaternion.Euler(LookInput);
cameraTransform.rotation = rotation;
CurrentState?.AfterUpdateMovement(deltaTime);
cameraTransform.localPosition = Vector3.Lerp(cameraTransform.localPosition,CurrentCameraPosition,5 * deltaTime);
var additiveTransform = locationAdditive.transform;
var rotation = Quaternion.Euler(LookInput);
locationAdditive.SetGlobalRotation(rotation);
CurrentCameraPosition.being = Vector3.Lerp(CurrentCameraPosition.being,CurrentCameraPosition.shouldBe,5 * deltaTime);
locationAdditive.AddPosition(CurrentCameraPosition);
ViewCenter = cameraTransform.position;
ViewRotation = rotation;
ViewCenter = additiveTransform.position + additiveTransform.forward;
}
public void AddViewEuler(float2 euler)

View File

@@ -18,7 +18,7 @@ namespace BITFALL.Entities.Player.Movement.States
[SerializeField] protected float initialJumpForce = 5f;
public override void BeforeUpdateMovement(float deltaTime)
{
characterController.CurrentCameraPosition = initialCameraPosition;
characterController.CurrentCameraPosition.shouldBe = initialCameraPosition;
}
public override void UpdateVelocity(ref Vector3 currentVelocity,float deltaTime)

View File

@@ -20,7 +20,7 @@ namespace BITFALL.Entities.Player.Movement.States
}
public override void OnStateUpdate(float deltaTime)
{
if (Vector3.Distance(characterController.expectClimb.shouldBe, characterController.transform.position) < 0.1f || actor.IsStable)
if (Vector3.Distance(characterController.ExpectClimb.shouldBe, characterController.transform.position) < 0.1f || actor.IsStable)
{
characterController.TransitionState<Walk>();
}
@@ -35,7 +35,7 @@ namespace BITFALL.Entities.Player.Movement.States
public override void UpdateVelocity(ref Vector3 currentVelocity, float deltaTime)
{
currentVelocity =(characterController.expectClimb.shouldBe - characterController.transform.position)*lerpDelta;
currentVelocity =(characterController.ExpectClimb.shouldBe - characterController.transform.position)*lerpDelta;
}
}
}