728x90
SMALL

2025/04 4

Delegate, Event, Action, Func

Unity(그리고 C#)에서 델리게이트(delegate) 와 이벤트(event) 는 굉장히 중요한 개념이며 특히 게임 개발에서 객체 간 통신을 깔끔하게 처리할 때 정말 많이 쓰인다. 즉 Delegate, Event, Action, Func과 같은 함수들은 여러 가지 함수들을 하나의 변수에 저장한 뒤 처리하는 이벤트 처리방식 이다. Unity에서 델리게이트/이벤트를 많이 쓰는 곳 예시버튼 클릭 처리 (UnityEvent 내부)몬스터 죽었을 때 알림 보내기플레이어 체력 변동 알림아이템 획득 시 효과 발동씬 전환 신호 보내기 1. 델리게이트(delegate)란? - 직접 형식을 만들어서 사용하는 방법하나 이상의 메서드를 참조하는 타입입니다.메서드를 변수처럼 저장하고, 필요할 때 실행할 수 있다. 2. 이벤..

C#, 자료구조 2025.04.29

ref 와 out

ref와 out은 둘 다 값을 참조 형태로 전달하기 위해 사용되는 키워드지만, 용도와 사용 방식에 차이점이 있다. ref란?ref 키워드는 메서드에 변수를 참조로 전달할 때 사용된다. 이를 통해 메서드 내에서 변수의 값을 변경할 수 있으며, 변경된 값이 반영된다. ref를 사용할 때는 변수가 메서드 호출 전에 초기화되어 있어야 한다. 이처럼 변수를 초기화 안시키고 사용하면 컴파일 중에 오류가 난다. 왜 오류가 날까?ref를 통해 참조된 변수가 메서드 내에서 미리 정의된 값에 의존할 수 있기 때문이다. out이란?out 키워드도 메서드에 변수를 참조로 전달할 때 사용되지만, out을 사용할 때는 변수를 메서드 호출 전에 초기화할 필요가 없다. 대신, 메서드 내에서 반드시 변수를 초기화해야 한다...

C#, 자료구조 2025.04.24

[UI] - 다국어화(Localization)

지난 시간에 직접 스크립트를 만들고 적용시키며 다국어화를 적용 시켰다. 이번에는 유니티에서 제공해 주는 다국어화 시스템을 이용해서 게임에 적용시켜보자.패키지 버전은 Unity 버전 2021.2 이상부터 사용할 수 있다.   1. Package Manager에서 Loclization 패키지 설치    2. Edit -> Project Settings -> Localization -> Active Settings 만들어주기   3. 폴더 저장 후 해당 폴더에서 Locale Generator 클릭 후 사용할 언어 체크 후 폴더에 다시저장    기본 언어는 한국어로 설정하고 영어, 일본어 추가해주기 Command Line Locale Selector(기본 설정값): 커맨드라인에서 언어를 바꿀 때 사용함Syste..

[UI] - 다국어화(Json) - 2

다국어화(Json) - 1 글을 작성할 때 아래와 같은 문제점이 있었다. 이문제들을 해결해 보자.문제점1. GameObject.name을 기준으로 매칭현재 문제점: UI 텍스트 매칭 기준이 textElement.gameObject.name이기 때문에, 오브젝트 이름 변경 시 언어 데이터 매칭 실패.2.  LoadLanguage() 호출 시 파일 I/O 성능 저하현재 문제점: 매번 언어 변경 시마다 JSON 파일을 파일 경로로 직접 읽어오는 방식이라 성능 저하 및 모바일 환경에서 문제 발생 가능. 해결 방법 TextLocalizer라는 스크립트를 하나 만들어서 다국어화가 필요한 Text가 생길 때 마다 오브젝트에 해당 스크립트 붙혀주자.해당 스크립트가 붙은 오브젝트들은 Key 값을 통해 언어가 적용되도록 ..

728x90