Frontend

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 유니티로 게임을 만든다면 맨 처음 화면에 유니티 로고가 스플래시 스크린으로 뜨는 것을 볼 수 있습니다. 개인 창작물이라면 괜찮겠지만, 사업이나, 기업용 게임이라면 이를 자사의 로고나 애니메이션을 보여줘야되겠죠. Pro, Plus Edition 사용자에게도 유용하지만 Personal Edition 사용자도 로고를 띄워야한다는 제약을 감수하여 사용할 수 있으니 잘 봐주시기 바랍니다. 1. 스플래시 스크린(Splash Screen)2. 제약사항(License Limitation)3. 5.5 버전 변경사항4. 세팅 스플래시 스크린(Splash Screen) 유니티 에디터는 프로젝트의 스플래시 스크린을 환경설정하도록 허락합니다. 커스터마이징 할 수 있..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 이번 장은 빌드한 에셋번들을 서버로부터 다운로드하고 로드, 언로드 하는 방법에 대해서 배워보도록 하겠습니다. 빌드과정에 대한 이해를 바탕으로 하고 있으니 이전 두 장을 읽고 와주시길 바랍니다.1. 에셋번들이란?2. 에셋번들의 생성 및 빌드3. 에셋번들 다운로드와 로드 캐싱에셋번들 다운로드에는 캐싱, 논캐싱 2가지 방법이 있습니다. 그럼 캐싱이란 무엇일까요? 이미 출시한 게임에 새로운 컨텐츠를 제공할 때 제공하는 DLC(Downlodable Contents)를 구현하거나, 대규모 게임에서 자주 업데이트가 발생할 경우 실행 파일과 에셋번들을 조합해 사용하는데 이 때마다 새롭게 네트워크에서 다운 받으면 네트워크의 속도 저하가 발생할 것 입니다. 그..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 자 이제 에셋번들에 대해서 알고들 오신거죠? 모르신다면 다시 1장으로 가서 허접한 개념잡기를 보고와주세요. 이번에는 에셋번들을 생성하고, 에셋번들에 원하는 에셋을 넣어서 빌드하는 과정을 배워보도록 하겠습니다. 1. 에셋번들이란?2. 에셋번들의 생성 및 빌드3. 에셋번들 다운로드, 로딩 에셋번들 생성 저번 장에서 에셋번들에는 에셋들이 들어간다고 했습니다. 여기에는 에셋을 담고 있는 폴더나, 스크립트, 머터리얼, 사운드, 이미지 등등 프로젝트 뷰에 있는 모든 것이 가능하죠. 그럼 간단하게 3개의 큐브를 만들어보도록 하겠습니다. 3개의 큐브는 각각의 머터리얼이 적용되어있습니다. (어려우시면 댓글로 요청해주세요.) 이를 프로젝트뷰의 Prefab 폴더..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 자원을 뜻하는 Asset, 묶음을 뜻하는 Bundle이 합쳐져서 만들어진 에셋번들(AssetBundle). 처음 들어보신 분들이 많을 것이라고 생각합니다. 물론 저도 몰랐습니다. 모르는 사람이 알면서 알려주는 에셋번들 사용하기입니다.1. 에셋번들이란?2. 에셋번들의 생성 및 빌드3. 에셋번들 다운로드, 로딩 에셋번들이 뭡니까? 에셋번들이란 이름 그대로 에셋의 묶음입니다. 유니티의 에셋(프로젝트 뷰에 보이는 모든 것들을 에셋으로 취급할 수 있습니다. :프리팹, 이미지, 사운드, 텍스트, 스크립트, 폴더)들을 모아 하나의 묶음으로 만드는 것이죠. 에셋 번들의 일반적인 작업 흐름은 아래와 같습니다. 1. 개발자는 먼저 에디터 내의 씬에 있는 에셋으..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 C#의 2차원 배열의 메모리 구조를 확인하기 위해 변수의 주소값을 찍어보려다 Unsafe code requires the `unsafe' command line option to be specified 에러가 떴습니다. 이를 어떻게 해결해야 하는지와 변수의 주소 값을 찍는 방법 두 가지를 다뤄보도록 하겠습니다. 1. 예제코드2. 유니티에서 unsafe 코드를 사용하는 방법3. C#의 메모리 구조 예제코드 using UnityEngine; using System.Collections; using System; using System.Collections.Generic; using System.Text; public class NewBehavio..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론이번에는 SendMessage와 BroadcastMessage를 이용해서 오브젝트의 붙은 컴포넌트의 함수를 이름으로 호출하는 방법에 대해서 배워보도록 하겠습니다. SendMessage SendMessage("Function", SendMessageOptions.DontRequireReceiver); 위와 같은 명령어로 사용합니다. 이 오브젝트에 붙어 있는 모든 컴포넌트/스크립트에서 Function이라는 함수명을 찾아 실행합니다. 첫 번째 인자는 호출할 메소드의 이름이고, 두 번째 인자는 호출할 객체가 없을 때 어떻게 에러 처리할 지를 지정합니다. 자세한 내용은 여기를 참고하시길 바랍니다. BroadcastMessage BroadcastMessa..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론지금까지 이동과 회전을 구현해 보았습니다. 실행시켜보셔서 알겠지만, '이걸 게임이라고 할 수 있어?' 라고 생각하실 겁니다. 이번 강의가 끝나면 '오 좀 게임 느낌나는데?' 라는 생각이 드... 드실 수 있도록 열심히 배워봅시다. 이번 파트에서 배울 것은 오브젝트를 따라다니는 VJ를 만든다고 생각하시면 됩니다. 쉽게 말해 오브젝트를 따라다니는 카메라를 만드는 것입니다. 1. 이동 (Move)2. 회전 (Rotate)3. 카메라 추적 (Follow Cam) 스크립트 무작정 따라하기이번 파트는 무작정 먼저 따라해보도록 하겠습니다. 이해가 어렵더라도 아래서 다시 설명드릴테니 결과로부터 흥미를 찾아봅시다. 위와 같이 FollowCam 이라는 스크립트를..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론3D 게임에서 회전이라는 요소는 굉장히 중요합니다. 앞만 보고 달리는 오버워치 캐릭터를 생각해보면 아찔합니다. 이번에는 마우스의 좌, 우 움직임에 따라 오브젝트가 회전하는 것을 구현함으로서 회전에 대해서 알아보도록 하겠습니다. 1. 이동 (Move)2. 회전 (Rotate)3. 카메라 추적 (Follow Cam) 회전 구현하기 유니티에서 회전을 할 수 있게 해주는 함수는 transform.Rotate 입니다. 3가지 사용법이 있으나 Y축을 기준으로 회전한다는 결과는 같습니다. 1. transform.Rotate(Vector3.up * Time.deltaTime);2. transform.Rotate(0, Time.deltaTime, 0);3. t..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 유니티의 생명주기유니티는 사용자가 호출하지 않아도 호출되는 함수들이 있습니다. 그 함수의 호출 주기를 유니티의 생명주기(LifeCycle)이라고 부릅니다. 함수들의 호출 시기는 사용자가 정할 수 없으므로 생명주기에 대해 이해하는 것은 유니티를 다루는데 필수입니다. 아래의 그림은 거대한 유니티 생명주기의 산맥 중에서 굵직 굵직한 중요한 함수들의 흐름을 따로 뽑아서 그려본 것 입니다. 유니티를 시작할 때 아래의 함수의 흐름만 알아도 많은 도움이 될 것 입니다. Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행됩니다. 객체의 속성을 초기 값으로 설정해 줄 때 사용합니다. Awake : 스크립트가 실행될 때 한번만 호출됩니다. 모든..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 이전 파트에서 게임 오브젝트의 이동을 다루면서 Time.deltaTime에 대해서 언급한 적이 있습니다. Time.deltaTime이 무엇이고 왜 필요한지에 대해서 알아보도록 하겠습니다. 시간과 프레임 게임을 하다보면 우측 상단에 FPS라는 단어를 본적이 있을 것입니다. frames per second(초 당 프레임 수) 즉 1초에 몇 프레임을 찍어낼 수 있는가? 라는 의미죠. 히어로 밥 아저씨를 보면 눈 깜빡할 사이에 참 쉽죠? 하고 프로그램이 끝납니다. 우리가 그린다면 하루종일 걸릴 그림(프레임)을 순식간에 끝내는 것입니다. FPS는 이 예와 일맥상통합니다. 100FPS는 것은 1초에 100개의 그림(프레임)을 찍어내고, 1FPS는 1초에..
에반황
'Frontend' 카테고리의 글 목록 (4 Page)