확장 메서드
AchUtils.Extensions 어셈블리는 AchEngine에서 분리해 온 Unity 런타임 확장 메서드와 작은 유틸리티 클래스 모음입니다.
네임스페이스는 모두 AchUtils로 정리되어 있으므로 사용 파일에서 using AchUtils;만 추가하면 됩니다.
설치 정보
| 항목 | 값 |
|---|---|
| 어셈블리 | AchUtils.Extensions |
| 루트 네임스페이스 | AchUtils |
| 폴더 | Runtime/Extensions |
| 추가 Unity 패키지 | com.unity.ugui, com.unity.nuget.newtonsoft-json |
포함 범위
컬렉션
| 클래스 | 주요 용도 |
|---|---|
ArrayExt, ListExt | 배열과 리스트 조작 |
DictionaryExt, MultiDictionary<TKey,TValue> | 딕셔너리 편의 기능과 한 키에 여러 값을 담는 컬렉션 |
IEnumerableExt, IListExt, LinqE | LINQ 보조 메서드와 셔플, 필터링, 변환 |
Unity 타입
| 클래스 | 주요 용도 |
|---|---|
GameObjectExt, ComponentExt | 컴포넌트 검색, 추가, 제거, 계층 탐색 |
Vector2Ext, Vector3Ext, RectExt | 좌표, 크기, 범위 계산 |
ColorExt, ColorUtils | 색상 변환과 Hex 처 리 |
SpriteRendererExt, SpriteAtlasExt | 스프라이트 렌더러와 아틀라스 편의 기능 |
UI
| 클래스 | 주요 용도 |
|---|---|
RectTransformExt | UI 레이아웃 좌표와 앵커 조작 |
ImageExt, RawImageExt, GraphicExt, TextExt | uGUI 컴포넌트 편의 기능 |
ButtonClickedEventExt | 버튼 클릭 이벤트 래핑 |
기본 타입과 공통 유틸리티
| 클래스 | 주요 용도 |
|---|---|
StringExt, StringParseExt, StringBuilderExt | 문자열 검사, 파싱, 조합 |
IntExt, UintExt, FloatExt, BoolExt, ByteExt, EnumExt | 기본 타입 변환과 검사 |
ActionExt, FuncExt, DelegateExt, UnityEventExt | 콜백과 이벤트 호출 보조 |
Selectable<T>, SelectableList<T>, SelectableBool | 값 변경 콜백을 가진 래퍼 |
SingleTask, MultiTask, StringAppender | 반복 작업 과 문자열 조립 보조 |
PlayerPrefsExt, IJsonExt, IncomingWebhooks | JSON 저장, 직렬화, 웹훅 전송 |
사용 예시
using AchUtils;
using UnityEngine;
public class ExtensionSample : MonoBehaviour
{
private void Awake()
{
var rb = gameObject.GetOrAddComponent<Rigidbody>();
gameObject.SetActiveIfNotNull(true);
var hp = new Selectable<int>(100);
hp.mChanged += () => Debug.Log($"HP changed: {hp.Value}");
hp.Value = 80;
var skills = new MultiDictionary<string, string>();
skills.Add("warrior", "Slash");
skills.Add("warrior", "Block");
}
}
마이그레이션
AchEngine에서 사용하던 코드는 네임스페이스만 바꾸면 됩니다.
- using AchEngine;
+ using AchUtils;
AchEngine.Extensions.ReflectionE와 AchEngine.Extensions.ZciencE 하위 네임스페이스도 각각 AchUtils.Extensions.ReflectionE, AchUtils.Extensions.ZciencE로 이동했습니다.