반응형

프로젝트해요/게임_개발 16

[Unity] #16. FPS 게임 제작(7_최종)

목차 1. 길 찾기 (메시 링크) 2. 스나이퍼 모드 3. 무기 효과 1. 길 찾기 (메시 링크) 네비게이션 이동 가능한 영역이 높이 차이 등으로 단절되어 있어도 오프 메시 링크(Off Mesh Link)기능으로 임의 연결이 가능하다. 테스트해보기 위해 임시로 아무 모양이나 생성했다. (전 큐브 모양함) 이렇게 오르고 내려갈 곳에 빈 게임 오브젝트를 배치해봤다. 꼭 저 파란색 안에다가 지정해야 움직임이 가능해진다. [Add Component] - [Navigation] - [Off Mesh Link] 를 선택해서 추가한다 이런식으로.. 원하는 부분도 조절해주고.. 에이전트가 최단 거리를 계산할 때 이동하는 Node마다 비용이 존재하는데 이 거리가 가장 짧은 거리로 이동하게 된다. 비용값은 내비게이션 뷰의..

[Unity] #15. FPS 게임 제작(6)

목차 1. 플레이어 폴리싱 2. 길 찾기 (네비 메시) 1. 플레이어 폴리싱 : 플레이어 외형 모양 교체 Asset Store에서 원하는 모양.. 아무거나 써도 된다. 나는 군인 모양 선택함. 가져온 이미지 플레이어 오브젝트 하위로 넣어두고~ 적용하고 보니 캐릭터가 너무 홀쭉 빼빼로가 되어 버려서 Scale Factor 항목을 좀 줄였다.(0.7 정도로) 한 뒤에 충돌역역도 캐릭터 크기에 맞도록 조정했다. 카메라 위치도 캐릭터 눈쪽으로 약간 올려주었다..~~ 다음으로는 이 캐릭터에도 앞선 내용처럼 애니메이션을 적용할 예정이다. [Animator Controller] 추가하고 Controller 항목에 저 에셋을 추가해준다. 가지고 있는 idle 파일을 애니메이터 뷰 쪽에 드래그 앤 드랍 하면 아래처럼 견..

[Unity] #14. FPS 게임 제작(5)

목차 1. 에너미 폴리싱 (애니메이션) 1. 에너미 폴리싱 이전에 FPS 게임제작 (3)에서 했던 것 처럼 각 캐릭터에 상태에 따라 애니메이션을 만들어 줄 것이다. 스크립트는 전에것을 참고하면 될거고.. transition을 이렇게 연결해서 캐릭터가 자연스럽게 동작을 변경할 수 있도록 구현해 보았다.. 추가적으로 공격할 때만 하면 안되고 좀비가 날 쳤을 때도 해야하니까.. 공격 받아서 hp줄어드는거랑 다 죽어들면 죽는거 까지.. 구현해봤다. 다 하면 일케 된다.. 이벤트 함수랑 잘 연결하고 스크립트는 지난번처럼 작성하면 된다. 중간중간 확인하면서 transition 헷갈리지 않게 실행해보는게 좋을 것 같다. 하다가 중간에 안넘어가거나 이상한 행동 할때가 있어서,,~

[Unity] #13. FPS 게임 제작(4)

