반응형 GAME Dev/Tip28 UI 버튼 클릭 시 아래 오브젝트 클릭도 함께 인식되는 문제 유니티 게임을 데스크탑에서 실행 시에는 문제가 없으나 아이폰, 안드로이드 등 모바일 디바이스에서 실행 시, UI 버튼을 클릭하면 그 바로 아래 오브젝트도 함께 클릭이 인식되는 문제가 발생했다. Update() 함수안의 if (!EventSystem.current.IsPointerOverGameObject() && Input.GetButtonUp(Constants.INPUT_ATTACK)) IsPointerOverGameObject 함수가 재대로 동작하지 않는 문제이다. 인수로 0, -1등을 주면 데스크탑과 구분하여 동작한다고도 하는데, 나의 환경에서는 여전히 문제가 되어 유니티의 Input Manager를 사용하는 Input.GetButtonUp을 제거하고 if (Input.GetMouseButtonDo.. 2023. 9. 11. C# 형변환 C#에서 형번환을 하기 위해 Convert 객체를 사용할 수 있다. System.Convert.ToBoolean(floatNum); https://learn.microsoft.com/ko-kr/dotnet/api/system.convert?view=net-7.0 Convert 클래스 (System) 기본 데이터 형식을 다른 데이터 형식으로 변환합니다. learn.microsoft.com 2023. 9. 9. 유니티 toggle 버튼 isOn을 스크립트에서 구현 유니티 토글 버튼의 상태를 변경하고자 스크립트에서 soundToggle.isOn = true; 을 사용하면 OnValueChanged 이벤트가 발생한다. 이벤트 트리거 없이 버튼의 이미지 등만 교체되게 하고 싶다면 soundToggle.SetIsOnWithoutNotify(true); 를 사용하면 된다. 2023. 9. 9. UI 이미지 버튼, 버튼 애니메이션 이전에 구현해둔 유니티의 GUI 버튼이 레거시 GUI가 되면서 새로 버튼을 만들어 보았다. Hierachy 창에서 마우스 오른쪽 버튼을 눌러 UI-Button TextMeshPro 를 선택해준다. TextMeshPro를 처음 사용하면 나타나는 Import창에서 Import TMP Essentials 버튼을 누른다. 이미지 버튼이라면 버튼 아래 함께 생성된 TextMesh 오브젝트는 제거한다. Source Image를 교체하고 Image Type - SetNative Size 버튼을 클릭해서 이미지 원래 크기로 맞춰준다. 버튼 트리거 함수는 On Click() 이벤트 항목에 연결해준다. Button을 애니메이션 시키기 위해 Transition을 Animation으로 AutoGenerate Animation.. 2023. 9. 8. 이미지 스프라이트 교체(swap) 유니티에서 한 게임오브젝트 안에서 이미지 스프라이트 교체를 하려면 Sprite Library Asset 기능을 사용하면 된다. Asset 폴더에 Sprite Labrary Asset 파일을 생성한다. Categories에 제목을 쓰고 Labels에 교체될 같은 부위의 이미지들을 넣어준다. 인스펙터창에 Sprite Library 컴포넌트를 추가하고 앞서 생성한 라이브러리 애셋을 등록한다. Sprite Resolver를 추가하고 스프라이트 리졸버에서 카테고리 및 레이블을 변경하면 씬화면에 즉시 swap된 이미지를 볼 수 있다. Sprite Renderer 콤포넌트도 존재해야한다. Sprite 값은 비어 있어도 됨 Script에서 동적으로 해당 값들을 변경하려면 public SpriteResolver boss.. 2023. 9. 8. 유니티 이미지 스와이프 snap scroll view 구현 현시점 유니티로 이미지 swiping 스와이핑을 구현하려면 몇가지 방법이 존재한다. 유니티 기본 UI인 UGUI의 Scroll view를 활용한 직접 구현 UI Extension 오픈 소스 사용 https://github.com/Unity-UI-Extensions/com.unity.uiextensions 애셋 스토어에서 Simple Scroll-Snap(무료) 등 사용 https://assetstore.unity.com/packages/tools/gui/simple-scroll-snap-140884 NGUI 사용 유니티 기본 UI를 사용하고 있고 간단하게 snap scroll view 기능만 있으면 되어서 2, 4번은 탈락 직접 구현하는데 어렵지 않고 참고할만한 소스도 많았으나, MacOS Finder .. 2023. 9. 8. 하나의 컨트롤 안에서 두개 이상의 애니메이션 재생 두개의 레이어에 각각 애니메이션을 만들재 재생하면 두 애니메이션이 보이기에 서로 겹쳐 있다면 Base Layer의 애니메이션만 재생된다. New Laye의 Weight 값을 1 정도로 주면 New Layer의 애니메이션이 Base Layer 애니메이션 위에서 재생된다. 2023. 9. 1. 유니티 애니메이션 종료 시 해당 오브젝트 제거 유니티에서 애니메이션 종료 후 해당 오브젝트를 제거하기 위해 StateMachineBehaviour를 사용한다. DieBehavior 스크립트를 만들고 using UnityEngine; public class DieBehavior : StateMachineBehaviour { // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Destroy(animator.gameObject); } } bomSho.. 2023. 9. 1. 유니티 이미지 및 애니메이션 Flip 방법 유니티에서 이미지 및 애니메이션 Flip(뒤쥡기)를 하는 방법은 간단하다. 이미지의 Transform 오브젝트에서 Scale 값을 마이너스(-)로 주면 이미지가 해당 축을 기준으로 뒤집어진다. 위는 X축 기준 좌우 뒤집기를 한 모습이다. 소스 코드에서는 transform.localScale = new Vector3(-1f, 1f, 1f); 애니메이션을 뒤집기 위해서는 애니메이션 컨트롤이 추가되어 있는 오브젝트의 스케일을 조절해 준다. 프리팹에서도 가능 2023. 8. 27. 이전 1 2 3 4 다음 반응형