Programing/Unity(C#) 52

[CS0104] 'Image'은(는) 'Microsoft.Unity.VisualStudio.Editor.Image' 및 'UnityEngine.UI.Image' 사이에 모호한 참조입니다.

'Image'은(는) 'UnityEngine.UI.Image' 및 'UnityEngine.UIElements.Image' 사이에 모호한 참조입니다. Image를 사용하는데 위와 같은 에러 메시지가 떴다 using Image = UnityEngine.UI.Image; using 문으로 Image를 UI.Image로 지정해주었더니 일단 오류가 해결되긴 하였다 +) Bind() 이런 식으로 함수를 사용할 때 에러가 났었음 UI Manager를 따로 만들어서 사용하고 있었으므로 BindImage 등의 함수를 따로 만들어 해당 함수에서 타입을 지정해줄 수 있게끔 변경해주었다

[Unity] SerializeField/public 선언해둔 변수 인스펙터 창 초기화

SerializeField로 선언해 둔 Theme에 코드 상에서 새로운 Element를 추가해도 제대로 반영이 되질 않았음... 인스펙터 창에서 한 번 값을 변경하면 코드에서 수정해도 반영이 안 된다고 한다 간단하게는 그냥 스크립트에 우클릭 > Reset 해주면 적용이 된다 Game Manager의 경우 프리팹으로 만들어뒀기 때문에 프리팹에 들어가서 초기화시켜주면 된다

[Unity] UI 클릭 제외하기

if (Input.GetTouch(0).phase == TouchPhase.Began) { if (EventSystem.current.IsPointerOverGameObject(0) { return; } SceneManager.LoadScene("Game"); } 첫번째 터치가 eventsystem 위(UI 위)에 있으면 return 함으로써 UI 터치 시 Game이 시작되지 않도록 할 수 있다 IsPointerOverGameObject는 int 파라미터가 필요한데, PC나 유니티 상에서의 터치는 -1, 휴대폰 상에서의 터치는 0으로 처리한다

[Unity] 스크롤뷰 만들기

Hierarchy 뷰에서 우클릭 UI > Scroll View로 스크롤뷰 오브젝트를 생성해준다 이번엔 스크롤바를 쓰진 않을 것이기 때문에 함께 생성되는 스크롤바 2종류는 그냥 삭제해도 무방하다 Scroll View의 Scroll Rect 컴포넌트에서 몇 가지 조절을 해준다 Horizontal / Vertical 체크박스: 가로 / 세로 스크롤이 가능하게 할 것인지 여부 Movement Type - Unrestricted: 범위를 벗어나면 벗어나는 대로 스크롤된 상태를 그냥 유지함 - Elastic: 범위를 벗어나면 다시 범위 내로 돌아감(탄성 有, Elasticity는 이 탄성력을 조절하는 변수) - Clamped: 범위를 벗어나지 못하게 스크롤이 막힘 그리고 Content 오브젝트에 정렬 컴포넌트가 필..

[Unity] UI 요소 제외하고 클릭 이벤트 감지하기

https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html EventSystems.EventSystem-IsPointerOverGameObject - Unity 스크립팅 API Is the pointer with the given ID over an EventSystem object? docs.unity3d.com 유니티 공식 문서 if(Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject()) { SceneManager.LoadScene("Game"); } * GetMouseButtonDown은 터치..

[Coding] 싱글톤 패턴 구현 방법(2가지)

int instanceCount = FindObjectsOfType(GetType()).Length; if (instanceCount > 1) { gameObject.SetActive(false); Destroy(gameObject); } else { DontDestroyOnLoad(gameObject); } 1. 해당하는 오브젝트들의 길이를 재서 판단하는 방법 static AudioPlayer instance; if (instance != null) { gameObject.SetActive(false); Destroy(gameObject); } else { instance = this; DontDestroyOnLoad(gameObject); } 2. static 변수를 통한 싱글톤 패턴 구현 stati..