본문 바로가기
반응형

유니티24

스프라이트 패키징 Sprite Atlas V2, TexturePacker 스프라이트 패키징을 TexturePacker를 사용하고 있었는데 Mac, PC를 오가며 작업할때 언제부터인지 서로 다른 기기에서 생성한 스프라이트들이 유니티 이미지 컴포넌트에서 Missing으로 변경되는 문제가 발생했다. TexturePacker 버전이 2015년 5.3.0 버전인데 라이센스를 다시 갱신하려니 비용이 발생하고 TexturePacker를 업데이트 한다고 해서 해결될지 알수 없어서, 유니티 기본 스프라이트 패키징인 Sprite Atals V2를 사용해보기로 함. Project Settings - Editor - Sprite Packer - Mode를 Sprite Atlas V2 - Enabled 선택 (실험 버전에서 정식 버전이 됨) 애셋 폴더에서 마우스 우클릭 Create - 2D - Sp.. 2023. 9. 12.
유니티 파티클 사용 Tip(스크립트 제어, Sorting 등) 유니티 파티클을 스트립트로 제어하기 위해 먼저 Particle System > Play On Awake을 체크해제 한다. 반복도 꺼준다. 파티클 변수를 선언해주고 Hierachy에서 파티클을 스크립트 변수와 연결해준다. public ParticleSystem particleObject; particleObject.play(); play() 함수로 실행 파티클의 sorting order 설정은 Renderer - Sorting Layer ID Renderer - Order in Layer을 수정해주면 된다. 2023. 9. 12.
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.
The referenced script on this Behaviour (Game Object '') is missing! 유니티에서 스크립트 파일을 하나 삭제하고 나서 아래와 같은 에러 메시지가 계속 뜬다. The referenced script on this Behaviour (Game Object '') is missing! 해당 스트립트를 사용하는 오브젝트를 스크립트 컴포넌트를 삭제하고 버튼들의 이벤트 트리거 부분도 삭제를 해도 여전히 경고가 뜨는데 Prefab안에서 삭제하지 않은 버튼들이 해당 스크립트를 참조하고 있었다. Prefab도 수정하니 해결! 2023. 9. 10.
유니티 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.
반응형