//구글콘솔 광고 추가가
728x90
반응형

유니티 6에서 프로젝트를 새로 만들려고 봤더니 뭔가 엄청 빠져있는 게 보인다.

 

가령 create 에서 script 추가가 Scripting을 클릭해서 MonoBehaviour Script로 만들 건지 Empty C# Script로 만들 건지를 선택해야 한다거나, 

버튼을 만들었는데 OnClick이 빠지고 clicked로 바꼈다거나...

여러모로 귀찮아졌다.

 

그래서 새로 알게 된 내용을 정리해 둔다. 또 찾아보고 싶지 않기 때문이지.

그냥 이전 걸 그대로 사용하는 게 더 편할 것 같아서 잠깐 UI Toolkit을 사용하지 말고 uGUI를 그대로 사용해 볼까도 했는데 나온 지도 꽤 됐길래 이쪽으로 쓰는 게 더 맞을 것 같다.

 

일단 

UXML 파일 생성

 

1. UXML 파일을 만들어야 한다.(UI Document)

- 프로젝트 창에서 

Assets > Create > UI Toolkit > UI Document를 선택해 UXML 파일을 생성한다.

2. UI Builder 열기.

- 생성한 UXML 파일을 더블 클릭하면 UI Builder가 열린다.

 

2. UI 구성 만들기 (UI Builder 사용)

 

1. UI Builder에서

- VisualElement를 루트로 두고,
Library에서 자신이 쓸,
- Label(Text 출력용),
- Button(추가할 버튼)
- 필요하다면 Image드래그해서 배치.

 

2. 각 요소에 이름 지정하기.

- Inspector에서 각 요소의 Name 필드를 입력한다. 

ex.

- Label의 Name : DialogueText

- Button의 Name : StartButton

 

사이즈나 위치값은 inspector에서 수정하면 된다.

 

3. UIDocument 컴포넌트 추가

 

1. 씬에 빈 GameObject 생성(ex. DialogueUI)

2. UIDocument 컴포넌트 추가.

3. UIDocument의 SourceAsset에 방금 만든 UXML파일 할당.

 

4. C# 코드에서 UI 컨트롤 제어 

 

1. UI 요소 찾기 및 이벤트 연결.

using UnityEngine;
using UnityEngine.UIElements;

public class DialogueUIController : MonoBehaviour
{
    public UIDocument uiDocument; // Inspector에서 연결

    void Start()
    {
        var root = uiDocument.rootVisualElement;

        // UXML에서 지정한 이름으로 요소 찾기
        Label dialogueText = root.Q<Label>("DialogueText");
        Button startButton = root.Q<Button>("StartButton");

        // 버튼 클릭 이벤트 등록
        startButton.clicked += () =>
        {
            dialogueText.text = "대화가 시작되었습니다!";
            // 여기에 Dialogue System 연동 코드 추가
        };
    }
}

 

2. GameObject에 스크립트 추가

위에 있는 스크립트를 UIDocument가 붙은 GameObject에 추가하고, Inspector에서 uiDocument 필드에 UIDocument 컴포넌트 연결.

 

 

728x90
반응형

+ Recent posts