unity (26) 썸네일형 리스트형 유니티에서 텍스트 타이핑 대사박스 효과 구현하기 스토리게임들을 보면 캐릭터들의 대사들이 말하듯이 한글자씩 생성되도록 연출하는 경우가 많은데요. 직접 구현하려면 굉장히 번거롭겠지만 DoTween이라는 무료 에셋을 사용하면 간단히 구현 가능합니다! DoTween 다운로드는 여기서 가능합니다. 에셋스토어 링크 DOTween (HOTween v2) | 애니메이션 도구 | Unity Asset Store Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store. assetstore.unity.com 설치하시고 바로 네임스페이스에 DG.Tweening을 추가해주시면 사용 가능합니다. 아래는 .. 유니티 자식 순서 받아오기 & 변경하기(Transform) 자식 순서를 확인하고 제어할 일은 은근히 있습니다. 먼저 자식 인덱스를 확인하는 방법입니다. public transform a; void Start() { //a의 자식 인덱스 확인 var childIndex = a.GetSiblingIndex(); } 다음은 특정 자식 오브젝트의 인덱스를 변경하는 방법입니다. public transform a; void Start() { //a의 자식 인덱스 변경 (예시에선 3으로 변경됩니다) var childIndex = a.SetSiblingIndex(3); } [UniTask] 유니티 HTTP통신 구현 코드(+bearer token 사용) 가끔 서버와의 HTTP 통신을 구현해야 할때가 있습니다. 아래는 간단히 Post, Get을 사용할 수 있도록 하는 코드입니다. 비동기 호출을 UniTask를 사용해서 구현했는데, 그냥 async를 사용하셔도 됩니다. 다만 async보다는 UniTask가 성능이 좋습니다. (UniTask의 자세한 설명 & 다운로드는 여기서 가능합니다. -> https://github.com/Cysharp/UniTask) 구현 코드가 길지만 사용은 간단합니다 :) (전체코드는 맨 밑에 있습니다.) 일단 UnityWebRequest로 Post, Get을 호출하는 함수를 작성합니다. private async UniTask Post(string action, Request data) where T : Response { var .. 에디터상에서 윈도우 추가하기 Game창이나 Scene창 등이 모종의 이유로 없어졌을때 다시 여는 방법입니다. 간단하게는 아래 스크린샷처럼 ...클릭 > Add Tab에서 열려는 창을 선택하면 됩니다. 다른 창을 열고싶으시면 상단의 Window탭에서 선택해서 열 수 있습니다. 게임 일시정지 하는 방법 + 속도 조절하는법 게임이 실행중일때 게임을 잠시 멈추고 싶다면 Unity의 TimeScale값을 변경해주면 됩니다. 스크립트상에서 변경하는 방법은 다음과 같습니다. Time.timeScale = 0f; 실행중일때 테스트용으로 속도를 실시간으로 조정하고싶으시다면, Project Settings > Time에서 변경 가능합니다. (Project Setting창은 Edit > Project Setting 또는 File > Build Settings > Project Setting 으로 진입 가능합니다) Unity In-App Purchasing 설정 - Google License Key 위치 구독 또는 상품 판매 설정을 위해 유니티 IAP 설정을 켜야하는데, Google License Key를 입력하라는 란이 있습니다. 밑에 설명도 나와있지만 구글 플레이콘솔이 업데이트되면서 해당 메뉴는 사라졌습니다. 바뀐 콘솔에서 라이센스 키는 앱 선택 > 메뉴 하단의 "수익 창출" > "수익 창출 설정" 메뉴에서 확인 가능합니다. Unity에서 UGUI 터치가 갑자기 안될때 확인해볼 내용들 UGUI로 화면을 구성하고 테스트할때, 갑자기 잘 되던 터치가 안되거나, 버튼이 눌리지 않는 경우가 있는데요. 기본적으로는 3가지 경우가 있습니다. 1. 레이어 순서 맞추기 유니티의 UGUI는 하이어라키상에서 같은 부모일때 아래로 내려갈수록 위에 배치됩니다. 아래와 같이 5개의 오브젝트가 있고, 모두 겹쳐있다면 가장 아래에 있는 Button_4만 클릭할 수 있는 것이죠. 따라서 이러한 경우에는 배경으로 사용할 오브젝트의 자식index를 가장 위로 올려줘야 합니다. 2. Raycast target 값 설정 배경으로 사용하고 싶지 않아서 다른 오브젝트 앞에 표시하고 싶지만 터치 이벤트를 받고싶지는 않다면, 해당 오브젝트의 Raycast Target설정을 체크 해제하면 됩니다. 3. EventSystem 컴포.. List 맨앞, 맨뒤 값 제거하는 방법 모종의 이유로 list의 맨앞 또는 맨뒤 값을 제거하고 싶을때가 있는데요. list.RemoveAt을 사용하면 Index를 사용해서 원소를 제거할수 있습니다. var myList = new List(); ... myList.RemoveAt(0) // 맨처음 원소 제거 myList.RemoveAt(myList.Count - 1) //마지막 원소 제거 이렇게 제거하면 됩니다. 다만 유의할점은 위의 예시처럼 gameObject들이 담긴 List라면 리스트에서 원소를 제거해도 씬에서 gameObject들은 삭제되지 않습니다. 원인은 list에 담긴 gameObject 정보들은 참조값이고, RemoveAt함수는 리스트 내의 참조값만을 제거하기 때문입니다. 따라서 리스트에 담긴 게임오브젝트를 실제로 유니티 씬 안에.. 이전 1 2 3 4 다음