기본 패턴
csharp
public interface IUpdatable
{
void Tick();
}설명
- Unity 공식 성능 가이드는 많은
Update메서드가 쌓일 때 중앙 갱신 관리 구조를 고려하라고 설명합니다. - 모든 오브젝트가 매 프레임 독립적으로
Update를 받기보다, 필요한 대상만 묶어 순회하면 제어가 쉬워집니다. - 간헐적으로만 갱신해도 되는 시스템은 n프레임마다 한 번만 돌게 만드는 전략과 잘 맞습니다.
- 무조건 바꾸기보다, 대규모 에이전트나 UI 요소처럼 수가 많은 계층에서 특히 효과가 큽니다.
짧은 예제
csharp
public class UpdateManager : MonoBehaviour
{
private readonly List<IUpdatable> items = new();
private void Update()
{
for (int i = 0; i < items.Count; i++)
{
items[i].Tick();
}
}
}빠른 정리
| 항목 | 설명 |
|---|---|
| 중앙 갱신 | 여러 Update를 한 곳에서 관리 |
| 선택적 갱신 | 필요한 대상만 순회 가능 |
| n프레임 갱신 | 빈도가 낮은 작업 분산 가능 |
| 대규모 시스템 | 많은 오브젝트에서 장점이 큼 |
| 과도한 일반화 주의 | 작은 프로젝트에는 과할 수 있음 |
주의할 점
Update Manager는 구조를 단순화할 수도 있지만, 잘못 만들면 오히려 의존성이 한곳에 몰릴 수 있습니다. 대상 수가 많고 패턴이 반복될 때 도입하는 편이 낫습니다.
참고 링크
2 sources