2025.03.06
강의 40,41강 수강
강의 수강: Unity Turn-Based Strategy Game: Intermediate C# Coding
40. UI Setup (02:36)
씬에 UI - Canvas 생성
- Canvas Scaler
- UI Scale Mode 에서 "Scale With Screen Size" 선택
- Reference Resolution 은 1280x720 ㅡ Match 는 Height 1
Canvas 안에 UI - Image 생성
- Rect Transform - 기준 위치를 Top Left 로 설정.
- Pos X, Pos Y 도 적당한 수치 넣기
Image 는 테스트로 생성해봤던 것인지 다음 강의에서는 삭제되어있다.
41. Unit Action System UI (13:37)
Canvas 안에 UnitActionSystemUI 게임 객체 생성
- Stretch 로 배치, 위치 크기 모두 0으로 설정 UnitActionSystemUI 안에 ActionButtonContainer 생성
- Bottom Center 로 배치, 크기는 0으로, 위치는 하단으로
- Grid Layout Group 컴포넌트를 붙여서 자식들 위치 지정 그 안에서 UI 버튼 prefab 을 만든 다음에 여러 개 배치
- Outline, Shadow 컴포넌트 붙이고 폰트 스타일 바꾸면서 스타일 조정
- 위치는 Left Top 인데, 부모가 Grid Layout Group 이라서 별 의미 없을 듯
이후 UnitActionSystemUI 에서 각 유닛이 선택될 때마다 가능한 액션 목록을 가져와 버튼을 동적으로 만드는 코드를 작성함.
눈여겨볼만한 코드는 공통 부모 클래스인 BaseAction 클래스를 사용해 액션 클래스들을 한 번에 다 가져와 사용하는 것과
baseActionArray = GetComponents<BaseAction>();
UnitActionSystemUI 에서 UnitActionSystem 의 OnSelectedUnitChanged 를 활용하는 것과
private void Start()
{
UnitActionSystem.Instance.OnSelectedUnitChanged += UnitActionSystem_OnSelectedUnitChanged;
CreateUnitActionButtons();
}
private void UnitActionSystem_OnSelectedUnitChanged(object sender, EventArgs e)
{
CreateUnitActionButtons();
}
BaseAction 에 적절한 abstract 함수를 만들어 사용하는 것
public abstract string GetActionName();
특히 마지막 코드는 앞으로도 클래스 상속을 제대로 활용할 것 같아서 기대가 크다.