(25/08/29) Unity FPS 표시 & 메모리 관리

허윤·2025년 8월 28일
post-thumbnail

한글 주석 깨짐 방지

.editorconfig 파일에 아래 옵션 추가

indent_style = space
charset = utf-8

✅ 한글 주석 깨짐 방지 완.


FPS 표시하기

FPS를 UI 텍스트로 표시하는 간단한 스크립트

using UnityEngine;
using UnityEngine.UI;

public class FPSDisplay : MonoBehaviour
{
    public Text fpsText;  // FPS 표시용 UI 텍스트
    float deltaTimeFloat = 0f;  // 델타타임 보간용
    float m;    // ms 단위 프레임 시간
    float fps;  // FPS 값

    void Start()
    {
        QualitySettings.vSyncCount = 1;
        // 0 → V-Sync 끔 (무제한 FPS)
        // 1 → 모니터 주사율 맞춤 (예: 60Hz → 60FPS)
        // 2 → 주사율 절반 맞춤 (예: 60Hz → 30FPS)

        Application.targetFrameRate = -1; // 프레임 제한 해제
    }

    void Update()
    {
        deltaTimeFloat += (Time.unscaledDeltaTime - deltaTimeFloat) * 0.1f;
        m = deltaTimeFloat * 1000.0f;   // ms 단위 프레임 시간
        fps = 1.0f / deltaTimeFloat;    // FPS 계산
        fpsText.text = fps.ToString("F0"); // 정수 출력 ("F1" → 소수점 1자리)
    }
}

V-Sync 옵션 정리

  • Don't Sync → V-Sync 미사용, FPS 무제한
  • Every V Blank (기본값) → 모니터 주사율에 맞춰 동기화
    • ex) 60Hz 모니터 → 60FPS 제한
  • Every Second V Blank → 주사율 절반에 동기화
    • ex) 60Hz 모니터 → 30FPS (성능 절약용)

그래픽 드라이버 & 모니터 환경변수에 따라 FPS 제한이 결정됨.


메모리 관리 (Destroy 필요 리소스)

Unity에서 GC가 자동 수집하지 않는 리소스는 수동 파기 필수.

Destroy() 해줘야 하는 것들

  • RenderTexture
  • Mesh
  • Material / Shader
  • AudioClip
  • Font
  • Sprite
  • ComputeBuffer
  • GraphicsBuffer

주의사항

  • Texture2D, Sprite 등도 더 이상 사용하지 않을 경우 Destroy() 필요
  • 해제하지 않으면 메모리 누수(memory leak) 발생

오늘의 배움

  • .editorconfigcharset = utf-8 → 한글 주석 깨짐 방지
  • FPS 표시 스크립트로 성능 확인 가능
  • V-Sync 옵션 이해 → FPS 제어
  • 리소스는 꼭 Destroy() 해줘야 메모리 누수 방지
profile
C# 클라이언트 프로그래밍 지망

0개의 댓글