tow0827

tow0827

채택률 높음

unity로 게임을 만드는법을 배우고있는 중3입니다

간단하게캐릭터이동,대쉬,점프,바람,공격,적(슬라임),애니메이션을 cs코드로 구현시켰는데 메모리를 3~40프로를 잡아먹고 로딩도 너무 오래 걸리네요 어떻게하면 해결할수 있을까요?

2개의 답변이 있어요!

  • 안녕하세요. 감병주 전문가입니다.

    Unity에서 메모리를 많이 사용하는 원인은 대부분 코드보다 이미지, 오디오, 애니메이션 때문인 경우가 많습니다.
    스프라이트 해상도를 낮추고 텍스처 압축 설정을 적용하면 메모리 사용량을 줄일 수 있습니다. 그리고 공격 이펙트나 적 생성 시 Instantiate와 Destroy를 반복하기보다 오브젝트 풀링을 사용하는 것이 좋습니다.
    또한 Update()에 너무 많은 기능을 넣으면 성능이 떨어질 수 있어 코루틴이나 이벤트 방식으로 분리하는 것이 효율적입니다. 씬에 모든 오브젝트를 한 번에 불러오지 말고 필요한 것만 로드하는 방식도 도움이 됩니다.
    Unity Profiler를 사용해 Memory와 GC.Alloc 항목을 확인하면 어떤 부분이 문제인지 쉽게 찾을 수 있습니다.

    채택 보상으로 121베리 받았어요.

    채택된 답변
  • 안녕하세요. 서종현 전문가입니다.

    • 불필요한 리소스 확인 및 최적화
      사용하지 않는 텍스처, 오디오, 애니메이션 클립 등이 포함되어 있으면 메모리를 잡아먹습니다. 프로젝트 내 리소스를 꼼꼼히 정리해 보세요

    • 텍스처와 모델 용량 줄이기
      텍스처 해상도가 너무 크거나, 3D 모델 폴리곤 수가 많으면 메모리가 많이 필요합니다. 필요한 만큼만 해상도와 폴리곤 수를 줄이세요

    • 애니메이션 관리 방법 개선
      애니메이션을 너무 많이 한꺼번에 불러오면 메모리가 늘어납니다. 애니메이션 클립을 적절히 분리하고, 필요한 순간에만 로딩 후 재생하는 방식을 사용하세요

    • 씬(Scene) 관리 최적화
      하나의 씬에 너무 많은 게임 오브젝트가 있으면 로딩 속도와 메모리 사용량이 증가합니다. 씬을 여러 개로 나누거나 비활성화할 오브젝트는 꼭 비활성 상태로 두세요

    • 코드 최적화
      대쉬, 점프등의 기능이 과도하게 업데이트 함수에서 실행되거나, 객체 풀링(Pooling)을 사용하지 않고 오브젝트를 자주 생성/파괴하면 성능 저화와 메모리 증가가 일어납니다. 객체 풀링을 꼭 적용해 보세요

    • 빌드 설정 점검
      빌드시 불필요한 리소스가 포함되는지 압축 설정은 적절한지 확인하세요