본문 바로가기

분류 전체보기31

[유니티 강좌] 2D RPG 게임 만들기 - 12 / 아이템 파란색 잼 - 이동속도 증가 초록색 잼 - 공격속도 증가 빨간색 잼 - 체력회복 스크립트 폴더 안에 items 폴더를 만들고, 아이템마다 스크립트를 만듭니다. GemBlue.cs public class GemBlue : MonoBehaviour { // 10초간 이동속도 100% 증가 private void OnTriggerEnter2D(Collider2D col) { if(col.CompareTag("Player")) { Sword_Man swordMan = col.GetComponent(); StartCoroutine(IncreaseMoveSpeed(swordMan)); GetComponent().enabled = false; // Destroy를 하면 코루틴이 정지되므로, 임시로 그림만 없앴음. G.. 2021. 3. 24.
[유니티 강좌] 2D RPG 게임 만들기 - 11 / 간단한 적 AI 범위 안에 들어온 적을 쫓아가고, 공격 사거리에 들어왔을 때 공격을 하는 간단한 AI를 만들어보겠습니다. 실행 흐름 의사 코드 while True if 시야 범위 안에 들어왔을 때 then 타깃 방향 쳐다보기 if 공격 범위 안에 들어왔을 때 then 공격 else 추적 end if endif endwhile EnemyAI 이 구조를 토대로 EnemyAI 스크립트를 만들겠습니다. public class EnemyAI : MonoBehaviour { public Transform target; float attackDelay; Enemy enemy; Animator enemyAnimator; void Start() { enemy = GetComponent(); enemyAnimator = enemy.ene.. 2021. 3. 21.
[유니티 강좌] 2D RPG 게임 만들기 - 10 / 따라오는 카메라, 영역 설정 이번 포스팅은 자세히 이해하지 않아도 괜찮으니 바쁘신 분들은 스크립트만 가져가셔도 괜찮습니다. public class CameraFollow : MonoBehaviour { public Transform target; public float smoothSpeed = 3; public Vector2 offset; public float limitMinX, limitMaxX, limitMinY, limitMaxY; float cameraHalfWidth, cameraHalfHeight; private void Start() { cameraHalfWidth = Camera.main.aspect * Camera.main.orthographicSize; cameraHalfHeight = Camera.main.or.. 2021. 3. 18.
[유니티 강좌] 2D RPG 게임 만들기 - 9 / 맵 생성, 타일 맵 Unity Asset Store의 Mine Tileset을 사용했습니다. 텍스쳐부분만 사용할 거라 다른 파일은 삭제해 드라이브에 업로드했습니다. Assets -> Import Package -> Custom Package로 불러와주세요. RPG 만들기 - Google Drive 이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요. drive.google.com 팔레트를 저장할 Palettes 폴더와 타일을 저장할 Tiles 폴더를 생성합니다. Hierarchy창에서 타일맵을 생성합니다. Grid와 Tilemap이 생성되면서 격자무늬가 보이게 됩니다. 우측 하단에 Open Tile Palette를 클릭합니다. (이미지에 Tilemap이라고 되어있는데 실수로 변경을 못했습니다. Ground로.. 2021. 3. 18.
[유니티 강좌] 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.
에픽게임즈 런처 설치 오류 유효하지 않은 드라이브 해결방법 과거 설치했던 드라이브가 사라지고, 잔여 파일이 남아 오류가 발생하는 것으로 추측됩니다. 런처를 제거하되, 프로그램 추가/제거에서 제거하는 것보다 남은 레지스트리를 삭제해주는 IObit UnInstaller을 사용하는 것이 안전할 수 있습니다. IObit Uninstaller 사이트 IObit Uninstaller - Best Free Software Uninstall Tool for Your Windows XP/7/8/10 PC Smooth & Healthy System IObit Uninstaller 9 not only uninstalls programs, but also cleans up the leftovers. Once it finds out the left associated files, fo.. 2020. 6. 3.
[유니티 강좌] 2D RPG 게임 만들기 - 5 / 적 공격하기 적을 공격하는 것을 크게 두 가지로 나눈다면 1. 공격 판정 정하기 2. 맞은 적의 HP 줄이기 정도가 되겠습니다. 공격 판정은 여러 방식으로 정할 수 있지만 이번 강좌에서는 유니티 엔진에서 제공하는 것을 사용해보겠습니다. 공격 방식은 판정의 영역을 정해서 그 범위 안에 있다면 맞게 할 수도 있고 아니면 판정을 무기에 붙여서 무기를 휘둘렀을 때 판정 영역에 있다면 맞게 할 수도 있습니다. 저는 후자의 방법을 택해서 진행해보도록 하겠습니다. 먼저 무기에 Box Collider2D를 붙입니다. 그리고 본체에도 Collider2D를 붙여줍니다. 적에게도 몸에 Collider를 붙여줍니다. Collider는 물리적인 상호작용을 할 수 있게 해서 Collider들끼리 충돌하고 밀어낼 수 있습니다. 그리고 Rigi.. 2020. 5. 23.