전체 글
-
2D 슈팅게임 03. 점프 및 공격 모션
오늘은 Player의 점프 및 Attack 모션을 진행해 보겠습니다. 이동 구현과 마찬가지로 Rigidbody를 이용해서 점프를 시각적으로 보여줄 예정입니다. 백문 불여일견. 바로 진행하겠습니다. Jump 스크립트 입니다. Rigdbody는 rb란 변수로 선언해 담아 왔고 Animator는 ani란 변수로 선언해 담아왔습니다. jump를 하는데 필요한 jumpSpeed (점프 스피드)와 2단 이상의 중복 점프를 막기 위해 점프 중인지 체 크할 불 변수 isJump를 선언하였습니다. 점프 구현을 생각하니 초기 점프 구현 부분에 상당히 애먹었던 적이 있습니다. 다행히 CollisionFlags 변수의 Below 이용해 if(cc.collisionFlags == CollisionFlags.Below)의 조건으..
-
2D 슈팅게임 02. 캐릭터 이동구현
타이틀 씬에서 게임 화면 씬으로 넘어가는 것처럼 보이는 효과를 SetActive를 활용해 UI를 비활성화시켜주며 완성을 시켰습니다. 지난 받아온 Sprite들을 이용하여 Player와 Monster를 만들고 Player의 이동구현은 현재 모바일 환경이기에 조이스틱으로 캐릭터를 움직일 예정입니다. 유니티 에셋 스토어에서 받아온 무료 캐릭터의 Idle 이미지를 가져왔습니다. 이후 중력을 적용시켜줄 수 있는 Rigidbody 2D (3D x)와 Collider 2D (3D x)를 입혀 생명을 불어넣어 주었고 바닥과 양 벽을 빈 오브젝트에 콜라이더를 추가시켜주어 캐릭터가 떨어지거나, 필요 이상의 x축으로 나가는 것을 막았습니다. Collider에 대해 찾아보던 도 중, 알게 된 사실인데 Sphere Collid..
-
2D 슈팅게임 01. 게임 디자인 및 준비단계
먼저 작업에 앞서 01 챕터에서는 게임에 필요한 단순 준비 단계를 보여주기에 동작 구현을 보실 분들은 2D 슈팅게임 02.부터 봐주신다면 방문하여 주신 귀하의 바쁜 시간에 조금이나마 보탬이 될 것 같습니다. 개인 프로젝트인 작은 2D 슈팅게임을 만들어 본 적이 있습니다. 이번 기회에 제 것으로 만들기 위해서 개발 과정을 하나씩 캡처를 하며 빠르진 않더라도 과정을 보여드리려고 합니다. 배경과 플레이어에 따라 제목이 달라질 것 같아서 게임의 제목은 아직 정하지 못했습니다. 우선 제가 만들고자 하는 게임의 간단한 소개는 이러합니다. 1.Player는 좌 우 이동이 가능하며 점프가 가능합니다. 2.Player가 공격 버튼을 클릭하여 몬스터를 맞출 시, 몬스터는 공격 물, 코인, 버프 아이템을 랜덤으로 낙하합니다..
-
팀업 프로젝트 03. Enemy 상태구현 및 넉백
수정된 맵 사진입니다. 마을과 Boss zone을 나누어 마을에서부터 일반 몬스터를 잡으며 아이템을 얻고 보스를 소탕하는 동작 구현으로 설계를 하였습니다. Terrain인 필드는 경로가 너무 길다고 판단하여 맵을 Teerain 컴포넌트를 이용해 수정하고 새로 배치를 해 주었습니다. Enemy의 상태인 Return, Damaged, Die 상태를 보겠습니다. Damaged와 Die 상태는 매 프레임마다 실행되는것이 아닌 조건이 성립할 때 한 번씩 실행되기에, Update문에서 함수 실행을 하지 않았습니다. 여기서도 거리를 체크 하기 위해 Vector3.Distance를 사용하였습니다. 거리를 체크하는 방법을 몇가지 더 찾아보니 Vector3 에는 1. Distance 2. magnitude 그리고 처음 보..
-
팀업 프로젝트 02. Enemy의 상태 구현 및 Time.deltaTime
주기적으로 Enemy의 상태를 체크하기 위한 Update 함수에서의 siwtch문입니다. 우선 Slider를 사용하려면 네임스페이스 using UnityEngine.UI를 선언해 주어야 합니다. Enemy의 체력을 나타내 주는 slider를 주기적으로 확인하기 위하여 Update 함수에서 Slider를 담은 변수 hp_bar의 value 값을 현재 hp / 최대 hp로 나누어 0.0f - 1.0f의 value 값을 만들게 하였습니다. Enemy의 Move함수입니다. 첫 번째 if문에서 Vector.Distance 함수를 사용하여 Enemy의 위치화 초기 위치의 거리가 최대 움직일 수 있는 moveDis보다 크다면, Return(복귀) 상태로 변경하게 해 주었고, else if문에서는 최대 움직일 수 있는..
-
팀업 프로젝트 01. 디자인과 상태구현
01. 팀업 프로젝트 디자인과 상태 구현 플레이어, 일반 몬스터, 보스 몬스터, 인벤토리 구현에서 일반 몬스터를 맡게 되었습니다. 앞으로 진행될 프로젝트들의 과정과 개인 프로젝트의 진행 과정을 블로그를 이용해 기록을 할 예정입니다. 일반 몬스터인 Enemy로 플레이어와 마을의 느낌에 어색하지 않게 반 실사적인 휴먼로이드의 캐릭터를 에셋에서 찾아 무료로 다운로드를 했습니다. [ Enemy의 상태 구현 ] Idle인 기본 상태, Move인 이동 상태, Attack인 공격 상태, Return인 복귀 상태, Damged인 대미지 받는 상태, Die인 죽음 상태로 총 Enemy의 상태는 6가지입니다. public EnemyState enemyState : 초기 상태 및 상태 값을 체크하기 위해 변수로 선언했습니다..