본문 바로가기

유니티

(33)
3D 미니 프로젝트 0 ] 계획, 플레이어 생성 2D 독수리 잡기 게임 이후로 3D를 통하여 새로운 미니 프로젝트를 계획하였다. 점프 맵부터 시작하여 외부 파일들을 활용하여 다양한 기능들을 구현 해 보고, 애니메이션 등의 기능들 또한 구현하고, 무료 에셋들을 사용하여 게임다운 소소한 게임을 하나 만들어 보고자 한다. 우선 제작 계획부터 세워 보도록 하자. 점프맵 우선은 점프 맵 구성이다. 2D로는 플랫포머 게임과 같은 것이라고 보면 된다. 1. 이름 : 점프 게임 2. 목표 : 아이템을 먹으면서 골인하게 되어 높은 점수를 받는 것이 목표이다. 3. 결과 산정 요소 : 점수 (먹은 장애물 개수 * 장애물 별 가중치 - (최소 클리어 시간을 넘었을 시 초과한 시간)) 4. 구현에 필요한 요소들 : Rigidbody, Collider, Rotate, Exc..
2D 미니게임 만들기 연습 7 ] 추가 설정 사항(파괴 애니메이션, 버그 수정) 지난 포스팅에서는 스테이지 관리와 최대 총알 개수를 설정하였으며, 총알 개수를 나타 내 주는 UI를 세팅하였다. 이제는 타겟이 파괴될 때 애니메이션 효과를 추가 해 주도록 하자. Aseprite를 통하여 파괴되는 애니메이션을 추가 해 주도록 하자 이것도 지난 포스팅에서 Sheet를 추출 한 것 처럼 Sprite Sheet의 형태로 추출 해 준다. 파괴되는 모습은 위와 같다. 유니티에 Sheet를 추가한 뒤, Slice를 해 준다. 그리고 애니메이션을 추가 해 주면 다음과 같다. 그러면 위 사진과 같이 애니메이션 화면이 나오게 될 것이다. 애니메이션을 해당 타겟에 추가 해 주고, 자연스러운 모습이 나오게 프레임을 삭제 해 준다. 그리고 애니메이터를 열어 아래 사진과 같이 추가 해 준 다음, Trigger를..
2D 미니게임 만들기 연습 6 ] 스테이지 관리 + 총알 개수 제한 지난 포스팅에서는 스코어 관리까지 다루어 보았다. 이제는 자동으로 타겟들이 생성되어 해당 타겟들을 다 없애면 클리어가 뜨게 하는 스테이지 진행 로직(?)을 만들어 볼까 한다. 사실 거창하게 말할 것 없이 그냥 스테이지 시작을 알려 주고 물체들을 소환 한 다음, 물체들을 다 제거하면 클리어 해 주는 매니저 코드를 만드는 것이라 생각하면 된다. 스테이지의 난이도를 결정하는 것은 타겟의 속도 뿐 아니라 환경이 빡세지는 것, 즉 총알 개수 제한량의 조절이라고 생각한다. 갑자기 왜 이런 말을 하게 되냐면, 스테이지 관련 코드를 추가하면서 총알 개수 제한 관련 코드도 추가 해 줄 예정이기 때문이다. 우선 StageManager.cs이다. Manager 오브젝트에 추가 해 주어 전체적인 매니징을 담당해 준다. usi..
2D 미니게임 만들기 연습 5 ] 스코어 관리 설정 지난 포스팅에서는 타겟의 도트 디자인을 하게 되었다. 그런데 게임에 맞춰야 하는 것만 들어 가 있는 것은 너무 재미가 없을 것이다. 이에, 맞추지 말아야 할 것들도 추가 해 보도록 해 보자. - 폭탄 디자인 원형의 물체에 해골을 그려 넣음으로써 딱 봐도 위험 해 보이는 것임을 직감할 수 있게 하였다. 이 곳에는 별개의 애니메이션 효과를 부여하지 않았다. 이것도 export 해 주어 Unity에 넣어 주도록 해 보자. - 스코어 보드 관리 이제 기본적인 모양은 얼추 만들어졌다. 이제 타겟들의 종류도 여러 개가 되었으니(맞춰야 하는 타겟, 맞추지 말아야 하는 타겟) 이에 맞게 타겟에 대한 구분 및 스코어 관리를 해 보도록 하자 우선 스코어가 더해지는 과정은 아래 그림과 같이 된다. Target을 맞추게 되면..
2D 미니게임 연습 4 ] 물체 도트 디자인 지난 포스팅에서는 물체의 랜덤 움직임에 대한 것 까지 구현하였다. 이제 물체 디자인을 해 주도록 하겠다. 물체에 대한 디자인은 Aseprite를 통하여 해 주도록 하겠다. 간단하게 맞춰야 할 대상을 디자인 해 준다. 컨셉은 싹이 난 공(?)인데 싹을 돌려 가면서 하늘에 떠 있다는 컨셉을 가져왔다. 유니티에서 사용할 수 있게 Sprite Sheet의 형태로 추출 해 준다. 애니메이션은 위와 같이 되게 된다. 이제 Sprite Sheet를 Unity에 넣어 주도록 해 보자. Sprite Sheet에서는 대상의 한 상태만 있는 것이 아니라 연속적인 상태가 들어 있기 때문에 Inspector에서 SpriteMode를 Multiple로 바꾸어 준다. 그 다음, 도트 파일이기에 Filter를 적용하지 않아야 본래 ..
2D 미니게임 만들기 연습 3 ] 물체에 움직임 부여하기 지난 포스팅까지는 물체를 클릭하게 되면 반응하게끔 만들어 보았다. 이제 해당 물체에 움직임을 부여 해 보도록 하겠다. 우선 RigidBody2D - BodyType에서 Kinematic을 Dynamic으로 바꾸어 주도록 하겠다. 이렇게 하면 물체가 다시 중력의 영향을 받게 된다. 여기서 처음에는 Spawn()함수를 만들어서 해당 물체가 생성될 때 그 물체에 AddForce를 주어서 중력과 함께 움직임을 주게 되었다. 그렇게 되면 아래 움짤과 같이 된다. 코드는 아래와 같다. public void SpawnTarget() { UnityEngine.Random.InitState(DateTime.Now.Millisecond); RandomFloatX = UnityEngine.Random.Range(-8.2f,..