지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=vOC3usydLeE&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=14 이번 강의에서는 적들이 랜덤한 위치에서 생성되도록 해보자. 시작해보자. MapGenerator 스크립트를 통해 만든 타일맵에서 비어있는 타일 중 하나를 랜덤으로 선택하고 해당 타일에 적이 스폰되도록 하자. 이 때, 적을 스폰하기 전에 타일을 붉은색으로 반짝여 적 스폰을 알려주자. 이를 위해 MapGenerator 에서 생성한 타일들의 정보를 받아오도록 하자. | MapGenerator 스크립트 using System.Collections; using System.Coll..
Unity/게임개발
지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=HuQITd3epIU&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=13 이번 강의에서는 맵 생성기에 기능을 추가하고, 생성한 맵에 적들이 움직이도록 적용해보자. 시작해보자. 맵 생성기에 장애물 높이, 색상 설정 기능을 추가하자. 그리고 지금까지 만든 맵 생성기를 게임에 적용하기 위해 래핑(Wrapping, 클래스를 사용하기 쉽도록 적절한 인터페이스 등의 형태로 감싸주는 것) 해주자. 이를 위해 Map 클래스를 생성하여 속성들을 정리해주자. 이제 스테이지별로 맵을 다르게 하기 위해 Map 배열을 생성하여 배열에서 선택된 맵을 생성하도록 한다...
지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=vQgLdFNrCN8&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=12 이번 강의에서는 지금까지 만들어놓은 맵 생성기를 게임(내브메쉬)에 적용해본다. 시작해보자. 생성한 맵에서도 적들이 플레이어를 추적하게 하기 위해 Navmesh 를 적용해야 한다. 이 때, 맵 전체를 덮는 내브메쉬를 생성하고 돌아다니지 않는 부분은 맵에서 마스킹(제외)시킨다. 이 때문에 보이지 않는 평평한 바닥이 필요하므로 Quad(쿼드) 오브젝트를 하나 생성하자. Map 오브젝트의 아래에 Quad 오브젝트를 생성, Navmesh Floor 로 이름을 변경한다. 메쉬 콜라..
지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=2ycN6ZkWgOo&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=11 이번 강의도 지난 강의에 이어 맵 자동 생성에 대해서 다루는데, 이번에는 장애물 자동 생성 후 고립 지역이 없도록 조정하는 것을 다룰 것이다. 시작해보자. 맵에 막힌 곳이 있는지 체크하기 위해 Flood Fill 알고리즘을 사용한다. Flood Fill 알고리즘은 Seed Fill 이라고도 불리는데, 다차원 배열의 어떤 칸과 연결된 영역을 찾는 알고리즘이다. 주변에서 흔히 볼 수 있는 예시로 그림판이나 포토샵의 채우기 기능, 혹은 지뢰찾기 게임에서 지뢰가 없는 칸을 한번..
지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=q7BL-lboRXo&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=10 이번 강의도 지난 강의에 이어 맵 자동 생성에 대해서 다루는데, 그 중에서 랜덤한 타일에 장애물을 생성하는 것을 다룰 것이다. 시작해보자. 맵에 장애물을 생성하기 위한 방법으로 간단하게 랜덤한 타일의 x, y 좌표를 받고, 그곳에 장애물을 생성할 수 있다. 하지만 이 방법을 사용하면 장애물이 중복된 위치에 생성될 수 있다. 이를 해결하기 위해 모든 타일들의 좌표를 배열로 저장하고 섞은 다음, 첫 번째 위치를 첫 번째 장애물 위치로 한다. 위 강의에서는 배열의 셔플 알고리..
지난번에 이어 게임을 만들어보자. 이번에 참고할 강의는 아래 강의이다. https://www.youtube.com/watch?v=gIUVRYViG_g&list=PLctzObGsrjfyevwpeEVQ9pxGVwZtS7gZK&index=9 이번 강의부터 한동안은 맵 자동 생성에 대해 다룬다. 시작해보자. 맵 생성기를 제작하여 임시로 저장해 놓을 새로운 씬 MapGenerator 를 만든다. 빈 오브젝트 Map 을 생성하고 위치를 0, 0, 0 으로 설정하자. MapGenerator 스크립트를 생성하고 Map 오브젝트에 할당해준다. 이제 MapGenerator 스크립트를 작성하자, 일단은 일부만 작성했다. | MapGenerator 스크립트 using System.Collections; using System..