타워 디펜스 (6) - 빌드, 게임 플레이
·
Unity 3D/디펜스 게임
들어가기에 앞서, 테스트용 치트를 비활성화 하겠습니다. PlayerStatus의 치트 활성화 여부를 나타내는 bool을 false로 바꿔줍니다.   14. 빌드유니티 에디터 메뉴의 File >> Build Settings1) Scenes In Build 에 빌드할 씬 추가2) 왼쪽 Platform 에 게임을 실행할 플랫폼 선택3) 왼쪽 아래의 Player Settings... 버튼Player 탭에서 빌드에 필요한 설정하기 해당 작업이 끝난 후 Build 버튼 눌러서 게임 파일 생성 그런데 여기서 문제가 하나 발생했으니유니티 에디터에서 실행할 때는 잘 표시되던 타워 설치 예상도가 핑크색으로 나옵니다. 원인은 전에 타워 설치를 다뤘던 BuildManager 스크립트에 있는데타워 설치 전 반투명하게 보여주기 ..
타워 디펜스 게임 (5) - 타이틀 씬, 레벨 선택 씬, 레벨 별 플레이 씬
·
Unity 3D/디펜스 게임
이전까지는 하나의 씬에서 게임을 진행하는데 필요한 요소들을 만들었습니다. 하지만 타워 디펜스 게임을 해보면타이틀, 난이도 선택 등 다른 화면이 있습니다.이를 만들어 보겠습니다. 11. 타이틀 씬게임 이름, 타이틀 이미지를 표시합니다.using UnityEngine;using System.Collections;using UnityEngine.SceneManagement;public class TitleManager : MonoBehaviour{ const float whenTextAppears = 3f; const float whenGoToMenu = 10f; bool isInputPermitted; Transform PressAnyKeyText; FadeManager fm; ..
타워 디펜스 게임 (4) - 이펙트
·
Unity 3D/디펜스 게임
10. 이펙트 적을 공격했음에도 아무 효과가 없으면 밋밋합니다.최소한의 시각적인 이펙트를 주도록 해보겠습니다. 아주 간단히 기본적인 파티클 시스템을 사용하여 표현하였습니다.1) 타워 설치 효과  2) 적이 처치될 때의 효과간단히 구형의 적으로 구현했는데 이 구가 깨진다는 느낌으로 이펙트를 주었습니다. 적의 종류에 따라 색상이 달라지는데이는 제일 아래의 코드에서 이펙트 호출 시 색상을 바꿔주어 해결했습니다.  3) 적 피격 효과 (1) 기본 타워 총알에 피격  (2) 빔에 피격  (3) 미사일에 피격   4) 이펙트 호출 스크립트이렇게 만든 시각 이펙트들을 적재적소에 호출할 수 있도록 빈 오브젝트에 스크립트를 하나 만들어줍니다.using UnityEngine;using System.Collections.G..
타워 디펜스 게임 (3) - UI, 타워 설치
·
Unity 3D/디펜스 게임
8. UI게임 플레이 화면보다 위에 있는 오버레이 캔버스 UI를 생성하고플레이에 필요한 표시, 버튼을 배치 상단: 플레이어 라이프, 일시정지 버튼 하단: 상점(타워 구매),왼쪽: 코스트(골드),오른쪽: 다음 웨이브까지의 시간using UnityEngine;using TMPro;using System.Collections;using UnityEngine.SceneManagement;using UnityEngine.UI;public class UIManager : MonoBehaviour{ TextMeshProUGUI playerLifeUI; TextMeshProUGUI GameOverRoundUI; TextMeshProUGUI levelUI; GameObject GameOver; ..
타워 디펜스 게임 (2) - 플레이어(카메라 컨트롤, 코스트, 라이프, 치트), 타워
·
Unity 3D/디펜스 게임
5. 플레이어 이 게임을 대략적으로 분석해 보겠습니다. 플레이어 역할(컨트롤) : 코스트를 소모하여 적을 막는 타워 배치, 업그레이드, 카메라 줌인, 줌아웃 이동클리어 조건: 경로를 따라 지나가는 적들을 처치하여 막기실패 조건: 일정 수의 적이 목표 지점에 도착 이에 필요한 것은 크게 3가지로 추려서1) 타워 코스트 (여기서는 골드)2) 타워 (적 공격, +업그레이드)3) 플레이어 라이프 (적을 놓칠 수 있는 횟수)4) 카메라 컨트롤 public class PlayerStatus{ public static int curretStage; public static int maxStage = 20; // 플레이어 소지금, 입출금에 쓸 수 있는 메서드 static int gold = 400..
타워 디펜스 게임 (1) - 맵, 적, 이동 경로
·
Unity 3D/디펜스 게임
1. 맵 제작1) 녹색 육면체 : 적이 필드로 들어오는 입구2) 적색 육면체 : 적이 필드에서 나가는 출구3) 흰 타일타워 배치가 가능한 타일타워가 올라갈 수 있는 1칸을 기준으로 나눠서 제작4) 검은 타일적이 지나가는 통로길 형태를 갖추도록 콜라이더를 최소한으로 사용  2. 적이 지나가는 경로 만들기. 웨이포인트적이 검은 타일을 따라 지나다니게 하려면 각 구간마다 목표가 되는 위치 좌표가 있어야 하며길의 코너마다 위치하게 하는 게 좋겠지요. 위의 스크린샷에서 코너마다 있는 빨간 점이 그 포인트입니다.적의 이동 목표인 빨간 육면체 내에도 하나 더 존재합니다.  using UnityEngine;public class WayPoints : MonoBehaviour{ public static Transf..
유니티짱 08) 유니티짱 무기 장착 및 전투 모션 추가
·
Unity 3D/유니티 짱
그 동안 유니티짱 고유 애니메이션이 아닌 다른 애니메이션을 적용하기 위해 많은 시도를 하였습니다. 전투에 사용할 다른 애니메이션을 받아와서 적용해보니 머리카락이 계속 문제가 되었습니다. 팔이 머리카락을 뚫고 나오는 현상이 발생하여 이를 해결하기 위해 유니티짱_다이나믹 모델로 변경하여 머리카락 위치를 수정하였습니다. 우선 무기를 하나 골라 모델링을 받아왔고 지난 포스트에서 했던 유니티짱 카툰 셰이더를 적용하여 카툰 그래픽처럼 보이게 조정하였습니다. 그리고 자식 오브젝트로 라이트를 주어 플레이어가 보기 좋게끔 표시해줍니다. 유저 조작을 통해 무기를 장착할 수 있도록 해보겠습니다. 무기를 장착할 위치를 오른손의 자식 오브젝트로 넣어주고 기존 유니티짱 스크립트에 아이템과 상호작용이 가능하게끔 하는 메서드를 추가..
유니티 짱 7) 3D 액션 게임 적 구현하기 - 1
·
Unity 3D/유니티 짱
이전 포스트에서 다뤘던 대로 카툰 텍스쳐를 가져온 모델링에 적용한 후 3D 액션 게임에 필요한 요소들을 하나씩 구현해 보겠습니다. 1. 콜라이더 각 부위에 콜라이더를 부착하여 몬스터의 현재 모션에 맞게 충돌 판정을 할 수 있게 만들었습니다. (1) 몬스터와 플레이어가 겹치지 않도록 충돌 판정 (2) 공격 및 피격 히트 박스에 쓸 목적으로 충돌 판정 2. 스크립팅 아직 유니티짱도 공격/피격을 만들지 않았으니 이번 단계에서는 적도 그 전까지만 만들어보겠습니다. 크게 상태를 나누어 아래 5가지로 정의하겠습니다. (1) Idle : 잠깐씩 대기해야 할 상황에 쓰기 위한 단계 (특정 웨이포인트에 도착하여 잠시 대기, 공격 후 딜레이, 플레이어를 추적하다 놓쳤을 때 잠시 대기) (2) Patrol : 유니티짱을 발..
유니티 짱 06) 다른 모델링 구하기 & 간단한 카툰 텍스쳐 변경
·
Unity 3D/유니티 짱
다음으로 적으로 쓸 에셋을 구해보겠습니다. 유니티 공식 에셋스토어에서 구할 수도 있으나 저와 같은 가난한 게임 개발 입문자 및 구직자들이 쓰기엔 무료 에셋의 종류가 다소 부족한 감이 있습니다. https://assetstore.unity.com/ 따라서, 다른 무료 에셋 구하는 사이트도 몇 곳 소개하려고 합니다. 1. 믹사모 : 무료 3d 휴머노이드 애니메이션 및 모델링들이 있으며 모델링의 수는 많지 않으나 쓸만한 FPS, 액션 애니메이션이 여럿 있습니다. 기존에 있는 휴머노이드 모델링에도 애니메이션 적용 및 약간의 수정이 가능합니다. https://www.mixamo.com/#/ Mixamo www.mixamo.com 2. 스케치팹 : 유료 및 무료 모델링 및 애니메이션이 있으며 무료로 사용할 수 있는..
유니티 짱 05) 3D 액션 게임 캐릭터 조작 - 1
·
Unity 3D/유니티 짱
이전 포스트인 시점을 구현하면서 함께 만들었습니다. 유니티짱 다이나믹은 옷자락 움직임 문제로 일반 유니티짱으로 바꾸었습니다. Projects > Assets > UnityChan > Prefabs > unitychan을 하이어라키 창에 끌어오고 언팩해줍니다. 1. 하이어라키 창 유니티짱의 자식 오브젝트로 빈 오브젝트 2개 추가 2. 인스펙터 창 1) 기존에 있던 컴포넌트 중에 Animator, Auto Blink 만 남기고 모두 지운 후 Animator 의 컨트롤러로 액션용으로 변경한 컨트롤러를 추가해줍니다. (1) Locomotion을 Run, Walk로 나눔 (2) Jump 애니메이션을 Jump, Falling, Landing으로 나눔 -> 낙하가 길어질 때를 대비하기 위해 (3) Slide 추가 (..