본문 바로가기

unity13

[유니티 강좌] 2D RPG 게임 만들기 - 8 / 벽에 붙는 현상 안녕하세요. 오랜만에 포스팅입니다. 그동안 댓글로 응원해주신 분들 모두 감사드리고 죄송합니다! 현재까지 진행된 프로젝트 압축 파일은 구글 드라이브에 올려놨습니다. 혹시 막히시면 참고해주세요. RPG 만들기 - Google Drive 이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요. drive.google.com 이번에 다룰 주제는 유니티의 포럼과 질문에 여러 번 등장한 주제이니만큼 그냥 넘길 수는 없을 것 같습니다. 벽 쪽으로 이동하면서 벽면을 타면 잘 미끄러지지 않게 되는 문제입니다. transform.Translate를 사용할 때는 문제 없지만, Rigidbody.AddForce, Rigidbody.velocity같은 물리적으로 작동하는 함수로 이동할 때만 해당 현상이 발생합니다... 2021. 3. 15.
[유니티 강좌] 2D RPG 게임 만들기 - 7 / 점프 전 포스팅에서 이동관련 함수들을 알아봤는데요. 여러가지 방법이 사용될 수 있다는 것을 알았습니다. 마찬가지로 점프도 다양한 방법이 있겠지만 여기서는 Rigidbody.AddForce, Rigidbody.velocity를 사용해보겠습니다. 점프를 구현하기 위한 과정 1. 애니메이터 설정 2. 레이캐스트로 땅과 충돌 체크 3. 점프하기 애니메이터 설정 점프 애니메이션이 없다면 이 과정은 생략해도 됩니다. Idle과 Jump, Run과 Jump에 Transition을 생성해줍니다. 파라미터에 Bool로 jumping을 선언해줍니다. 애니메이션 전환 조건을 밑의 그림에 따라 설정해줍니다. 애니메이터 설정은 끝났습니다. Has Exit Time, Settings 부분은 조금 있다가 직접 점프를 눌러보면서 수정해도.. 2020. 6. 7.
[유니티 강좌] 2D RPG 게임 만들기 - 6 / Translate의 문제점과 대안 지금까지 이동은 Translate라는 함수로 했습니다. 이 함수는 물리 제어로 움직이게 하는 것이 아니라서 약간의 문제가 있습니다. 예를 들어 Collider가 붙어있다고 가정했을 때 만약 어떤 물체와 맞닿은 상태에서 Translate로 계속 부딪히려고 한다면 밀어내는 것과 움직이는 것이 불규칙적으로 반복되어서 진동하는 것처럼 보이게 됩니다. Update에서 Translate 사용 이것은 Collider가 밀어내는 것(FixedUpdate)과 움직이는 것(Update)이 일정하지 않아서 발생하는 현상이므로, Translate를 FixedUpdate에서 사용하게 된다면 진동하지 않습니다. 더보기 0.02초당 한번씩(초당 50번) 고정적으로 실행되는 메시지입니다. 물리 시스템은 모두 FixedUpdate로 .. 2020. 6. 6.
[유니티 강좌] 2D RPG 게임 만들기 - 5 / 적 공격하기 적을 공격하는 것을 크게 두 가지로 나눈다면 1. 공격 판정 정하기 2. 맞은 적의 HP 줄이기 정도가 되겠습니다. 공격 판정은 여러 방식으로 정할 수 있지만 이번 강좌에서는 유니티 엔진에서 제공하는 것을 사용해보겠습니다. 공격 방식은 판정의 영역을 정해서 그 범위 안에 있다면 맞게 할 수도 있고 아니면 판정을 무기에 붙여서 무기를 휘둘렀을 때 판정 영역에 있다면 맞게 할 수도 있습니다. 저는 후자의 방법을 택해서 진행해보도록 하겠습니다. 먼저 무기에 Box Collider2D를 붙입니다. 그리고 본체에도 Collider2D를 붙여줍니다. 적에게도 몸에 Collider를 붙여줍니다. Collider는 물리적인 상호작용을 할 수 있게 해서 Collider들끼리 충돌하고 밀어낼 수 있습니다. 그리고 Rigi.. 2020. 5. 23.