Infinity Value
API

단위 이름

InfinityValueUnitNames로 콘텐츠별 단위 접미사 관리

InfinityValueUnitNames는 인스턴스 객체입니다. 기존의 전역 설정 방식을 대체하여, 각 콘텐츠 시스템이 자체 접미사 테이블을 소유할 수 있게 합니다.

기본 단위

기본 테이블은 빈 기본 단위로 시작해 A, B, C ... CZ까지 이어집니다.

InfinityValue value = new InfinityValue(1_500_000L);
Debug.Log(value); // 1.50B

커스텀 단위

인덱스 0은 기본 수 단위를 나타내므로 반드시 빈 문자열이어야 합니다.

var units = new InfinityValueUnitNames(new[]
{
    "", "K", "M", "B", "T", "Qa", "Qi", "Sx"
});

InfinityValue value = new InfinityValue(5_300_000_000L, units);
Debug.Log(value); // 5.30B

여러 콘텐츠 테이블

콘텐츠마다 전역 상태를 건드리지 않고 서로 다른 이름을 유지할 수 있습니다.

var currencyUnits = new InfinityValueUnitNames(new[] { "", "K", "M", "B" });
var damageUnits = new InfinityValueUnitNames(new[] { "", "a", "b", "c" });

InfinityValue gold = new InfinityValue("12K", currencyUnits);
InfinityValue damage = new InfinityValue("12a", damageUnits);

파싱

저장된 문자열은 항상 그것을 만든 단위 테이블과 동일한 테이블로 파싱하세요.

if (InfinityValue.TryParse("42M", currencyUnits, out var value))
    Debug.Log(value);

검증

InfinityValueUnitNames는 다음의 경우 예외를 던집니다.

  • 이름 목록이 null인 경우
  • 목록이 비어 있는 경우
  • 인덱스 0이 빈 문자열이 아닌 경우
  • 단위 이름이 null인 경우
  • 단위 이름이 중복되는 경우

목차