본문 바로가기

전체 글117

#9 조이스틱과 HUD 구현하기 조이스틱과 HUD 구현 목적 조이스틱: 모바일 환경에 맞는 조작 기능을 제공하기 HUD: 게임 플레이에 필요한 기본UI 구현하기(캐릭터 HP/MPbar, 공격과 스킬버튼, 스코어) 구현된 영상 이번 글 이후로 구현된 영상을 먼저 보여줘야겠다. 영상으로 먼저 확인하면 머릿속에 그려져서 어떤 기능들이 있고 어떻게 구현할지 본문을 쉽게 이해할 수 있을 것 같다. https://youtu.be/YdYcJVVYWi8 조이스틱 구현하기 조이스틱 구현 참고 유니티UI-API설명(RectTransform, 앵커 등) https://docs.unity3d.com/kr/530/Manual/UIBasicLayout.html 유튜브에 조이스틱을 구현하는 여러 동영상이 있었지만 스크립트도 깔끔하고, 이해하기도 좋아서 아래 링크.. 2020. 2. 19.
#8 캐릭터 구현하기 - 일반공격(매직미사일 발사) 구현 구현 목적 1.캐릭터 컨셉(마법사)에 어울리는 일반 공격(매직미사일 발사) 구현하기 2.반드시 적중하는 일반 공격(매직 미사일 유도 추적 기능) 구현하기 2.1.왜? 추적 기능이 필요한지? 조준 보완 장치 이 게임은 가상패드로 캐릭터를 조종하기 때문에 섬세한 적 조준이 어렵다. 추적 기능을 추가하여 가상패드의 조준 기능을 보완한다. 원활한 적 처치와 마나 파밍 일반 공격이 반드시 적중하여 원활하게 적을 처치하고 드랍하는 마나를 원활하게 파밍한다. 축적된 마나를 통해 스킬 사용 유발(마나 파밍과 스킬 관련 기획의도라서 삭제) 축적된 마나는 스킬 사용을 유발하고 스킬 사용을 통해 단조로운 플레이(일반공격+회피)에 강력한 광역 스킬(강력한 한방)을 조합하는 재미를 제공한다. *유도 1.사람이나 물건을 목적한 .. 2020. 2. 19.
#7 캐릭터 구현하기 - 타겟팅 시스템 구현 목적 플레이어 캐릭터의 시야 범위 안에 있는 오브젝트를 타겟팅하여 공격 대상으로 지정하기 타겟팅된 오브젝트에서 타겟팅UI를 출력하여 플레이어에게 타겟팅 시각적 정보 제공 구현할 기능 1.타겟팅 대상 식별(Field Of View 시스템 연계) 캐릭터와 시야 범위 안에 있는 오브젝트들 사이에서 가장 가까운 거리 계산하기 가장 가까운 거리의 오브젝트를 타겟팅하기 2.타겟팅UI 타겟팅UI 활성화 - 타겟팅 대상일 때 타겟팅UI 비활성화 - 타겟팅 대상이 아닐 때 구현 과정 이번 구현에서 가장 중요한 기능은 가장 가까운 거리의 계산하고 해당 오브젝트를 찾는 것이다. foreach를 활용하여 가장 가까운 거리를 찾는 글이 있는 블로그를 참고했다. (List, Vector3.Distance, foreach 이.. 2020. 2. 19.
#6 캐릭터 구현하기 - Field Of View 캐릭터 시야 구현하기 Field Of View 구현 목적 캐릭터의 시야 안에 있는 적을 식별하고, 타겟팅하여 공격하기 위함이다. Field Of View 구현할 기능 1.캐릭터 전방으로 부채꼴 형태의 시야 범위 구현 2.시야 범위 안에 오브젝트가 존재하는지 판단 3.시야 범위 안에 존재할 경우 어떤 오브젝트인지 식별(Target, Obstacle) 4.Target의 경우 타겟팅 5.재식별 기능(코루틴) 6.타겟팅 우선 순위 기능(캐릭터와 가장 가까운 적을 우선적으로 Target) - 미구현 7.기타 타겟팅 기능(타겟팅 시 몇 초간 유지? - 몬스터와 전투 테스트를 진행 후 구현할 예정) - 미구현 Field Of View 참고 자료 Sebastian Lague님의 Field Of View 영상을 발견했지만 자막이 없어서 이해.. 2020. 2. 19.
#5 캐릭터 구현하기 - 캐릭터의 손으로 지팡이 잡기 먼저 글을 작성하기 전에... 반성 몇 주 전에 이 기능을 구현했지만, 블로그에 글을 작성하지 않았다. 이유는 해당 기능을 구현하고 정리해서 올리기가 너무 귀찮았고 그 다음 기능인 Field Of View 구현을 하다가 의욕이 감소했고 관련 정보를 얻기 위해서 영상, 책을 읽으며 시간을 보냈기 때문이다. 꾸준하게 한다는 건 정말 어려운 일이다. 배운 것을 정리해서 올리는 것은 더욱!! 그렇지만 정리를 해야 머리 속에 잘 기억이 되니까 귀찮아도 정기적으로 글을 작성하자. 개발 일지를 미루니까 어차피 나중에 해야하지만 안하니까 더욱 귀찮아지고 하기 싫어진다. 현재 손으로 지팡이 잡기 구현했고, Field Of View도 구현했고, 이제 특정 공격 애니메이션 프레임에서 매직미사일을 날리기를 구현해야하는 데 못.. 2020. 2. 19.
#4 캐릭터 구현하기 - 기능 별로 스크립트 구조화하기 기능 별로 스크립트를 구조화를 한 이유 원래 구현할 사항은 IK를 이용해서 스태프를 잡기인데 이 기능을 구현하려고 유니티 책을 보니 다양한 스크립트들이 서로 연결되어있어 파악하기 힘들었다. 그래서 유니티 책에 있던(좀비슈팅게임 파트) PlayerInput, PlayerMovement, Gun, PlayerShooter 스크립트를 공책에 적었다. 적으면서 스크립트 마다 어떤 내용이 있고 어떤 기능을 하는 지 파악하려고 했고, 또한 내가 구현하고 싶은 기능들을 어떻게 스크립트에 작성해야 하는지 스크립트 작성 구조?를 알고자했다. 적다보니 스크립트에 무엇이 있고, 어떤 기능들이 있는지 어느 정도 내용과 구조를 파악했다. 유니티 책의 스크립트 분석 PlayerInput -사용자의 입력 버튼을 변수 선언 -매 프.. 2020. 2. 19.
#3 캐릭터 구현하기 - 공격 애니메이션 적용 #블로그를 체계적으로 운영해본 적이 없다보니 글을 작성면서 글 구성이 많이 바뀔 듯 하다. 어떤 게 더 효율적인지 시행착오가 필요할 듯 구현할 사항 1.캐릭터가 움직이다가 마우스 왼쪽 클릭을 하면 공격 애니메이션을 실행하고 다시 기본 상태로 돌아간다. 2.기본 상태 또는 이동 상태 >마우스 왼쪽 클릭 입력(Input)> 공격 애니메이션 실행(Output) > 기본 상태 구현 과정 1.Bool 이용하기(관련 기능 모름, 내 실력 부족으로 인한 실패) 1)공격을 입력X = false, 공격 입력O = true로 구분하여 bool 이용하기로 함 2)Attack 스크립트를 생성하여 공격 관련 기능을 구현하기로 함. 나중에 스킬들도 비슷하게 작동할 것 같아서, Attack스크립트(나중에 이름을 변경할 듯)를 생성.. 2020. 2. 19.
#2 캐릭터 구현하기 - 캐릭터 조작하기 Input(입력), Movement(액터) 스크립트 작성 구현하기 1.캐릭터 조작하기 1.1.캐릭터 모델링과 애니메이션 연결하기 1.2.캐릭터 조작하기 - Input+Movement스크립트 작성 및 연결 구현내용 1.2.캐릭터 조작하기 - Input+Movement스크립트 작성 및 연결 1) 책에서 입력과 액터를 나누면 전체적인 코드양이 줄고, 유지관리하기 좋다고 하여 Input(입력), Movement(액터)로 나눠서 구현하기로 결정 2) Input 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; //플레이어 캐릭터를 조작하기 위한 사용자 입력을 감지 //감지된 입력값을 다른 컴포넌트가 사용헐 수 있도록 제공 public class PlayerInput : .. 2020. 2. 19.
#1 캐릭터 구현하기 - 캐릭터 모델링과 애니메이션 연결하기 유니티 게임 프로그래밍 에센스를 모두 공부해서 본격적으로 1인 게임 개발을 시작했다. 일단 핵심 시스템을 구현할 수 있는지 테스트를 하기 위해서 캐릭터 시스템 먼저 구현하기로 했다. 구현할 것 1.캐릭터 조작하기 2.캐릭터 공격 애니메이션 3.캐릭터 공격 이펙트 추가(마법사 캐릭터라서 마법 미사일이 나갈 수 있게) 구현하기 1.캐릭터 조작하기 1.1.캐릭터 모델링과 애니메이션 연결하기 1.2.캐릭터 조작하기 - Input+Movement스크립트 작성 및 연결 구현내용 1.1.캐릭터 모델링과 애니메이션 연결하기 1) 유니티 에셋스토어에서 무료 마법사 캐릭터와 무료 애니메이션을 구함 2) 하이어라키에 캐릭터 모델링을 추가하고, 캐릭터 오브젝트의 애니메이터 - 컨트롤러에 에셋의 무료 애니메이터 컨트롤러를 할당.. 2020. 2. 19.