Develop/Unity

몬스터가 플레이어를 추적하는 기능을 구현하는 중 Nav Agent가 회전이 너무 굼뜬 문제가 있었다.몬스터가 이동 중에 회전해야하는 경우라면 그럭저럭 봐줄만한 수준이지만, 플레이어가 바짝 붙어 있는 경우에는 회전이 너무 굼떠서 문제가 된다. 그렇다고 뒤로 칼을 휘두를 수도 없다. 그러니 몬스터 입장에선 플레이어가 엉덩이에 바짝 붙어서 뒤만 잡으면 아무런 피해도 입지 않고 손쉽게 전투가 진행될 수 있다.따라서 플레이어와 거리에 따라 회전 속도를 제어해야한다.해결책 1. Nav Agent의 회전 속도를 동적으로 제어해본다.기존에는 이동 속도만 제어하고 있었는데 여기에 Agent.angularSpeed를 제어하는 코드를 추가하면 된다.이상적인 수치는 아직 모르기 때문에 적당히 아무 숫자를 넣어서 처리했다.fl..
싱글톤이 뭐에요?간단히 말해, “하나의 클래스 인스턴스만 존재하도록 보장하고, 그 인스턴스를 전역적으로 공유하자!” 라는 철학이 담긴 디자인 패턴이에요.우리 게임에서 사운드 매니저, 게임 매니저 같은 애들은 굳이 여러 개가 있을 필요가 없잖아요. 여기저기서 귀찮게 FindObjectOfType 같은 거 돌리지 말고, 하나만 확실하게 잡아놓고 전역으로 꺼내 쓰자… 그게 싱글톤입니다.왜 싱글톤을 써야할까?전역 접근"어디서든" Manager.Instance 이런식으로 호출할 수 있어서 편해요.특히 공통 데이터나 시스템은 여기저기서 참조가 많이 필요한데, 그럴 때 아주 간단하게 불러올 수 있어요.중복 방지사운드 매니저나 게임 매니저가 두 개, 세 개씩 생겨서 꼬이는 일을 없게 만들어줘요."이미 만들어진 싱글톤이..
오브젝트 풀링이란?오브젝트 풀링은 객체를 반복해서 생성하고 삭제하는 대신, 미리 만들어 놓고 재사용하는 디자인 패턴이다.“필요할 때 꺼내 쓰고, 쓰지 않을 때는 돌려주는 대여 서비스라고 생각하면 쉽다!”왜 오브젝트 풀링이 필요할까?문제점객체를 반복적으로 생성/삭제하면 성능이 저하되고 메모리 사용량이 증가한다.특히 게임과 같이 실시간으로 빠른 응답 속도가 필요한 환경에서는 큰 문제가 될 수 있다.오브젝트 풀링의 장점성능 최적화 : 매번 객체를 생성하는 대신 재사용하니 CPU와 메모리 사용량 감소.효율성 : 자주 사용되는 객체를 미리 생성해두면 더 빠르게 사용할 수 있다.가비지 컬렉션 감소 : 객체 삭제를 최소화하므로 GC 호출 횟수가 줄어들어 끊김 현상 방지.어떻게 사용하지?1. 기본 오브젝트 풀 구현하기..
Mastodon