Unity 16

코루틴 최적화

StartCoroutine의 가비지 코루틴을 사용하는 경우 StartCoroutine를 호출하는 순간 해당 코루틴을 관리하기 위한 인스턴스가 생성되는데 이 인스턴스가 가비지로 이어질 수 있다. StartCouroutine은 유니티 엔진 내부 코드이기 때문에 최적화 하기는 어려우므로 이로 인한 가비지 생성을 최소화 하기 위해서는 StartCoroutine을 최소한으로 사용해야 한다. YieldInstruction의 가비지 YieldInstruction은 코루틴 내부의 yield 구문에서 사용되는 값으로 WaitForEndOfFrame WaitForFixedUpdate WaitForSeconds 등이 있는데 아래처럼 new를 통해 인스턴스화 될 때 가비지를 생성하게 된다. yield return new Wa..

Unity/기타 2023.04.27

GPGS 사용해보기

다운로드 https://github.com/playgameservices/play-games-plugin-for-unity GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity Google Play Games plugin for Unity. Contribute to playgameservices/play-games-plugin-for-unity development by creating an account on GitHub. github.com 다운 받은 파일의 압축을 풀고 압축 푼 폴더의 current-build 폴더에 들어가서 위 패키지를 유니티에 임포트 한다. 그러면 저절로 설치가 진행되는데 ..

Unity/기타 2023.04.20

디자인패턴 - 프로토타입 패턴 사용해보기

개념 디자인 패턴 중 생성 패턴에 속한다. 기존 객체를 복제하여 새로운 객체를 생성한다. 사용법 먼저 복사할 객체의 원형이 필요하다. 그리고 객체를 생성하는 부분에서 원형 객체를 복사해서 생성하게 된다. 활용 예시 내가 맡은 부분인 채집의 과정 중에 양배추를 여러개 생성하는 부분이 있는데 여기에 활용해보려고 한다. 아래는 원형이 될 양배추 객체의 클래스이다. 프로토타입 패턴에서 중요한 부분은 Clone() 메서드이다. Clone() 메서드 호출을 통해 원형 객체를 복사하게 된다. 나는 양배추를 밭에서 생성되게 하려고 밭의 역할을 할 FarmRow 객체를 미리 만들었고 아래처럼 구조를 잡았다. 자식으로 양배추가 생성될 위치를 의미하는 객체들과, 원형 객체가 있다. 원형 객체를 아래 FarmRow의 멤버변수..

Unity/3D 2023.04.16

안드로이드에서 드래그를 통한 카메라 줌인, 줌아웃 구현

원하는 기능 캐릭터는 항상 화면 중앙에 있음 터치 두 군데 해서 손가락 간 거리 좁히면 줌아웃, 늘리면 줌인 구현 자료를 찾아보니까 이미 잘 작성해둔 분들이 많아서 그걸 참고하고 우리 게임에 맞게 세부 값만 조절했다 Move 함수를 통해 항상 캐릭터를 바라보며 이동하도록, ZoomInOut 함수를 통해 터치를 통해 줌인 줌아웃이 가능하도록 했다 using UnityEngine; public class HSYCamera : MonoBehaviour { public Transform target; // 따라다닐 타겟 오브젝트의 Transform public HSYPlayer player; private Transform tr; // 카메라 자신의 Transform public float perspective..

Unity/기타 2023.03.19

스크린샷 기능 구현

초기에 게임 컨셉이 힐링이었을 때 게임내에 스크린샷 찍는 기능을 넣기로 했었는데 컨셉이 바뀌면서 굳이 스크린샷 기능을 구현할 필요를 못느껴서 빼게 되었다. 근데이미 만들어 둔 것을 그냥 지워버리긴 아까워서 포스팅 해본다. 스크린샷 기능 구현 먼저 스크립트는 아래의 두가지를 작성해준다. using UnityEngine; using UnityEngine.UI; public class UIGameDirector : MonoBehaviour { public Button btnScreenshot; public Screenshot screenshot; private void Start() { Debug.Log("GameDirector Init"); this.btnScreenshot.onClick.AddListene..

Unity/기타 2023.03.15

uGUI 세팅 팝업 만들기

UserID 버튼 클릭하면 아이디 팝업이 뜬다 아이디 팝업창에서 아이디를 볼 수 있고 아이디 카피 버튼을 클릭하면 아이디를 클립보드에 복사할 수 있다 x 버튼 클릭하면 팝업이 닫힌다 Logout 버튼 클릭하면 로그아웃 되어서 다시 UserID 버튼을 클릭했을 때 아이디 팝업창에서 아이디와 아이디 카피 버튼이 사라지고 로그인하라는 메세지가 나타난다 나머지 항목들(스위치나 슬라이더)을 만들 때는 특이사항이 없었다 using UnityEngine; public class GridScrollViewMain : MonoBehaviour { public UIGridScrollViewDirector director; private void Start() { this.director.Init(); } } using U..

Unity/UI 2023.02.20

스프라이트 아틀라스(Sprite Atlas)

스프라이트 아틀라스 유니티 프로젝트에서 텍스처를 사용하려면 드로우 콜이 발행한다 많은 텍스처를 사용 할수록 드로우 콜이 많이 발행돼서 프로젝트의 성능이 저하될 수 있다 이런 일을 방지하기 위해 스프라이트 아틀라스를 사용한다 스프라이트 아틀라스는 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다 따라서 하나의 드로우 콜만 발행해서 큰 성능 저하가 일어나지 않는다 만들기 Atlas 폴더 만들고 Create 2D Sprite Atlas (이름 정하기) Objects for Packing에 아틀라스로 만들 텍스처 끌어 넣기 or 오른쪽 위 자물쇠 누르고 아틀라스로 만들 텍스처 선택해서 끌어 넣기 (넣고 자물쇠 풀어야 함) Packing-AllowRotation 해제, TightPacking 해제, Paddin..

Unity/기타 2023.02.13

좌우로 넘기는 동적 스크롤뷰 만들기

정적 스크롤뷰 먼저 만들고 이어서 진행 https://s00wb.tistory.com/103 좌우로 넘기는 정적 스크롤뷰 만들기 정적 스크롤뷰 만들기 1. Image scrollview 스크롤할 영역만큼 크기 조절 2. scrollview 안에 Create Empty contents 앵커 왼쪽 위, 사이즈 조절 Add Component Content Size Fitter-Horizontal Fit-Preferred Size Add Component Horizonta s00wb.tistory.com **변하지 않는 데이터(~data)만 연동해서 만드는 경우 ShopMain 1. CreateEmpty ShopMain+ShopMain(Script) 4. UIShop 관리 10. UIShop 초기화 재화, 탭 ..

Unity/UI 2023.02.13

좌우로 넘기는 정적 스크롤뷰 만들기

정적 스크롤뷰 만들기 1. Image scrollview 스크롤할 영역만큼 크기 조절 2. scrollview 안에 Create Empty contents 앵커 왼쪽 위, 사이즈 조절 Add Component Content Size Fitter-Horizontal Fit-Preferred Size Add Component Horizontal Layout Group-Spacing 조절 3. contents안에 Image item 앵커 왼쪽 위, 사이즈 적절히 조절 컨트롤+D 필요한 갯수만큼 4. scrollview에 Add Component Scroll Rect ScrollRect-Content에 contents 넣고 Horizontal만 체크 Add Component Mask-Show Mask Graph..

Unity/UI 2023.02.13
반응형