유니티 (45) 썸네일형 리스트형 유니티 Update vs FixedUpdate 유니티로 게임을 개발하면 보통 일시정지 기능을 구현한다. 일시정지되면 Time.timescale=0 이되게 구현하는것이 보통이다. 그런데 일시정지를 했는데도 점수가 계속 올라가는 현상을 발견했었다. 간단하게 얘기하면 Update는 Timescale에 영향을 안받고 FixedUpdate는 영향을 받는다. 일시정지를 시켜도 배경음악은 보통 나오게 구현되어있다. 즉 프레임은 진행된다는 뜻이다. Update는 매 프레임마다 호출된다. 그래서 각 호출간격이 일정하지 않다. 그렇기에 Time.timeScale에 영향을 받지 않는다. FixedUpdate는 고정된 시간마다 계속 호출된다고 한다. 만약 점수가 상승하는 함수를 Update 안에 넣었으면 timeScale이 0이 되도 올라간다. FixedUpdate는 함.. Unity -Photon으로 멀티플레이 구현하기(1) 이번에 새로운 카테고리를 만들었다. "모바일 멀티플레이 Shooting게임" 이라는 카테고리이다. 점점 Unity Mobile 게임 개발을 내 진로로 잡고 있기에 멀티플레이를 익히고 슈팅게임도 만들어보고자 Udemy에서 2만원정도 주고 새로운 강의를 구매했다. 강의를 수강하면서 좀 유용했다거나 새로 알게된 사실들을 이 카테고리에 포스팅 하고자 한다. 본인이 실력이 있고 자신있다면 직접서버를 개설하고 연동하면 된다. 하지만 나같은 초보 개발자들, 1인개발자들은 혼자서 다 하기에는 매우 어렵다. 그렇기에 PUN(Photon Unity Network)를 이용해서 간편하고 쉽게 멀티플레이 기능을 구현해보고자 한다. 이번 포스팅은 Unity Photon 연동하는법이다 1. 에셋스토어에서 PUN2-FREE 다운로드.. 유니티 최적화(6)- 변화하는 텍스트 최적화 이번 포스팅은 매우 간단하다. 필자의 게임에는 저렇게 점수가 화면에 표시된다. 장애물을 피하면서 시간이 지날수록 점수가 계속 올라가는 구조이다. 위와같이 Scene에서 Wire Frame으로 보면 Text또한 Vertex로 이뤄져있다는것을 알 수 있다. 점수가 계속 변경되면서 Vertex가 변경이 되면 Text가 포함되어있는 Canvas의 Vertex Buffer가 계속 ReBuild된다. Canvas에 많은 UI들이 포함되어 있으면 당연히 비용이 클 수밖에 없다. 초간단 해결법은 변화하는 Text UI를 다른 캔버스에 넣으면된다. 즉 Canvas를 2개를 두는 것이다. 유니티 최적화(5) - 프로파일러 사용법 프로파일러란? 프로파일러 툴은 유니티 엔진에서 제공하는 유니티로 개발하는 앱은 프로파일링 할 수 있는,즉 분석을 할 수 있는 Tool이다. 사용하려면 유니티 에디터에서 Window -> Analysis -> Profiler로 켜주면 된다(유니티 2019.4.21f1 버전) Timeline,Hierarchy,Raw Hierarchy 3가지 모드로 분석 할 수 있다. 이번 포스팅에선 Hierarchy로 해보겠다. 위의 Deep Profile을 눌러주면 모든 스크립트가 분석된다. 눌러주고 게임을 실행하면 아래와 같이 매 프레임별로 Performance를 측정해준다. 한 곳을 클릭하면 해당하는 프레임을 분석해준다. 한번 갑자기 Performance가 치솟은 곳을 클릭하면 위와같이 각 퍼센테이지별로 분석 할 수 .. 유니티 Sprite Atlas 유니티에는 다양한 최적화 기법이 있는데 이번 글에서는 Sprite Atlas에 대해 포스팅하고자 한다. 똑같은 기능을 제공하는 Sprite Packer라고 있긴하다. 근데 유니티 자체에서도 Legacy(구식)이라고 지정해놨고 개인적으로도 Atlas가 더 직관적이고 사용하기 편해서 웬만하면 Sprite Atlas로 쓰는게 좋지않을까 싶다. 어쨋든 현업에서 대부분 사용하고 있다고 하니 꼭 알아두자. Sprite Atlas란 스프라이트 아틀라스(Sprite Atlas) 는 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다. Unity는 여러 개의 드로우 콜을 발행하는 대신 이러한 단일 텍스처를 호출함으로써 하나의 드로우 콜을 발행할 수 있다. 참고로 DrawCall은 모바일에선 최대 100안쪽으로 나오게 해.. 유니티 UI(3) -POT/NPOT Texture 유니티 UI를 공부하면서 중요하다고 생각되는 내용들 적는 포스팅이다. 필기노트 같은거 POT(Power of Two) 텍스쳐 텍스쳐 가로/세로 크기가 2의 승수(1,2,4,8,16,32.....)인 텍스쳐 NPOT(Non-Power of Two) 텍스쳐 텍스쳐 가로/세로 둘중 크기가 하나라도 2의 승수가 아닌 텍스쳐 이것이 왜중요한가?? 텍스쳐건 뭐건 전부다 숫자(바이너리)로 이뤄져있다. 컴퓨터는 애초에 바이너리 데이터를 다루기가 훨씬 쉽다. NPOT 텍스쳐를 사용할 때 GPU는 텍스쳐와 가장 가까운 사이즈의 2의 승수를 찾아서 해당 텍스쳐를 그대로 복사한다. 즉 메모리에 2개의 텍스쳐가 올라가게 된다. 원본텍스쳐(NPOT)와 원본을 POT화시킨 텍스쳐 이렇게 2개. 즐 효율이 좋지않다. 모바일 게임에선.. 유니티 UI(2)-이미지 Type 전편에 이어서 유니티 UI를 공부하면서 중요하다고 생각하는 것들 작성하는, 일종의 필기노트이다. Image Type Simple : 가장 일반적인 이미지 타입 , 비율에 맞게 스트레치됨 Sliced : 스프라이트를 9개의 영역으로 나누어 각자 다른 방식으로 리사이즈하는 방식, Sprite Editor에서 영역을 설정 할 수 있다. 현업에서 굉장히 자주 쓰이는 테크닉이라고 한다. 아래와 같이 Fill Center의 체크를 풀어줌으로써 중앙을 비울수 있다. Tiled : 위의 설정해논 영역중 중앙부분으로 일정하게 도배하는 이미지 타입니다 Filled : 말 그대로 채워주는 방식, 체력바같은거에 많이 쓴다. 각종 수치들을 건들여서 채워주는 방식을 정할 수 있다. 유니티 UI(1)-Vertex와 Canvas UI기초 다시 공부하면서 배운것들 정리하는,어떻게 보면 그냥 필기노트정도다. Vertex 3D 모델링의 가장 기본 단위 Vertex Buffer 렌더링에 사용할 버텍스를 모아 놓은 버퍼 캔버스에 내부적으로 존재한다(우리가 볼 순 없다) 씬에서 왼쪽위를 Shaded에서 Wireframe으로 바꿔주면 위와 같이 Vertex들을 볼 수 있다. Event System 클릭, 드래그 등등 이벤트들은 하나 또는 하나이상의 모듈을 통해 시스템에 전달되야 한다 그 모듈이 EventSystem에 있다 UI를 만들면 저절로 만들어진다 Canvas Screen Space - Overlay : 스크린 화면을 최상위에서 완전히 덮어서 렌더링하는 모드 Pixel Perfect : UI가 깨지지 않고 잘 나오지만 Performan.. 이전 1 2 3 4 5 6 다음