본문 바로가기
Unity/수업 내용

[UGUI] StudyUI - Tap

by 이지훈26 2021. 11. 4.

tap 오브젝트 생성 후 크기 조정

자식으로 tap1, tap2 를 생성 후 크기 조정(반반씩)

 

 

UI -> Text를 만들어 폰트 사이즈, 크기, 가운데 정렬을 설정하고 위치 조정해준다

 

 

guide2의 명암을 올려 색상을 확인

Text 오브젝트에 Outline을 Add Conponent 하여 아웃라인을 잡아준다

x = 1

y = -2

 

글씨 색상을 스포이드로 맞춘다

 

 

Tab을 다시 돌려 놓고

guide2의 명암을 줄여준다

 

 

UI -> Image를 만들고 notify 리소스를 넣어 준다

타입을 sliced로 해준다

크기를 guide2와 맞춘다

 

 

UI -> Image를 만들고 리소스를 넣어준다

 

Set Native Size를 꼭 눌러주자 그래야 크기에 맞게 변한다

 

 

 

리소스를 찾고

 

UI -> Image를 만들고 리소스를 넣어준다

크기를 guide2에 맞게 조정

 

tab1을 복사하여 tab2를 만든다

 

 

tab1에서 빈 오브젝트를 생성하여 이름을 focus라고 하고

자식으로 nitify, focus(1)을 넣어준다

tab2도 마찬가지 동일하게.

 

 

이런식으로 수동으로 껐다가 키면 자식들과 같이 움직여진다

 

 

Tab 오브젝트  -> UI Tab Menu 이름 변경

UITabMenu 스크립트 생성

UI Tab Menu 오브잭트에 끌어다 넣어준다

 

 

tab1, tab2 -> UITabMenuItem 으로 이름 변경

UITabMenuItem 스크립트 생성

 

*코드작성

 

UITabMenuItem

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;

public class UITabMenuItem : MonoBehaviour
{
    public GameObject forcusGo;
    public UnityAction OnClick;

    // Start is called before the first frame update
    void Start()
    {
        this.GetComponent<Button>().onClick.AddListener(() =>
        {
            Debug.Log("click");
            this.OnClick();
        });
    }

    public void FocusOn()
    {
        this.forcusGo.SetActive(true);
    }

    public void ForcusOff()
    {
        this.forcusGo.SetActive(false);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

 

UITabMenu

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UITabMunu : MonoBehaviour
{
    public UITabMenuItem[] uiTabMenuItems;

    // Start is called before the first frame update
    void Start()
    {
        foreach(var item in this.uiTabMenuItems)
        {
            item.ForcusOff();
        }
    }
}

 

 

UITabMenuItem 오브젝트에 Button을 컴포넌트 하고

focus를 끌어다 FocusGO에 넣어준다

 

지웠던 오브젝트를 하나더 복사하고

 

 

UI Tab Menu 오브젝트의 스트립트에서 items 숫자를 2로 바꿔준다

UITabMenuItem을 Element0, 1 에 하나씩 끌어다 넣어준다

 

Null 오류 등장

 

UITabMenu 코드 변경

 

※탭을 하나키면 하나가 꺼저야 하는데 둘 다 켜져버린다

 

 

※코드 수정

 

UITabMenu 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UITabMunu : MonoBehaviour
{
    public UITabMenuItem[] uiTabMenuItems;

    // Start is called before the first frame update
    void Start()
    {
        this.AllOff();

        foreach(var item in this.uiTabMenuItems)
        {
            item.ForcusOff();
            item.OnClick = () =>
            {
                SelectItem(item);
            };
        }
    }
    
    private void SelectItem(UITabMenuItem item)
    {
        this.AllOff();
        item.FocusOn();
    }

    private void AllOff()
    {
        foreach (var item in this.uiTabMenuItems)
        {
            item.ForcusOff();
            
        }
    }
}

 

 

project에 Prefabs르 폴더를 만들고

UI Tab Menu , UITabMenuItem 을 넣어 프리팹으로 만들어준다

 

※완료

 

'Unity > 수업 내용' 카테고리의 다른 글

[게임 인공지능] 프로그래밍 설치  (0) 2021.11.08
[UGUI] StudyUI - Skill  (0) 2021.11.05
[UGUI] StudyUI - Button On & Off  (0) 2021.11.04
[UGUI] StudyUI - slider  (0) 2021.11.03
[UGUI] StudyUI 준비하기  (0) 2021.10.28