Frontend/Unity

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 이전 파트에서 게임 오브젝트의 이동을 다루면서 Time.deltaTime에 대해서 언급한 적이 있습니다. Time.deltaTime이 무엇이고 왜 필요한지에 대해서 알아보도록 하겠습니다. 시간과 프레임 게임을 하다보면 우측 상단에 FPS라는 단어를 본적이 있을 것입니다. frames per second(초 당 프레임 수) 즉 1초에 몇 프레임을 찍어낼 수 있는가? 라는 의미죠. 히어로 밥 아저씨를 보면 눈 깜빡할 사이에 참 쉽죠? 하고 프로그램이 끝납니다. 우리가 그린다면 하루종일 걸릴 그림(프레임)을 순식간에 끝내는 것입니다. FPS는 이 예와 일맥상통합니다. 100FPS는 것은 1초에 100개의 그림(프레임)을 찍어내고, 1FPS는 1초에..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론모든 게임의 캐릭터는 이동을 합니다. 오버워치의 캐릭터들도 움직이고 심지어 그들이 쏘는 총알, 배경의 구름도 움직이고 있습니다. 이처럼 게임은 수 많은 오브젝트들의 이동이 모여서 이루어지는만큼 이동은 중요합니다. 1. 이동 (Move)2. 회전 (Rotate)3. 카메라 추적 (Follow Cam) 위치 바꿔보기간단하게 두 가지 방법을 통해서 오브젝트의 위치(position)을 바꾸어보도록 하겠습니다. 먼저 위와 같이 Plane을 바닥으로하고 Cube를 만들어줍니다. (재질은 임의 조정) 이동 효과를 보기에 Directional Light는 방해되므로 삭제 후 다른 조명을 넣어봅시다. 하이어라키 뷰에서 Light ☞ Point Light를 선택..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론이번 파트에서는 유니티의 씬과 씬을 전환하는 방법에 대해 알아보도록 하겠습니다. 씬 만들기씬과 씬 전환을 위해서 먼저 두 개의 씬을 만들어 보도록 하겠습니다. 게임 느낌이 나도록 두 씬은 각각 Stage1, Stage2의 모습을 띄도록 하겠습니다. 바닥에 Plane을 깔고 원하는 색상을 입혀준 후 3D Text로 Stage1 을 찍어줍니다. 그리고 Hierarchy 뷰에 UI에서 버튼을 선택해 만들어줍니다. 완성하면 위와같이 Canvas 오브젝트와 그 자식으로 버튼이 보입니다. Scene뷰의 좌측 상단의 2D를 눌러준 후 스크롤과 트랜스폼 이동으로 위와 같이 버튼도 배치를 해줍니다. 이렇게 생성된 UI는 3D공간의 변화와 무관하게 유리창처럼 씬..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론델리게이트라는 것은 함수에 대한 참조라고 생각하면 됩니다. 하나의 델리게이트로 여러 함수들에 접근해 실행할 수 있습니다. 또한 델리게이트를 이용해 함수를 파라미터로 전달할 수 있고, 여러 함수를 한꺼번에 실행하는 체인 기능과, 어떤 상황에 도달했을 때, 이벤트를 발생시키는 델리게이트 이벤트도 제공되어집니다. 델리게이트 기본 사용법델리게이트는 기본적으로 함수와 형태가 같게 만들어집니다. 아래 delegate 를 보면 참조할 AddNumbers와 SubNumbers 함수의 형태와 같은 것을 볼 수 있습니다. 그리고 참조변수와 같기 때문에 객체를 생성합니다. 괄호 안에는 참조할 함수를 넣는 것입니다. 실행하면 AddNumbers 를 참조하는 dele..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론이전 유니티 C# 기초 파트에서 public과 private 변수에 대해 배우면서 public 변수를 인스펙터 뷰에서 수정할 수 있음을 배웠습니다. (참고 포스팅) 이번에는 이 인스펙터 뷰를 통해서 디버깅을 진행해볼 수 있는 방법에 대해서 배워보도록 하겠습니다. 1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅 서론 먼저 인스펙터 뷰의 설정을 Normal 에서 Debug Mode로 바꾸어 디버깅을 위한 속성들을 보이게 합니다. 이때 Private 변수도 보여지게 됩니다. 게임을 실행하면 위와 같이 사용자가 기존에 설정한 속성..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론1000개의 Debug.Log 출력보다 한 번 시각적으로 보는 것이 더 효율적일 수 있습니다. 가령 적 캐릭터의 공격 범위라던지 바라보고 있는 방향을 Scene에서 쉽게 알 수 없죠. 시각적 디버깅을 어떻게 진행할지 알아보도록 하겠습니다. 1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅 유니티의 기본 시각적 디버깅 - 기즈모 유니티는 기본적으로 기즈모라는 것을 통해 시각적 디버깅을 제공합니다. 카메라의 촬영 방면이라던지, 오브젝트의 기즈모와 같이 말입니다. Scene 뷰의 우측 상단의 Gizmo를 클릭해 사용자가 보고 싶은..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론이전 파트에서 배웠듯이 디버깅을 위해 Debug.Log를 사용하여 정보를 출력해봅니다. 출력 후 이제 볼 일이 없으니 코드를 주석 처리하거나, 완전히 지우곤 합니다. 하지만 코딩을 하다 보면 아까 지웠던 코드들이 다시 필요하여 입력하여야 되는 귀찮은 경우가 생깁니다. 이는 임의의 전역 선언을 통해 해결할 수 있습니다. 1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅 플래그 사용법 먼저 임의의 전역 선언을 하겠습니다. Edit ☞ Project Settings ☞ Player 를 클릭합니다. Splash Image ☞ Scr..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론안드로이드의 Log.i, Log.e 와 같은 콘솔 창에 주석과 같이 로그를 띄워주면서 사용하는 것을 매우 많은 개발자들이 손쉬운 디버깅의 도구로 뽑고 있습니다. 유니티에도 같은 기능인 Debug.Log가 있는데 사용 방법과 한계를 알아보도록 하겠습니다. 유니티 디버깅 목차1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅 사용방법 사용 방법은 굉장히 간단합니다. Debug.Log를 쓰고 내용으로 string 타입의 인자들을 넣어주면 됩니다. 상위 클래스인 MonoBehaviour 클래스에서는 어떤 변수든 string으로 변환시..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론2. Debug.Log 파트에서 다뤘듯이 Debug.Log는 만능 해결사가 아닙니다. 출시될 프로그램이라면 모두 삭제를 하여야하고, 과하게 많은 메시지를 콘솔에 보여줌으로서 디버깅에 방해가 될 수 있습니다. 또한 코드를 변경하기 때문에 이상적인 방법이 아닙니다. 이번 파트에서는 모노디벨롭에서 제공하는 기능들을 네이티브로 유니티에 붙여서 사용하는 굉장히 편리한 방법에 대해서 배워보도록 하겠습니다. 1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅 중단점 설정과 Watch & Local 창중단점이라는 것은 유니티 프로그램을 실행..
이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 Program testing can be used to show the presence of bugs, but never to show their absence! - Edsger W. Dijkstra 다익스트라 알고리즘으로도 유명한 컴퓨터 과학자 다익스트라는 다음과 같이 말했습니다. '프로그램 테스팅은 버그의 존재를 보여주는데 사용할 수 있지만, 그들이 없음을 증명할 수는 없다!'. 즉, 우리가 사용하는 어떠한 디버깅 툴을 이용하더라도 모든 버그를 없앴다는 것을 확신할 수 없습니다. 모든 오류를 없앨 수는 없지만 유니티 내에서 정해진 시간과 예산 내에서 가능한 많은 버그를 바로잡는 것을 목표로 유니티의 디버깅의 종류와 방법을 알아보도록 하겠습..
에반황
'Frontend/Unity' 카테고리의 글 목록 (2 Page)