본문 바로가기

unity3d 11

[Unity] UI 마우스 클릭 이벤트 감지

UI 에서 마우스 클릭 이벤트를 감지하려면 IPointerClickHandler 인터페이스를 구현해야 합니다. IPointerClickHandler 인터페이스는 OnPointerClick(PointerEventData pointerEventData) 메소드를 포함하고 있습니다. PointerEventData는 마우스 클릭 시 클릭 버튼, 클릭 횟수, 포인터 위치 등에 대한 정보를 포함하고 있습니다. MouseClick 스크립트를 생성 한 후 다음과 같은 코드를 작성합니다. using UnityEngine; using UnityEngine.EventSystems; public class MouseClick : MonoBehaviour, IPointerClickHandler { public void OnPo..

·
2020. 2. 19.
·

[Unity3D] 게임오브젝트(GameObject) 스내핑(Snapping)

정점 스내핑(Vertex Snapping) 게임오브젝트를 배치할 경우 정확한 사이즈를 알고 있을 경우에는 Transform 속성에 값을 입력해서 배치하면 되지만 마우스를 사용해서 배치하게 되면 정확하게 배치하기가 어렵습니다. 하지만 정점 스내핑 기능을 사용하면 게임오브젝트를 손쉽게 배치할 수 있습니다. 정점 스내핑을 사용하는 방법은 다음과 같습니다. v를 누른 상태에서 원하는 정점에 마우스를 갖다댑니다. 마우스 왼쪽 버튼을 누른 상태에서 배치하고자 하는 다른 정점 옆으로 드래그 합니다. Shift + V로 정점 스내핑 기능의 On/Off를 전환할 수 있습니다. 단위 스내핑(Unit Snapping) 단위 스내핑을 사용하면 Settings에 정의된 단위 거리만큼 게임오브젝트를 배치할 수 있습니다. Edit..

·
2019. 11. 25.
·

[Unity3D] MonoBehaviour

MonoBehaviour MonoBehaviour는 유니티 스크립트가 파생되는 기본 클래스 입니다. 게임오브젝트에 스크립트를 추가할 경우 MonoBehaviour를 반드시 상속받아야 합니다. 게임오브젝트에 스크립트를 추가하는 것은 인스턴스를 생성하는 것과 동일합니다. MonoBehaviour 클래스는 널 조건 연산자(Null-conditional operator)와 ?? 연산자를 지원하지 않습니다. MonoBehaviour 클래스에 있는 멤버변수, 메소드를 사용하면 오브젝트가 가지고 있는 컴포넌트에 접근할 수 있습니다. MonoBehaviour 클래스를 상속받는 스크립트를 비활성화 시키면(인스펙터에서 체크박스 해제) Start(), Update(), FixedUpdate(), LateUpdate(), O..

·
2019. 11. 8.
·

[Unity3D] Update(), FixedUpdate(), LateUpdate()

Update Update는 MonoBehaviour 클래스가 제공하는 함수입니다. MonoBehaviour 클래스는 Update(), FixedUpdate(), LateUpdate() 총 3가지의 함수를 제공합니다. Update에 대해 자세히 알아보겠습니다. Update() Update()는 매 프레임마다 호출되는 함수입니다. 컴퓨터의 성능에 따라 Update()가 호출되는 횟수는 다를 수 있으며 호출되는 간격 또한 일정하지 않습니다. Update()는 가장 많이 사용되는 함수로 주로 시간에 따른 동작 구현이나, 키보드 입력 확인, 지속적인 상태 체크 등을 할때 사용됩니다. FixedUpdate() FixedUpdate()는 고정 프레임마다 호출되는 함수입니다. FixedUpdate()가 호출되는 간격은..

·
2019. 11. 1.
·

[Unity3D] 에셋번들(AssetBundle) 로드

에셋번들(AssetBundle) 로드 에셋번들 로드는 에셋번들에 들어있는 에셋을 불러오는 것을 의미합니다. 에셋번들을 로드하는데에는 여러가지 함수가 있습니다. [Unity3D] 에셋번들(AssetBundle) 빌드 에서 빌드한 에셋번들 파일을 로드하는 예제로 설명하겠습니다. AssetBundle 클래스 사용 AssetBundle.LoadFromMemoryAsync(byte[] binary) 함수는 파일의 바이트 배열을 읽어서 에셋번들을 비동기 방식으로 로드합니다. 9 : 로드할 에셋번들 경로 11 : 에셋번들로드 코루틴 시작 22 : 경로로부터 모든 바이트를 읽어서 메모리에 비동기로 로드 24 : 바이트를 모두 읽을 때까지 대기 27 : 에셋번들 클래스로 Stone 게임오브젝트 로드 28 : Stone ..

·
2019. 10. 30.
·

[Unity3D] 에셋번들(AssetBundle) 빌드

에셋번들(AssetBundle) 에셋번들은 에셋(모델, 텍스처, 프리팹, 오디오 클립, 씬 등)의 묶음을 의미합니다. 에셋번들을 이용하면 프로그램 실행중에 동적으로 에셋을 로드할 수 있습니다. 에셋번들은 게임 등에서 콘텐츠를 다운로드 할 경우 유용하게 사용될 수 있습니다. 에셋번들(AssetBundle) 빌드 에셋번들은 두가지 방법으로 빌드할 수 있습니다. 스크립트로 에셋번들 빌드 에셋 번들 브라우저(Asset Bundle Browser)로 에셋번들 빌드 2번째 방법은 유니티에서 지원하는 에셋 번들 브라우저를 활용하면 코드를 사용하지 않고 간단하게 에셋번들을 만들 수 있습니다. 에셋 번들 브라우저를 활용하면 훨씬 편하고 쉽게 에셋번들을 빌드할 수 있지만 여기서는 스크립트로 에셋번들을 빌드하는 방법에 대해..

·
2019. 10. 30.
·

[Unity3D] 렉트 트랜스폼(Rect Transform)

렉트 트랜스폼(Rect Transform) 렉트 트랜스폼은 UI에서 사용되는 Transform입니다. 렉트 트랜스폼에는 Width, Height, Anchors, Pivot의 속성을 가지고 있습니다. Width : UI의 넓이를 나타냅니다. Height : UI의 폭을 나타냅니다. 앵커(Anchors) 앵커는 씬뷰에서 네게의 삼각형 손잡이 모습으로 표시되며, 부모로부터의 기준을 나타냅니다. 스크린이 리사이징(Resizing)될 때 앵커를 기준으로 UI의 위치, 크기가 변경됩니다. 앵커의 x, y는 0 ~ 1 사이의 비율 값으로 설정됩니다. 앵커의 x값은 0일때 부모의 가장 좌측, 1일때 부모의 가장 우측으로 설정됩니다. 앵커의 y값은 0일때 부모의 가장 하단, 1일때 부모의 가장 상단으로 설정됩니다. 다..

·
2019. 10. 15.
·

[Unity3D] 코루틴(Coroutine)

코루틴(Coroutine) 코루틴(Coroutine)은 실행을 일시 정지하고 유니티로 제어를 넘겨주는 함수입니다. 일반적인 함수는 업데이트의 한 프레임에서 실행이 됩니다. 하지만 코루틴을 사용하면 시간에 따른 증가/감소, 다른 연산을 할때까지 대기 등을 구현할 때 유용하게 사용될 수 있습니다. ※ 단순히 함수에 딜레이를 줄 경우에는 코루틴보다 Invoke를 사용하는 것을 추천합니다. 코루틴 선언 코루틴은 기본적으로 IEnumerator의 반환형과 함수 안에 yield return 구문을 포함해서 선언합니다. 코루틴의 실행은 StartCoroutine(function()) 또는 StartCoroutine("function Name") 으로 실행합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 ..

·
2019. 10. 1.
·

[Unity3D] 팝업 윈도우

유니티에서 확인, 취소, 예 아니오 등의 메세지를 띄우는 일이 많아서 팝업 윈도우를 만들었습니다. 유니티패키지를 다운받아서 사용하시면 됩니다.(Demo Scene을 참고) 사용법 Popup Window Controller 프리팹을 Hierarchy에 배치해서 사용하시면 됩니다. Popup Window Controller의 Canvas 컴포넌트에서 Sort Order를 Main Canvas 보다 높게 설정해놓았기 때문에 Hierarchy상의 순서에 상관없이 Popup Window가 제일먼저 뜹니다. PopupWindowController는 어디서든 호출할 수 있게 싱글턴 패턴으로 만들어져 있습니다. PopupWindowController.Instance.Show~() 함수를 호출하면 해당 팝업 윈도우가 나..

·
2019. 9. 23.
·

[Unity3D] 리치 텍스트(Rich Text) 설정으로 텍스트(Text) 부분 효과 설정

리치 텍스트(Rich Text) Rich Text를 설정하면 Text에 여러 서식 효과를 적용할 수 있습니다. 기본적으로 Text는 동일한 폰트와 컬러를 지원하지만 Rich Text로 설정하면 특정 단어에 굵은 표시를 한다던가 특정 단어에만 색상을 바꾸는 등의 효과를 줄 수 있습니다. Rich Text는 Text 필드에 태그 형식으로 작성합니다. ex) 특정 단어 굵게 표시 Rich Text는 태그를 중첩해서 사용할 수 있습니다. ex) 특정 단어 굵게 표시 및 색상 변경 Rich Text 태그 Tag 설명 예제 b 굵은 텍스트 Hello SSABI i 이탤릭체 텍스트 My Name is SSABI size 텍스트 크기 설정 H2O color 텍스트 색상 설정 Score : 128 tag는 대소문자를 구..

·
2019. 9. 20.
·
반응형