목록GameEngine (11)
흔한 덕후의 잡동사니
오브젝트 풀(Object Pool)이란, 프로그램 실행 중 실시간 동적 할당이 성능 저하의 주요 원인이 되므로, 미리 일정량의 객체를 생성해 두고 필요할 때 재사용하는 기법이다. 이를 통해 동적 할당에 소요되는 시간을 줄이고, 프로세스의 속도 저하를 완화할 수 있다. 다음과 같은 형식으로 정의 되었다. publicObjectPool(FunccreateFunc, ActionactionOnGet, ActionactionOnRelease, ActionactionOnDestroy, boolcollectionCheck, intdefaultCapacity, intmaxSize); Unity의 오브젝트 풀링Unity에서는 UnityEngine.Pool 네임스페이스를 통해 오브젝트 풀 기능을 제공하며, 이는 제네릭(G..
git을 사용할 때 여러 사람이 동시에 같은 scene.unity를 수정하면 병합시 문제가 생긴다. 이를 방지하기 위해 다음과 같은 방법을 사용할 수 있다.동적 씬 생성:씬을 미리 만들지 않고 동적으로 생성하는 코드를 작성하여, 병합 충돌 문제를 방지하고 협업을 원활하게 진행할 수 있다.각자 작성한 코드를 적용하여 하나의 씬을 만드는 방식으로, 하나의 리소스는 한 명의 인원이 담당하는 것이 원칙을 지키면서도 병합하는데 문제가 없는 방식이다.로딩 씬 활용:동적 씬을 생성할 때 활용되는 방식이다.인트로 진입 시, 인게임에서 사용할 리소스를 미리 로딩하는 씬을 만들어 로딩 시간을 단축한다.씬의 리소스가 많아질수록 로딩 시간이 증가하므로, 인게임 오브젝트가 로드될 때까지 임시로 보여주는 '로딩 씬'을 사용한다..
카드 뒤집기 관련 이펙트를 구현하기 위해 Transform을 사용하여 회전 및 크기 조정을 시도했다. 이때, 변경에 필요한 시간을 Time.deltaTime을 사용해 일정 시간 동안 부드럽게 변경되도록 구현했다. 그러나 코드 상으로는 시간 내에 회전이 완료되어야 했지만, 회전이 중간에 멈추는 현상이 발생했다. 문제 원인이 문제는 Unity에서 제공하는 Time.deltaTime이 항상 일정하지 않기 때문에 발생했다. Time.deltaTime은 프레임 간의 시간 차이를 반환하므로, 프레임률(FPS)이 불안정한 경우 회전 속도가 일정하지 않을 수 있다. 특히 저사양 기기나 복잡한 씬에서는 프레임률이 떨어져 이 문제가 더 두드러질 수 있다. 해결 방법: Coroutine 도입이 문제를 해결하기 위해 Coro..