전체보기

이 글은 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초에..
이 글은 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를 클릭해 사용자가 보고 싶은..
에반황
'분류 전체보기' 카테고리의 글 목록 (8 Page)