카테고리 없음

ScriptableObject 와 UI 강의

rxo2 2025. 3. 14. 21:00

ScriptableObject 상속은 데이터를 효율적으로 관리하고 공유하는 강력한 도구.
씬(Scene)과 무관하게 독립적으로 존재하며, 여러 오브젝트에서 동일한 데이터를 사용할 때 유용.
게임 설정, 아이템 정보, 캐릭터 스탯, 퀘스트 정보 등의 데이터 저장에 적합.

ScriptableObject vs MonoBehaviour 차이점

 

리소스 이미지를 구할땐 흰색으로 구할것, 이미지의 색을 입힐때 더해져서 나옴

 

UI 배치시 큰 틀을 먼저 나누고 작은부분을 세세하게 쪼갠다는 느낌으로 제작

하나의 UI 에 원 사각형 텍스트가 같이 있다면 각각 하나씩 만들어서 하위로 넣어주고 컨테이너 작업

 

테두리가 흐려지게 하는 방법 그라디언트 이미지 리소스

이미지 하나 만들고 소스이미지에 Gradient 삽입, 색을 배경색 혹은 아이콘과 반대되는색 사용.

 

 

UI 코드 연결 규칙

UIInventory 스크립트 하나 만든후 

부착한 오브젝트에 프리펩을 넣은후 외부에 있는 다른 오브젝트의 프리펩을 연결하면 안된다 사용불가

SerializeField 를 선언후 변수로 버튼(btnBack)을 만들고 넣어주자

하지만 외부의 버튼(UIPopup) 은 사용불가하다

 

슬롯을 만들때 활용방법 중 주의사항

왼쪽 이미지 처럼 다른 스크립트에 있는 슬롯 정보를 여기서 수정하는 방법 말고

오른쪽 이미지와 같이 SetData 를 통해 슬롯을 구현한 스크립트에 정보를 전달해 줘야한다

 

 

아직도 개인적으로 헷갈리는것

유니티 Hierarchy 의 오브젝트 이름을 스크립트에 작성될때 언제 어떤상황에 들고와지는지 모르겠다

void Start()
{
    Debug.Log("오브젝트 이름: " + gameObject.name);
}

// gameObject.name → 이 스크립트가 부착된 오브젝트의 이름을 가져옴

 

void Start()
{
    GameObject player = GameObject.FindWithTag("Player");
    if (player != null)
    {
        Debug.Log("Player 태그를 가진 오브젝트를 찾음!");
    }
}

Hierarchy에서 "Player" 태그를 가진 오브젝트를 찾음
FindWithTag("태그이름") → 성능이 더 좋음