목록유니티 2D (10)
Prosto
따라하는 유니티 2D 프로젝트ⓑ 강좌 아홉 번째(마지막) 시간입니다. 이번에 함께 할 작업은 지금까지 만들었던 게임을 안드로이드 어플(apk 파일)로 전환하는데 어떤 추가 작업이 필요한지 확인하고, 추가 작업을 해 안드로이드 기기(태블릿, 스마트폰 등)에서 동작이 잘 되는지 실행시켜 확인해보겠습니다. 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 따라하시면 됩니다. 먼저 이제부터 빌드할 안드로이드(Android)로 플랫폼을 전환하고 씬(Scene)도 등록해주고, 플레이어 셋팅(Player Setting)도 해주도록 합시다. 좌측 상단의 메뉴 중 File - Build Settings...를 선택해주세요. 이렇게 Build Settings 창이 뜨는 것을 확인..
따라하는 유니티 2D 프로젝트ⓑ 강좌 일곱 번째 시간입니다. 이번에 함께 할 작업은 저번 시간에 만들어 두었던 체력바를 필요한 때만 보여줄 수 있도록 하겠습니다. (데미지를 받은 경우 3초 동안 보여주도록) 볼이 모두 없어지는 경우 게임오버, 즉 게임종료 화면으로 전환하도록 하겠습니다. 그때 Retry 버튼을 두고, 처음부터 다시 시작할 수 있도록 하겠습니다. 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 따라하시면 됩니다. 실행해보면 저번에 마지막 작업했던 부분이 정상적으로 나옵니다. 모든 블록에 대해서 체력 게이지를 보여주는 체력바를 생성해줬었죠? 먼저 체력바를 피해를 받은 경우에만 보여주도록 바꿔볼까요? Scripts - Block 폴더로 들어가서 Bl..
GameObjcet.Find / GameObject.FindWithTag (GameObject.FindGameObjectWithTag) 를 이용한 일반적인 방법 (아래의 1번 글) 유니티, 원하는 게임오브젝트 얻기? -1(GameObject.Find..) 1번 글인 GameObject.Find에 이어서 진행하겠습니다. 이번에 우리가 다룰 내용은 바로 transform.FindChild / transform.GetChild 입니다. 이 함수는 1. 자신의 자식에 있는 오브젝트를 얻고싶을 때 2. 비활성화(Active값-false) 상태의 오브젝트를 얻고싶을 때 사용됩니다. (게임오브젝트(GameObject)나 트랜스폼(Transform)을 얻을 때 말이죠. [하위 Component도 포함되겠죠?]) 기본적..
원하는 게임 오브젝트를 얻어오기 위해선 어떤 작업이 필요할까요? 특별히 원하는 대상을 찾고싶다면, 어떤 방법으로 찾을 수 있을까요? - 대상을 이름으로 찾고싶다면 GameObject.Find("이름"); 이렇게 사용할 수 있고요.. - 대상을 태그로 찾고싶다면 GameObject.FindWithTag("태그명"); 혹은 GameObject.FindGameObjectWithTag("태그명"); 이렇게 사용할 수 있습니다. 이와 관련된 내용의 예제 프로젝트를 만들어 보여드리겠습니다. 2D와 3D 모두 사용 방법은 동일합니다. 저는 주로 2D 작업을 하니 2D로 예제 프로젝트를 생성하겠습니다. 프로젝트가 생성된 화면이죠? 이제 하나씩 진행과정을 보시죠. (직접 따라하면서 익혀보는 것도 좋을 것 같네요.) Hi..
따라하는 유니티 2D 프로젝트ⓑ 강좌 네 번째 시간입니다. 이번에 함께 할 작업은 볼 매니저를 통하여 볼을 생성할 수 있도록 만들고, 볼이 다양한 방향으로 나갈 수 있도록 만들겠습니다. ( 기존에는 대각선으로만 이동했었죠? ) 클릭과 드래그를 통하여 볼의 위치와 방향이 결정될 것입니다. (이번 강좌는 스크립트 사용 부분에서는 난이도가 초 보다는 조금 높은 '중'정도 됩니다.) 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 해보며 따라오시면 됩니다. 이렇게 설정된 곳까지 저번에 했었죠? 일단 바로 테스트를 하기 위해 스크립트를 수정하러 갈까요? Script - Ball - MoveBall 스크립트를 열어줍니다. moveValue = Vector2.One;이었던..
따라하는 유니티 2D 프로젝트ⓑ 강좌 세 번째 시간입니다. 이번에 함께 할 작업은 블록을 매니저를 블록을 오브젝트 풀로 생성하고 그 블록들을 일정한 형태를 가지도록 생성하겠습니다. 그리고 중간에 블록들을 처리하며 생기는 예외적인 부분들에 대해 수정하는 방법을 진행할 겁니다. (Debug 모드, 한 프레임씩 실행) 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 해보며 따라오시면 됩니다. 프로젝트를 열면 저번에 실행된 곳까지 저장되어있는 것을 볼 수 있습니다. 우리가 이번에 할 작업은 블록 매니저를 통하여 블록들을 일정한 형태로 만들어보는 것입니다. 그 과정에서 프리팹이라는 것도 만들어볼 테고, 오브젝트 풀(Object Pool), 스크립트 작성, Debug 등..
따라하는 유니티 2D 프로젝트ⓑ 강좌 두 번째 시간입니다. 이번에 함께 할 작업은 블록을 실제로 사용할 때 필요한 충돌하고 볼이 튕겨나가는 효과를 만들어보겠습니다. 그리고 간단하게 볼이 블록과 충돌하면 블록이 사라지도록 하겠습니다. (이번 시간까지 하면 볼과 블록의 가장 기본은 끝입니다. 실제 블록 제거도 되니까요.) 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 해보며 따라오시면 됩니다. 실행하니 이렇게 저장된 씬이 나오셨죠? 진행하도록 하겠습니다. 이번에 블록과 볼이 충돌하면 통과되지 않고, 튕기는 처리를 해줘야하니 일단 스크립트를 바꿔줘야합니다. Scripts - Ball에 있는 MoveBall 스크립트를 더블클릭해주세요. public 형태로 함수를 만..
따라하는 유니티 2D 프로젝트ⓑ 강좌 첫 번째 시간입니다. 이번에 함께 할 작업은 가장 기본적인 틀을 만들어 보는 것입니다. 볼을 게임 화면에 놓고, 그 볼이 일정하게 움직이도록 하겠습니다. 그 후에 블록을 게임 화면에 놓고 충돌처리가 되는 지 확인해보겠습니다. 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 해보며 따라오시면 됩니다. 유니티에서 우리가 만들었던 프로젝트를 실행하면 이런 화면을 볼 수 있을 겁니다. 그럼 먼저 폴더를 추가해볼까요? Project 탭에서 Assets 파일 위에서 마우스 우클릭하면 메뉴가 나옵니다. 그 메뉴 중 Create - Folder 순으로 선택해줍니다. 이렇게 만들어준 후 이름을 지정해주면 됩니다. Scripts라는 폴더를 ..
따라하는 유니티 2D 프로젝트ⓐ 강좌 열한 번째 시간입니다. 이번에 다룰 내용은 난이도 관련 내용입니다. 게임 진행 중 일정 수준까지는 난이도가 상승되도록 만들 것입니다. 여기서 프로젝트ⓐ는 게임 진행 중 자연스럽게 난이도 상승시킬 수 있는 부분이 게임 진행 속도(배경, 장애물 속도) 상승과 장애물의 수나 형태를 변경하는 게 있습니다. 우리는 난이도 상승을 장애물로 해볼 것입니다. 지금까지는 장애물이 아래에만 위치했지만.. 그러면 높이 점프하면 다 피할 수 있겠죠? 일정 시간이 경과하면 장애물이 위 아래 동시에 나와 통과하는 난이도를 올리도록 하겠습니다. 그럼 시작하겠습니다. 가장 먼저 저번에 작업했던 프로젝트를 실행합니다. 그리고 순서대로 직접 해보며 따라오시면 됩니다. 일단 문제점을 확인해볼까요? (..
유니티에서 화면에 클릭 혹은 터치를 주는 경우 UI로 구성된 부분을 클릭해도 UI 버튼 처리와 클릭 처리를 같이해주게 됩니다. 이때, UI를 클릭(터치)하는 경우에는 게임 화면을 클릭한 처리에서 제외해주고 싶다면 이 글에서 소개하는 내용을 보시면 됩니다. 게임에서 UI 부분을 눌렀더니 점프를 한다? (점프하면 안 되는데... 이런 경우에는?) 이런 경우 터치 혹은 클릭된 부분이 게임 화면인지, 아니면 UI인지 확인하여 처리해주면 됩니다. 그 기능을 사용하기 위해선 먼저 클릭/터치 처리하는 해당 스크립트에 추가로 using해줍니다. using UnityEngine.EventSystems; //UI 클릭시 터치 이벤트 발생 방지. (여기서 EventSystems를 사용하기 위해선 일단 UI는 만들었어야 합니..