구글 플레이스토어 등록 방법 구체적으로 정리하기
ios 빌드 알아보기
플레이어 추락 상태 수정하기
아이콘 추가
public class PlayerFallState : PlayerGroundedState
{
private bool _alreadyAppliedForce;
public PlayerFallState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
{
}
public override void Enter()
{
base.Enter();
_stateMachine.IsFalling = true;
_stateMachine.MovementSpeedModifier = 0f;
_alreadyAppliedForce = false;
StartAnimation(_stateMachine.Player.AnimationData.fallParameterHash);
}
public override void Exit()
{
base.Exit();
_stateMachine.IsFalling = false;
StopAnimation(_stateMachine.Player.AnimationData.fallParameterHash);
}
public override void Update()
{
base.Update();
ToolItemData toolItemDate = (ToolItemData)Managers.Game.Player.
ToolSystem.ItemInUse.itemData;
TryApplyForce();
if (_stateMachine.Player.Controller.isGrounded)
{
if (toolItemDate.isTwoHandedTool == true)
{
_stateMachine.ChangeState(_stateMachine.TwoHandedToolIdleState);
}
else if (toolItemDate.isTwinTool == true)
{
_stateMachine.ChangeState(_stateMachine.TwinToolIdleState);
}
else
{
_stateMachine.ChangeState(_stateMachine.IdleState);
}
return;
}
}
protected override void Rotate(Vector3 movementDirection)
{
}
private void TryApplyForce()
{
if (_alreadyAppliedForce) return;
_alreadyAppliedForce = true;
_stateMachine.Player.ForceReceiver.AddForce(_stateMachine.Player.transform.forward * 0.2f);
}
}
public class PlayerGroundedState : PlayerBaseState
{
public override void PhysicsUpdate()
{
base.PhysicsUpdate();
bool isHit = Physics.SphereCast(Managers.Game.Player.ViewPoint.transform.position, 0.5f,
Vector3.down, out RaycastHit hit, 1f);
if (!isHit && _stateMachine.Player.Controller.velocity.y <
Physics.gravity.y * Time.fixedDeltaTime)
{
_stateMachine.ChangeState(_stateMachine.FallState);
}
}
}
플레이어의 view point에서 spherecast를 아래로 쏴서 바닥을 체크하는 방식으로 수정하였습니다. 기존은 ground 레이어 체크였습니다.
public class PlayerComboAttackState : PlayerAttackState
{
private void TryApplyForce()
{
if (_alreadyAppliedForce) return;
_alreadyAppliedForce = true;
_stateMachine.Player.ForceReceiver.Reset();
_stateMachine.Player.ForceReceiver.AddForce(_stateMachine.Player.transform.forward *
_attackInfoData.Force);
}
}
플레이어의 force를 리셋해주는 메서드를 호출하여 어색함을 해결하였지만 공격키 연타 시 콤보 공격이 이어지지 않는 이슈가 아직 해결되지 않았습니다.
remove skybox
플레이어가 추락할 때 움직임에 제한을 걸었습니다.
플레이어 추락 상태 이슈를 수정하였습니다.
공격 연타 시 달리기 보다 빠르게 캐릭터가 튀어나가는 이슈를 해결하였습니다.
공격 연타 시 콤보 어택이 되지 않는 이슈를 해결할 예정입니다.