내일배움캠프 17일차 TIL : 유니티 입문 팀 프로젝트 2일차

woollim·2024년 10월 16일
0

내일배움캠프TIL

목록 보기
16/36
post-thumbnail

■ 학습 개요

오늘 계획

  • 유니티 입문 팀프로젝트
    • 점프 애니메이션, 피격 애니메이션 생성
    • 애니메이터 수정
    • 애니메이션 동작 코드 구현
    • 이동 방향으로 플립
    • 이동 물리식 수정
  • 첼린지 꾸준 실습(1주차 두번째)

학습 회고

  • 꾸준실습 첼린지반 어렵다😥 그래도 어제는 코드 파악하느라 시간을 다썼는데 오늘은 연료바 변경 구현까지는 했다.
  • 팀프로젝트 이동 구현에서 점프에 문제가 있었다. 관련 트러블 슈팅을 아래에서 자세히 작성할 예정.
  • 유니티 아직 어렵지만 그래도 여차저차 구르다보니 점점 느는거 같다. 주말에 각잡고 복습 열심히 하고 유투브에서 강좌도 봐야겠다. 그리고 내일은 무슨일이 있어도 꼭 꾸준실습 제출해야지🥲


■ 트러블 슈팅

캐릭터 점프 낮음

  • 문제점 : 캐릭터 점프가 너무 낮다
  • 해결책 : 움직임이 구현된 AddApply함수에서 y값도 같이 변경하고 있었다. 때문에 Jump 함수에서 아무리 Y축 방향으로 힘을주어도, AddApply에서 값을 변경했기때문에 점프가 낮았던 것이다.
    심지어 AddApply는 FixedUpdate 함수에서 계속 호출되는거라 Jump 함수값은 덮어질수밖에 없다.
private void Jump(bool isJump)
{
    if (isGrounded && isJump)
    { 
        movementRigidbody.AddForce(new Vector2(0, player.jumpPower)); // 점프 힘 설정
        isGrounded = false; // 점프 후에는 공중 상태로 설정
    }
}

private void ApplyMovement(Vector2 direction)
{
    Vector2 velocity = movementRigidbody.velocity;
    velocity.x = direction.x * player.speed;
    // x값만 변경

    movementRigidbody.velocity = velocity;

    Flip(direction);
}

캐릭터를 이동 방향대로 플립

  • 문제점 : 이동 방향대로 캐릭터 스프라이트를 X축 플립하고 싶다
  • 해결책 : Vector2 값을 가져와서 x값이 양수면 false, 음수면 true로 spriteRenderer.flipX 를 변경하면 플립이 된다.
private void Flip(Vector2 direction)
{
    if (direction.x > 0)
        spriteRenderer.flipX = false;
    else if(direction.x < 0)
        spriteRenderer.flipX = true;
}

0개의 댓글