목차 1. 에너미 폴리싱 2. UI 제작 (피격효과) 3. 게임 매니저 1. 에너미 폴리싱 : 에너미의 외형을 좀비 캐릭터로 교체하기 Asset store에서 원하는 좀비 모양을 다운로드하고 임포트한다. 좀비 오브젝트를 Enemy의 하위 오브젝트로 추가하고 Transform을 리셋한다. 본인의 Enemy에 맞추어 캐릭터를 조정해준다. 다음으로는 캡슐이 보이지 않도록 Mesh Rederer 항목을 비활성화 시킨다. 다음으로는 각 Enemy의 상태에 맞는 애니메이션을 적용하도록 해보자.. 좀비 모델링 선택하고 임포트 세팅에서 [Rig] 탭 클릭 [Animation Type]과 [Configure..]이 다음과 같이 되어 잇는지 확인한다. Animations폴더를 따로 만들고 [+ 버튼] - [Animatio..

[Unity] #12. FPS 게임 제작(3)

목차 1. 에너미 제작(상태함수) 2. UI 제작(체력바) 1. 에너미 제작 public class EnemyFSM : MonoBehaviour { // 에너미 상태 상수 enum EnemyState { Idle, Move, Attack, Return, Damaged, Die } // 에너미 상태 변수 EnemyState m_State; . . . (생략) . . . } 에너미 상태를 만들기 위해서 EnemyFSM스크립트에 위에처럼 변수를 선언하고 switch문으로 case를 나누어 상태에 맞는 기능을 하도록 구현하였다. 이런 느낌.. 각각 원하는 동작과 함수를 구현해보면 된다. 상태전환하는 것도 유의해서 스크립트를 작성하도록..해야된다.. 2. UI 제작 : 플레이어와 에너미의 체력을 표시하는 바 만들..

[Unity] #11. FPS 게임 제작(2)

목차 - 무기 제작 - 에너미 제작 1. 무기 제작 수류탄 제작 : 마우스 우클릭 시 수류탄이 나올 수 있도록 제작한다. 1. 플레이어를 제외하고 물체에 닿으면 폭발하는 수류탄 오브젝트 생성 2. 사용자의 마우스 오른쪽 버튼 입력받기 3. 발사 위치에 수류탄 생성 4. 생성된 수류탄에 시선방향으로 물리적인 힘 가하기 Sphere 오브젝트 생성 뒤 다음과 같이 Rigidbody 컴포넌트를 추가한다. 스크립트를 생성한 뒤 적용하고 작성해보았다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class BombAction : MonoBehaviour { // 충돌했을 때의 처리 private void O..

[Unity] #10. FPS 게임 제작(1)

이번에는 FPS게임을 제작해볼 것이다. FPS 게임 : 1인칭 슈팅게임을 의미하는 말로 대표적인 게임으로는 서든어택, 오버워치, 발로란트 등이 있다. 목차 1. 지면새성 2. 카메라 회전 3. 캐릭터 이동 & 점프 1. 지면생성 먼저 3D프로젝트를 먼저 생성해준다. [Hierarchy] - [3D Object] - [Plane] 을 생성하고 오브젝트 이름을 Ground로 변경한다. 땅처럼 보일 수 있도록 다음과 같이 크기를 변경해준다. 지면에 땅처럼 색상을 만들어 주기 위해 Material 을 적용할 것이다. 먼저 Material을 모아 둘 폴더를 생성한다. Material 폴더에서 마우스 우클릭을 한 뒤 Material을 생성한다. Albedo를 이용해서 색상을 땅과 유사하게 바꿔주었다. Ground ..

[Unity] #9. 슈팅 게임 제작(5)

5번째 글을 마지막으로 슈팅 게임 제작을 마무리 할 예정이다. 이번에는 마지막으로 최적화에 조금 더 신경을 써보기로 했다. 목차 1. 싱글톤패턴으로 관리자 만들기 2. 오브젝트풀을 이용한 메모리 관리 1. 싱글톤패턴으로 관리자 만들기 싱글톤패턴 객체의 인스턴스가 오직 한개만 생성되는 패턴을 의미한다. 일종의 전역변수, 전역클래스 정적변수를 사용해서 만들게 된다. Gameobject.Find를 사용하면 Hierarchy창의 모든 오브젝트를 검색하기 때문에 효율적이지 못하다. 그래서 싱글톤 패턴을 사용한다. ScoreManager 스크립트를 싱글톤 패턴으로 구현한 것이다. public class ScoreManager : MonoBehaviour { . . . (생략) . . . // 싱글톤 객체 publi..

[Unity] #8. 슈팅 게임 제작(4)

이번에는 현재점수를 기록하고 최고점수를 저장하는 기능을 만들어 보도록하자. - 화면 표시 [Hierarchy] - [UI] - [Text] 를 클릭한다. Canvas 하위에 생긴 Text 오브젝트의 이름을 CurrentScore로 변경한다. 텍스트 창에 현재점수라고 표시 될 수 있도록 작성한다. 우주배경을 사용하였기 때문에 검정색 글씨의 경우 잘 안보인다. 하얀색 글씨로 색상을 변경한다. 기본 위치는 좌측하단에 표시되었으나 좌측 상단으로 텍스트 위치를 변경시킨다. 게임화면에는 다음과 같이 표시된다. 동일한 방법으로 최고점수 항목도 만들어준다. - 스크립트 작성 점수를 기록하고 저장하는 기능을 사용하기 위해서 ScoreManager 스크립트와 Empty Object를 생성한다. 다음과 같은 스크립트를 작성..

[Unity] #7. 슈팅 게임 제작(3)

목차 1. 폴리싱 2. 배경 및 효과 1. 폴리싱 - 사용자(Player) 폴리싱 상단바에서 [Window] - [Asset Store] 를 클릭한다. Search online버튼을 누르면 Asset을 다운받을 수 있는 사이트로 연결된다. awesome cartoon airplane 을 검색하여 다음 Asset을 다운 받는다. 내 에셋에 추가하기 [Download] - [Import] Import 로 적용시킨다. Plane1을 Player에 마우스 드래그 & 드랍하여 적용시킨다. [Inspector] 에서 Player의 Cube와 Mesh Renderer을 Remove Component한다. 다음으로는 비행기의 크기를 화면에 맞출 수 있도록 0.2정도로 조정한다. 또한 현재 슈팅게임은 3D로 제작은 하지..

반응형