전체 글22 [🎮게임] 유니티 청크로딩을 만들어보았다. 오늘은 유니티에서 청크로딩을 구현해보겠습니다.마인크래프트를 플레이 해보신 분은 '청크'라는 것을 들어보셨을 겁니다. 오픈월드 게임에서 모든 월드 데이터를 전부 로딩하면 성능상의 문제가 있어 공간을 청크로 나누어 플레이어 주변 청크만을 로딩해 최적화 합니다. 유니티 2D 타일맵 환경에서 청크로딩을 만들어보겠습니다.청크가 담는 데이터는 지형정보 뿐 아니라, 몬스터나 식물 같은 오브젝트 데이터, 수정된 지형 정보 등, 개발하는 게임에 따라 달라질 수 있습니다. 그러니 청크 구현은 건너뛰고 청크로딩을 책임지는 청크관리자(ChunkManager)를 보겠습니다.public class ChunkManager : MonoBehaviour{ public static ChunkManager Instance { get.. 2025. 4. 20. [🧊그래픽스] 지형 자동 생성을 만들어보았다. 테라리아나 마인크래프트같은 샌드박스 게임을 보면 시드값만 주어지면 지형이 자동으로 생성되는 것을 볼 수 있습니다. 오늘은 2D 횡스크롤뷰 맵 지형을 자동으로 생성해보겠습니다.지형 생성 알고리즘은 대부분 노이즈 생성을 기반으로 합니다. 저 또한 노이즈 기반. 그중에서도 펄린 노이즈(Perlin noise)를 이용해 지형을 생성해보겠습니다. 기본적인 아이디어는 연속적인 노이즈값을 생성해 헤이트맵(Height map)으로 사용하는 겁니다. 그럼 먼저 펄린 노이즈 생성부터 봅시다.1. 펄린노이즈유니티 Mathf에 펄린 노이즈 함수가 있으니 그대로 사용하면 됩니다.float perlin = Mathf.PerlinNoise1D(x);하지만 문제가 있습니다. 이렇게 하면 항상 같은 노이즈가 생성됩니다. 그럼 시드를 .. 2025. 4. 19. [🎮게임] 서로 다른 룰타일 연결을 만들어보았다. 유니티 기본 룰 타일은 룰 타일 종류가 다르면 서로 인식이 안됩니다.오늘은 서로 다른 룰타일도 연결이 되도록 해보겠습니다.구현 방법은 매우 간단합니다. 기존 룰 타일을 상속받아 RuleMatch함수를 override해주기만 하면 됩니다.using UnityEngine;using UnityEngine.Tilemaps;[CreateAssetMenu(menuName = "2D/Tiles/Ham Rule Tile")]public class HamRuleTile : RuleTile{ public override bool RuleMatch(int neighbor, TileBase other) { ... }}저번 일지에서 상단 메뉴 추가를 해봤었죠. 이번에도 비슷하게 에셋 생성 메뉴에 "Ham Ru.. 2025. 4. 18. [🎮게임] 유니티 룰타일 자동 로딩을 만들어보았다. 유니티에서 룰타일 에셋을 불러오려면이미지 파일 로드임포트 세팅 (ppu, compression 등)Sprite editor를 이용한 slicingRule 설정이런 과정이 필요한데요. 이 과정이 생각보다 매우 귀찮습니다. 게다가 저는 룰 종류가 47가지라 override rule tile을 사용한다손 처도 손으로 이걸 하는건 너무 귀찮겠죠. 그래서 타일에셋 불러오기를 자동화 해보는게 오늘 목표입니다. ※ 룰타일/타일맵 기초1. 메뉴추가커스텀 메뉴를 추가하는 방법은 다음과 같습니다public class RuleTileBuilder{ [MenuItem("Tools/Build HamRuleTile from PNG")] public static void BuildHamRuleTile() { ... }}이렇게 하.. 2025. 4. 17. 이전 1 2 3 4 다음