전체 글
-
RPG 듀토리얼 12. Player Skill (Skill 01 - 03)
안녕하세요. 지난 글에는 skill00 인 파이어 볼 스킬에 대해 알아봤었죠. 원래 스킬 전부를 보려고 했는데 설명하다 보니 이어지는 동작 체계들이 많아서. Skill00번과 CalulateDmg(대미지 계산 기능)을 봤었습니다. 지난 글에서 설명드린 부분을 제외하고 오늘은 나머지 스킬 01 - 03번까지 보려고 합니다. 자 그럼 가장 기본 스킬인 Skill 00을 제외하고 01번부터 03번 까지 빠르게 보겠습니다. SkillFire01 스크립트입니다. 01번과 비슷하며 간략하게 설명한 후 넘어가겠습니다. targetNot : 타깃이 지정 안 됐을 시 공격할 target입니다. target : 타깃이 지정됐을 시 공격할 target입니다. speed : skill01의 스피드입니다. hitEffect :..
-
RPG 듀토리얼 11. Player Skill (Skill 00 & Calulate)
안녕하세요!!! 오늘은 각 공격 스킬에 대해 알아보려고 합니다. 각 공격 스킬에는 1. 파이어 볼 : 가장 기본적인 스킬 입니다. 2. 애로우 샷 : 관통을 하는 스킬입니다. 3. 블랙홀 : 범위 내에 적을 기절시킵니다. 4. 힐 : 체력을 최대 20% 올려줍니다. 4가지의 이름을 지어 봤습니다 ㅎㅎ 1, 2, 3번 같은 경우에는 총 세 가지 이펙트가 존재합니다. 1) 캐스팅을 시전 할 때 2) 스킬 발사를 할 때 3) 스킬을 맞았을 때 4번은 자체적인 힐 스킬로 1) 스킬 발사를 할 때 만 있습니다. 쿨타임은 길지만 캐스팅 시간은 짧게 구현하여 즉시 발동되게 해 봤습니다. 각 스킬 이펙트는 제가 Particle System을 이용해서 만든 파이어볼과 파이어볼 히트 이펙트를 제외하곤 만들어져 있는 에셋을..
-
RPG 듀토리얼 10. Player Skill (Casting)
안녕하세요!! 지난 시간에 UI의 버튼을 누르면 지정된 시간에 맞게 쿨타임이 생기며 시각적인 효과를 버튼의 Fill Amount로 봤었는데요. 오늘은 각 스킬 사용 시 캐스팅과 동작 구현을 볼 것입니다. 지난 시간에 SkillBtn 스크립트에서 Casting() 함수를 실행시키는 코드를 봤었습니다. 이 Casting 함수는 PlayerController에 구현을 했는데요. Casting 함수를 구현하는데 필요한 target이나 각 변수들의 편리함도 있었지만 이 스킬은 스킬 버튼이 아닌 player가 사용을 하는 것 이기에 관리적인 측면에서 PlayerController에 담았습니다. 우선 캐스팅 함수를 실행하기 위해 선언 변수들부터 보겠습니다. onCasting : 캐스팅 중인지 확인할 불 변수입니다. ..
-
RPG 듀토리얼 09. Player Skill (CoolTime )
안녕하세요. 오늘은 Player의 스킬 중에서 CoolTime을 먼저 보겠습니다. 공격 스킬 구성은 총 4가지가 존재하며 1. 파이어볼 가장 기본 스킬로 불이 나가며 공격을 합니다. 2. 애로우 샷 기를 모아 화살이 나가며 관통이 됩니다. 3. 블랙홀 적 들을 기절 시킵니다. 4. 힐 에너지를 채워 줍니다 기본 공격 / 슬라이딩 두 가지가 존재합니다. 각 이미지는 두 개를 겹쳐 놓은 뒤 앞에 있는 Image의 Type을 Fillde의 radial 360으로 주어 쿨타임이 시각화를 더 해 주었습니다. 이렇게 만들어 준 이유는 바로 쿨타임을 적용하기 위해서 입니다. 이 이미지가 Fill Amount를 이용해 쿨타임이 적용된 것처럼 시각적인 효과를 보이는 코드를 보겠습니다. 스킬의 기본 정보를 새로운 스크립트..
-
RPG 듀토리얼 08. Monster(Enemy) AI & Attack
안녕하세요. 이번 글에서는 Enemy의 이동 & 공격 기능을 구현한 코드를 알아보겠습니다. 우선 간략하게 Enemy가 동작할 구현 목록부터 보겠습니다. 현재 제작할 Slime Duo는 선제 공격을 하는 Enemy가 아니기에 공격을 받기 전 까지는 필드를 자유롭게 돌아다닐것 입니다. 이후 Player에게 공격을 받게 된다면 Enemy는 Player를 추적하게 되며 공격 범위 안에 들어왔을 시 공격을 하게 됩니다. 또한 Enemy에게 최대 움직일 수 있는 Traceing이라는 최대 거리를 제한을 해 두어 player가 계속 멀어져 Enemy가 일정 범위 이상 갔을 시 전투를 종료하고 hp를 초기화하게 됩니다. 크게 보면 이동 / 공격 두 가지로 나누어집니다. Enemy의 동작 구현 코드는 Enemy_AI 스..
-
RPG 듀토리얼 07. Monster(Enemy) Target_Box
안녕하세요!! 오늘은 Monster를 만들어볼 예정입니다. 구현할 Monster를 Enemy로 칭하겠습니다. (Enemy가 손에 익었습니다..) 유니티 에셋 스토어에서 무료로 다운로드하였습니다. 우선 Enemy에 관련해서 구현할 목록부터 정리하겠습니다. // 1. Enemy를 클릭 시 타기팅 박스를 만드는 과정을 볼 것입니다. 2. Enemy의 상태 값에 따른 동작 구현을 볼 것입니다. 3. Player의 Skill 동작 구현을 볼 것입니다. (Player의 Skill에 따른 Enemy 동작 구현) // 흠.. 일단 머릿속에서 그려지는 게 아직은 이 정도입니다. 하나하나 설명을 이어 나가면서 추가될 부분은 추가하며 글을 작성하겠습니다. 이 타기팅 박스에 대해 간략히 설명하자면, Enemy를 터치 / 클릭..
-
2D.MetalSlug 02. Player 이동 구현
안녕하세요!! 오랜만에 2D.Metal Slug 카테고리에 글을 올리게 됐습니다. 지난번에는 Intro영상을 만들어 봤었는데요 Intro 영상이 끝난 후 InGame에서 활약을 할 Player의 이동 구현을 만들어 보겠습니다. Player로 활약할 주인공 입니다! 이번 글에선 현재 주인공인 Player의 이동 구현을 제작하는 과정을 담아 봤습니다. 그럼 바로 시작하겠습니다! 우선 Player의 이미지들을 받아 왔습니다. 상체 / 하체를 나눠서 애니메이션을 나눠서 동작을 서로 나눠서 그에 맞게 진행하게 하려고 했습니다. 한 가지 예를 보자면 플레이어가 앞으로 가는 Walk상태 여도 하체는 Walk상태이지만 상체는 대기 / 발사 앞/위/아래 등 다양한 동작을 취하게 됩니다. 하체가 점프 및 대기 상태여도 하..
-
RPG 듀토리얼 06. Item equip
안녕하세요 오늘은 아이템을 장착하며 아이템에 따른 능력치가 플레이어 스텟에 동기화되는 동작 구현을 보겠습니다. 우선 지난 시간에 아이템들이 드래그 & 드롭 되는 부분을 봤습니다. 그중 IPointerUpHandler : 버튼 / 클릭 떼는 순간 실행되는 이벤트에서 releaseTime을 검사해 0.2f초 이상 이면은 드래그 중 떼 진 것으로 간주 0.2f초 미만 이면은 클릭 상태로 2가지 동작을 if(조건문)으로 나눴습니다. releaseTime이 0.2f초 아래 일 시 실행되는 조건문입니다. (드래그가 아닌 클릭으로 간주합니다) 우선 코드를 보시기 전에 itemInfoFrame부터 보겠습니다. 아이템의 정보를 시각화해 줄 UI항목입니다. Text는 모두 TextMeshProUGUI로 작성했으며 이 아이..
-
RPG 듀토리얼 05. ITEM_in the Bag
안녕하세요. 오늘은 Bag 오브젝트 안에 Item 부분을 설명드릴 예정입니다. 다른 글들도 정리가 잘 되어있지 않은 편이지만.. 특히나 이 Item 부분은 더욱더 어디서부터 시작을 해야 할지 모르겠습니다. 우선 구현 목차를 간단하게 정리해 보겠습니다. (아이템이 가방 안에 있다는 가정 하입니다.) 1. Item 드래그 & 드롭 기능. 2. Item 장착 기능 3. Item 능력치 부여 4. Item 장착 시 (Player Stat += Item 능력치) 우선 아이템에 기능 구현은 이 정도가 끝인 것 같습니다. 이후 상점을 열어 아이템 구매 및 판매할 시 Bag 함수를 열어 Bag에 있는 아이템 부분과 상점의 상호작용 하는 부분에서 추가적으로 올리겠습니다. 우선 첫 번째로 Item의 드래그 기능부터 보겠습..
-
일상] 티티 (T.T) 01
안녕하세요. 다름이 아니라 오늘 이러한 카톡을 받았습니다. 리듬게임이라.. 저도 많은 리듬게임을 해봤는데 도통 어떻게 구성을 해야 할지 감이 안 왔습니다. 간단히 "리듬 게임"만 검색을 해 보아도 참 다양한 리듬게임들이 존재하는데요.. 대단한 게임은 아니지만, 소소(소중하고 소중한)한 게임을 만들어 보려고 합니다. 제목은 T.T Game입니다. (Touch Touch)에서 따온 T.T입니다 ㅎㅎ 필요 에셋은 유니티 에셋스토어에서 무료로 다운로드하였습니다. T.T의 현재 씬 화면입니다. 구현 목록 1. 다양한 젤리들이 씬 화면에 등장한다. (지정 시간이 초과가 되면 비활성화될 예정) 2. 다양한 젤리들 - 1~3번의 터치를 작용받은 후 사라짐 - 움직이는 젤리 - 젤리를 터치/클릭해서 없애면 점수를 획득 ..
-
RPG 듀토리얼 04. RenderTexture & stat
안녕하세요! 이번엔 캐릭터를 클릭/터치 시 활성화되어 켜지는 Info창 과 Bag 창을 같이 보시겠습니다. 이번 장은 제가 생각했을땐 코드적인 설명보다는 UI항목에 대한 부분이 많을 것 같습니다. 코드적인 설명이 별로 없을 것 같아 그냥 넘어가자니 애매하고. 또 그렇다고 그냥 작성하자니 애매하고.. 우선 보시면 캐릭터 Info창에 Player의 화면도 보이고 Player의 Stat도 보입니다. Bag 창에는 아이템 칸도 보이고 골드 창도 보입니다. Info창과 Bag창을 개별적으로 나눈 이유는. Bag창은 나중에 상점을 이용할 때 재 활용하기 위해서입니다. 텍스트 들은 모두 TextMeshPro를 사용하였습니다. 우선 캐릭터 Info창부터 보겠습니다. Info창을 관리하기 위해서 Panel을 만들어 목록..
-
RPG 듀토리얼 03. Ray & CamController
오늘은 Ray를 생성하여 발사하는 로직을 구현할 예정입니다. 이 Ray의 사용처는 매우 다양하지만 이번 글에서는 player를 클릭해 Inventory / info 창이 열리게 설정할 것입니다. Ray 생성에 앞 서 먼저 카메라 회전을 담당할 스크립트 CamController부터 짧게 보고 가겠습니다. CamController 구현 목록은 간단합니다. GetMouseButton(1)로 마우스 왼쪽 버튼이 눌린 상태에서 마우스 움직임 방향대로 좌/우/상/하 회전을 하게 됩니다. 스크립트부터 바로 보시겠습니다. 선언 변수들부터 보겠습니다. camAxis_Central : MainCamera를 담고 있는 부모 오브젝트입니다 (플레이어의 위치 + y축 0.4f의 높이)에 붙어 있습니다. cam : player를..
-
RPG 듀토리얼 02. 플레이어 이동 구현
안녕하세요. 오늘은 player의 이동 구현을 살펴보겠습니다. player에게 필요한 구현들은 크게 4가지로 볼 수 있는데요 이동 / 공격 / 슬라이드 / 스킬로 볼 수 있습니다. 이동 / 공격 = 매 항시 작용 가능 슬라이드 / 스킬 = 쿨타임을 가진 스킬로 분류를 하겠습니다. 우선 초기 이동 컨셉부터 보겠습니다. 레이를 이용해 플레이어를 움직이는 모습입니다. 초기 콘셉트를 이렇게 쿼터뷰로 잡고 테스트를 해봤는데 제 역량 부족도 있겠지만, 제 가 만든 게임의 몰입감의 요소가 부족했습니다. 그리 하여 이동 구현을 솔 더뷰로 하게 뜸하여 직접 플레이를 하며 몰입감을 더 해주고 추 후 조이스틱을 추가하기로 했습니다. 이걸 어디서부터 설명을 해야지 순서대로 잘 갈 수 있을까 고민을 많이 했습니다. 몇 안 되는..
-
RPG 액션 연습 07. DRAGON! 02 / 02
현재 제작 중인 드래건은 초기 활성화 시 하늘에서 비행모션을 하며 땅으로 내려오면서 운석을 떨어트리는 스킬을 씁니다. 이후 드래곤 밑바닥이 Ground와 닿았다고 판정 시 DragonBoss스크립트 컴포넌트는 비활성화가 되며 DragonBoss2 의 스크립트에서의 동작이 실행됩니다. 마지막 동작 부분인 카로틴 함수 Enable에서 dragonBoss.enabled = false로 현재 사용하는 dragonBoss 스크립트를 비활성화를 시키며 DragonBoss2.instance.state = DragonBoss2.State.Idle로 상태를 Idle로 변환시켰습니다. DragonBoss2 스크립트를 보겠습니다. 이 스크립트에선 enum으로 상수 열거형 클래스를 사용하였습니다. Roding : 초기 상태 ..
-
RPG 액션 연습 06. DRAGON! 01 / 02
안녕하세요. 이번엔 멋진 DRAGON을 만들어 봤던 과정을 올려 보겠습니다. 음.. 사실 퀄리티가 높거나 다양한 동작 구현 등이 있는 드래건은 아니지만... 제 첫 하늘을 나는 드래곤 이니 만큼.. 애정이 듬뿍 가는 녀석입니다. 등장 신을 좀 더 멋지게 하고 싶어서 이것저것 찾아보던 도중 씨네 머신이란 것을 알게 되어서 현재 학습 중에 있습니다. 아직 적용은 안됐지만 멋진 등장 연출을 기대해 주세요. 자 그럼 바로 시작해 보겠습니다!! 에셋은 유티티 에셋 스토어에서 다운로드를 했습니다. 제가 선택한 드래건입니다!! 우선 전 스크립트를 2개로 나눴습니다. 각 DragonBoss / DragonBoss2로 등장했을 때의 스크립트 / Ground에 도착했을 때의 스크립트 두 개로 나눠 동작 연출을 하였습니다!..
-
FPS 연습 04. Zombie 상태값 & Respawn
안녕하세요 이번엔 일반 좀비로 만들었던 빠른 녀석의 상태 값 구현을 마무리해주고 죽었을 시 일정 시간이 지난 후 되살아나는 Respawn 스크립트도 구현을 해보겠습니다. 순서는 이렇습니다. 1.Move (이동) 2.Attack (공격) 3.Damge (대미지) 4.Die & Respawn (죽음 & 되살아남) 자 그럼 바로 코드 내용부터 보겠습니다! Move함수입니다. notMovSpeed의 스피드였던 nav의 스피드를 movSpeed로 바꿔 주었습니다. 이후 거리를 체크하는 Distance함수를 사용해 transform(zombie)와 player의 위치를 계산해 atckDis(공격 범위) 보다 클 경우의 조건문을 걸어주었습니다. (DIstance와 과정 및 결과가 똑같은 magnitude / 제곱 값..
-
FPS 연습 03. Zombie / Idle
안녕하세요. 오늘은 총을 쏴서 맞으면 죽을 zombie를 제작해 보겠습니다. 지금 머릿속에 다양한 좀비들이 생각나는데 빠른 좀비, 맷집이 강하지만 느린 좀비, 파워가 세지만 누워서 다가오는 좀비 등등 다양하게 각기 다른 스텟을 정해줘서 구현을 해보면 재밌을 것 같다는 생각을 했습니다. (뭔가 플레이어를 제작 할때보다 왜 생각에 집중이 되는 느낌적인 느낌 아닌 느낌..?) 이번에 만들 좀비는 1. 추적 범위에 들어오지 않는 이상은 필드를 활보하며 다닐 것입니다. 2. 추적 범위에 들어오거나 혹은 공격에 맞은다면 빠른 속도로 Player에게 다가올 것입니다. 3. 좀비를 잡게 되면 점수를 획득하며, Stage가 올라갈수록 다양한 좀비들이 나오게 됩니다. 우선 구성은 이러합니다. 프로젝트를 제작하면서 수정과 ..
-
FPS 연습 02. Player 총 발사 구현
안녕하세요 오늘은 Player의 총 을 쏘는 구현과 Zombie를 제작해 맞는 모션까지 제작하려고 합니다. 우선 이렇게 제작을 해야 하는데. 먼저 해야 할 것들이 생각났습니다. 첫 번째는 Ground야 아직 작업 단계니 추 후로 미뤄둔다고 해도 배경은 있어줘야 그림이 경계선도 뚜렷해지고 괜찮아질 것 같다고 생각했습니다. 두 번째는 조준점이 있어야겠다고 생각했어요. 우선 이 두 가지부터 작업을 완성 후 player의 총 쏘는 동작 구현과 zombie를 제작해 보겠습니다. 음. 이 부분은 책을 봤을 때를 얻은 지식으로 그때가 생각나 SkyBox를 적용해봤는데 제가 적용한 방식을 설명? 하려고 하니 말을 잘 못하겠습니다. 우선 책의 힘을 살짝 빌려와서 ㅎㅎ.. 하늘을 표현하는 대표적인 방식으론 SkyBox와 ..
-
일상 ] 피아노
-이 카테고리는 소소한 일상에서의 연습 물 과정을 올릴 생각입니다- 안녕하세요. 날씨도 우중충 하고 몸에 힘이 안 들어가기에 기분 전환할 겸 간단한 피아노를 만들어 봤습니다. 우선 영상부터 보시죠!! 00 : 23초 이번엔 에셋을 따로 구하지 않고 Unity 내에 있는 UI 항목으로 구성을 해봤습니다. UI 항목의 Button로 구성을 했으며. 각 사이즈를 맞춰 주고 Color를 이용해 흰색과 검은색을 나눠 봤습니다. Button의 컴포넌트에 항목에 보시면 Button이라 쓰인 부분이 저장되어 있습니다. Interactable : 상호작용을 할지의 여부입니다. 체크를 풀면 사용하지 않는 상태입니다. 음 이 부분은 쉽게 말하자면, 체크를 해제하면 반투명해지는 것을 확인할 수 있는데 아무런 반응이 되지 않습..
-
FPS 연습 01. Player 이동 및 회전 구현
안녕하세요. 이 카테고리에서는 FPS를 연습해 보고 직접 제작해보며 그 과정을 올려 보려고 합니다. 점점 해야 할 것들이 많아지는 느낌적인 느낌... 이지만! 오히려 한 가지만 계속하는 것보다 다양한 것을 볼 수 있어서 더 재밌지 않나 싶기도 하고 해야 할 것이 생긴다는 게 뭘 해야 할지 모르는 것보다 훨씬 좋은 것 같습니다. 자 그럼 시작하시죠! 우선 처음에 총을 쏘는 게임을 어떻게 만들까 잠시 생각을 해 봤는데 처음으로 생각난 부분이 Player와 적이었습니다. 단순히 Player와 적을 구현하여 player가 총을 쏴서 적을 잡는 모습이 머릿속에 그려졌습니다. 수류탄, 패줌 기능, 다양한 총기 등등 이것저것 생각나는데 제일 먼저 가장 기초가 되는 Player를 먼저 만들어 보겠습니다. 유니티 에셋 ..
-
RPG 액션 연습 05. Bomb_Move
이번엔 Player를 따라와서 폭파되며 대미지를 입히는 Bomb_Move의 Enemy를 만들어 보겠습니다. Bomb_Idle의 제작 시와 똑같이 유니티 에셋 스토어에서 무료로 다운로드하여 하여온 에셋을 모델로 사용했습니다. Bomb_Idle과는 다르게 Bomb_Move는 모자를 쓰고 있습니다. 바로 제작해 보겠습니다. Bomb_Move 가 가지고 있는 상태 값 입니다. Idle : 대기 상태 Move : 이동 상태 Die : 죽음 상태 Bomb_Move는 특별한 목적지 입력이 필요하지 않은 상태로 생성 시 Player를 향해 달려가므로, 3가지 상태로 구현을 했습니다. Bomb_Move에 선언된 변수들입니다. 각 player / bombEffect / message는 Transform / GameObje..
-
RPG 액션 연습 04. Bomb_Idle
안녕하세요. 오늘은 Bomb Enemy를 만들어볼 예정입니다. 다양한 몬스터를 만들어보려고 이것저것 구상 중인데, 우선 서있는 Bomb Enemy와 움직이는 Bomb Enemy로 총 2 종류를 만들 예정입니다. 이런 두 종류인데.. 제가 손 글씨에 영.... (악필은 천재가 많다고 합니다) (라는 변명이 많다고 합니다) 정리해서 보자면 1. 가만히 있는 Bomb Enemy / 움직이는 Bomb Enemy | 로 총 2종류입니다. - 가만히 있는 Bomb Enemy는 일정 반경 안에 Player가 접근 시 죽으면서 폭발을 일으키는 Enemy입니다. - 움직이는 BombEnemy는 항상 Player를 향해 움직이며 접근한 시간이 일정 시간 이상이면 폭발을 일으킵니다. 우선 이렇게 2명의 Enemy를 제작해 ..
-
RPG 액션 연습 03. 기본 Enemy
안녕하세요 날씨가 뒤숭숭합니다. 다들 환절기 감기 조심하세요. 더불어 코로나도.. ㅎㅎ 얼마 전에 이모티콘이 있는 걸 알아서 사용해봤는데 무척 귀여운것 같습니다. 오늘은 기본 Enemy를 만들어 보겠습니다. 화려한 이펙트 들은 없지만, 기본 동작 구현에 맞게 움직이며 hit 모션과 damage 모션을 적용하여 player와 상호 작용을 연습해 보겠습니다. 이러한 관계를 시각적으로 보이기 위해서 UI작업도 함께 해야될것 같습니다. 그럼 바로 시작해 보겠습니다. 책에서 보았을땐 프로토 타이핑을 통해 간단한 큐브나 캡슐 등 기본 도형을 활용해 구현을 하여 시간을 단축시키고 기획을 검증하여 각 직군별로 동시 작업을 가능하게 하는 효율적인 방법이 있다고 합니다. 하지만, 아직 제 역량으로는 기본 도형이나 에셋에서..
-
RPG 액션 연습 02. Player 공격 모션
안녕하세요. 오늘은 player의 공격 모션을 제작해볼 예정입니다. 첫 번째로 생각나는 점은 플레이어의 공격을 3가지로 나누어 콤보 공격이 가능하게 만들 것입니다. 두 번째로 생각나는 점은 플레이어에게 가드 기능을 추가하면 어떨까? 생각 중입니다. 상대 몬스터들이 만들어지면서 동작 구현에 맞게 동작 연출을 시도해 보겠습니다. 그렇다면 바로 달려가 보겠습니다. 우선 한 스크립트에 작성하게 되면 코드도 길어지고 가독성도 떨어지며 나중에 수정 및 유지보수가 어려워진다고 도 많이 들어서,,, 코드를 세분화한다는 게 아직 감은 안 잡히지만 연습을 해보도록 하겠습니다. 새로운 스크립트를 만들겠습니다. Combo라는 스크립트이며 선언된 변수들은 각 플레이어의 애니메이터를 담아올 playerAnim / 콤보가 가능한지..
-
RPG 액션 연습 01. Player 이동구현
안녕하세요. 오늘은 RPG 액션 까지는 아니지만... RPG를 한번 만들어 보고 싶어서 빠르진 않더라도 천천히 다양한 동작들을 연습하는 과정을 보여드리려고 합니다. 뭐니 뭐니 해도 게임을 생각하면 Player가 빠지면 섭하니 우선 player부터 만들어 보겠습니다. player 입니다. 유니티 에셋 스토어에서 다운로드하여왔습니다. 우선 Player의 보는 시점부터 구현하겠습니다. 캠의 기능은 2가지입니다. 1. 마우스의 이동방향 대로 회전을 실시 2. 줌 기능 캠 이동 구현인 CamMove() 함수부터 보겠습니다. mouseX += Input.GetAxis("Mouse X"); mouseY += Input.GetAxis("Mouse Y") * -1; 유니티 자체에 내정되어있는 Input Manager -..
-
2D.MetalSlug 01. Intro 영상
이번엔 추억의 Metal Slug를 모티브 하여 제작해 보려고 합니다. Unity를 활용하여 만들 예정이며 Metal Slug의 영상들을 찾아보니, 1~6 까진 들어 봤는데 7과 xx의 난도가 높은 시리즈까지 나왔다고 하더군요.. 초등학생 때 어릴 적 문구점 앞에서 100원씩 넣고 재밌게 했던 기억이 있는데. 시간이 참 빠른 것 같습니다. 우선 메탈슬러그를 설명하자면, 어택 모션은 총 / 칼 / 수류탄뿐이 없지만, 이동을 하면서 인질을 구하거나 주변 오브젝트를 파괴하여 다양한 무기를 얻으며 스테이지를 클리어하는 게임입니다. 00:30초 제작에 앞 서 우선 인트로 영상을 구현해 보았습니다. 약 30초가량의 intro영상인데, 각 해당 Sprite들을 애니메이션으로 만들어 프리 팹으로 관리하였습니다. Gam..
-
2D 슈팅게임 05. Enemy Hit 및 아이템 드롭
오늘은 날아다니는 Enemy 들을 맞췄을 시 발생하는 Hit 모션과 아이템이 드롭되는 부분을 구현하고 게임을 완성 시키려고 합니다. 전과 같은 방법으로 Sprite를 애니메이션으로 만들어주어 Hit 모션을 만들어 줬습니다. 애니메이션을 만드는 과정에서 Has Exit Time 부분을 종종 깜빡하는 경우가 생기는데 Has Exit Time 를 체크해두면 전 애니메이션의 동작이 완료된 후에 트랜지션대로 전이가 됩니다. 반대로 Has Exit Time 를 언체크 해두시면 즉시 전이가 되기에 깜빡하지 않는 습관을 들인다면, 시간을 절약시킬 수 있습니다. Enemy의 Animator 입니다. 평상시는 대기상태로 나는 모션을 취하다가, 히트가 됐을 시 Hit모션 재생 후 다시 BirdRed의 대기 상태로 돌아옵니다..
-
2D 슈팅게임 04. Enemy 제작
Enemy로 사용될 Bird Sprite 들은 유니티 에셋 스토어에서 무료로 다운로드하였습니다. 이 새(Enemy) 들은 맵의 좌/우 한 방향으로 이동을 하며 1. 총 3종류로 각 스피드가 다릅니다. 2. Atk(공격 물체)에 맞으면 드롭되는 아이템들도 다릅니다. 3. 종류 : 코인 / 똥 / 버프 로 크게 3가지를 구성 계획으로 잡았습니다. 이제부턴 Monster/새/ 등을 Enemy로 칭하겠습니다. Enemy에게 RigidBody2 D 컴포넌트를 추가시켰습니다. 중력을 받으면 안 되기에 RigidBody2 D 영역에 있는 Gravity Scale은 0으로 바꿔 주었습니다. 스크립트에 들어가기에 앞서 애니메이션을 Idle로 칭해 만들어 주겠습니다. Enemy의 스크립트입니다. birdSpeed_를 pu..