Open zzangae opened 4 hours ago
각 TAB 버튼을 클릭했을 때, selectedTab 변수를 해당 버튼의 인덱스 값 i로 설정하여 선택된 탭을 저장합니다.
tabLabels[selectedTab] 값을 Label에 표시하여, 선택된 탭에 맞는 텍스트가 표시되도록 설정하였습니다.
코드에서 GUI.Label을 사용해 선택된 탭에 맞는 내용을 표시하는 부분입니다. 각 탭을 클릭할 때, 탭에 대응하는 Label이 동일한 위치에 표시됩니다. 이 동작은 currentLabel 변수에 저장된 값을 GUI.Label로 출력하는 방식으로 구현되어 있습니다.
// 선택된 탭에 따라 Label 내용 변경 string currentLabel = tabLabels[selectedTab]; // Label 크기와 위치 설정 float labelWidth = Screen.width * 0.5f; float labelHeight = Screen.height * 0.05f; float labelX = boxX + (boxWidth - labelWidth) / 2; // 박스 중앙에 배치 float labelY = boxY + boxHeight * 0.1f; // 박스 상단에서 10% 지점에 위치 // 선택된 탭에 맞는 Label 표시 GUI.Label(new Rect(labelX, labelY, labelWidth, labelHeight), currentLabel, this.labelStyle);
tabLabels[selectedTab] 값을 currentLabel에 할당합니다. 이 값은 tabLabels[] 배열에서 현재 선택된 탭의 인덱스에 맞는 값을 가져옵니다. 예를 들어, TAB 1이 선택되면 tabLabels[0] 값인 "Label 1"이 표시됩니다.
만약 Label의 스타일(폰트 크기, 색상 등)을 변경하고 싶다면, labelStyle을 조정할 수 있습니다. 예를 들어, 폰트 크기나 색상을 설정하려면 다음과 같이 할 수 있습니다:
if (this.labelStyle == null) { this.labelStyle = new GUIStyle(GUI.skin.label); this.labelStyle.fontSize = 16; // 폰트 크기 설정 this.labelStyle.normal.textColor = Color.white; // 텍스트 색상 설정 }
IMGUI를 사용하여 6개의 TAB 버튼을 만들고, 각각의 버튼을 눌렀을 때 그에 맞는 Label이 표시되도록 하려면, 버튼 클릭에 따라 어떤 텍스트를 표시할지 관리할 수 있는 변수를 사용해야 합니다.
구현 개요:
주요 설명:
selectedTab 변수:
현재 선택된 탭의 인덱스를 저장하는 변수입니다. TAB 1 버튼을 클릭하면 selectedTab = 0, TAB 2 버튼을 클릭하면 selectedTab = 1과 같이 선택된 탭 번호를 저장합니다.
tabLabels 배열:
각 탭에 따라 표시할 내용을 저장하는 배열입니다. 예를 들어, Label 1, Label 2, ..., Label 6의 내용을 정의해 두었고, selectedTab 값에 따라 이 배열에서 해당하는 내용을 가져와서 Label에 표시합니다.
TAB 버튼 클릭 처리:
각 TAB 버튼을 클릭하면 selectedTab 변수에 해당 버튼의 인덱스가 저장됩니다. 이렇게 저장된 인덱스를 기반으로 Label의 내용을 바꿔서 화면에 표시합니다.
Label 위치:
모든 탭에서 Label은 동일한 위치에 있습니다. 선택된 탭에 따라 다른 내용을 보여줄 뿐, Label의 위치는 고정되어 있습니다.
실행 시 결과:
TAB 1을 클릭하면 Label 1이 표시되고, TAB 2를 클릭하면 Label 2가 동일한 위치에 표시됩니다.
나머지 TAB 버튼을 클릭할 때도 각각 Label 3, Label 4, Label 5, Label 6이 동일한 위치에 표시됩니다.
이 코드를 통해 여러 탭을 클릭할 때 각 탭에 맞는 내용을 같은 위치에 표시할 수 있습니다.
commit 링크 따라가세요. [8e4a04a34c63d871e45a939bf5c6463e791cae38]