Clamp함수로 최대 최소 각도를 정하여 회전을 제한 하고
Lerp함수로 카메라의 움직임을 부드럽게 만들어준다.
(rotation = newRot 해도 상관없음)
카메라를 따라가게 하고 싶은 오브젝트의 Position으로 덮어버리면 된다.
안움직이게 해놓고 누른 방향키대로 어느 방향으로 가야하는지
처리하기 쉽게 방향벡터를 생성해준다.
Clamp함수로 최대 최소 각도를 정하여 회전을 제한 하고
Lerp함수로 카메라의 움직임을 부드럽게 만들어준다.
(rotation = newRot 해도 상관없음)
카메라를 따라가게 하고 싶은 오브젝트의 Position으로 덮어버리면 된다.
안움직이게 해놓고 누른 방향키대로 어느 방향으로 가야하는지
처리하기 쉽게 방향벡터를 생성해준다.
에셋스토어에서 임포트하면 모델, 애니메이션, 사운드
전부 딸깍 한번에 가져와지는데
에셋 스토어에 없는 외부 3D 모델 파일을 가져올 땐
텍스쳐와 Material, 애니메이션 등 처리해야 하는 문제가 생긴다.
선택한 애니메이션이 이동한다면, 옆쪽에 잇는 In Place를 체크하여 위치를 고정시킨다.
일단 가져온 파일의 최상위를 선택하면 Inspecter에 여러 세팅이 보이는데
그 중 Rig라는 탭에서 애니메이션 타입을 휴머노이드로 바꿔준다.
주위에 다른 오브젝트가 있을 경우, 다른 위치를 찾아서 스폰된다.
버튼들이 나타나고 장착 버튼을 눌렀을 경우 플레이어 화면에서
장비를 들고 있는 모습을 볼 수 있다.
오브젝트가 부셔지면 자원이 드랍된다.
건물 중에 모닥불과 작업대는 주변에 있을 경우, Collision Trigger을 사용하여
플레이어가 제작 가능 및 요리 가능한 상태로 만들기 위해 변수를 true로 변경한다.
체력이 없어졌을 때 게임 오버 화면
메인 메뉴 버튼을 누르면 시작 화면으로 넘어간다.
https://www.figma.com/
이번 팀 과제에서는 피그마 사이트를 활용하여 회의를 진행했다.
회의에서 정한 프로젝트 주제는 서바이벌 게임으로
발헤임이나 마크같이 건축과 자원캐기 등 생존에 필요한 기능들을 구현하고
게임 컨셉과 스토리, 이름, 등 부가적인 "재미" 요소를 구상하였음
개인 개발 작업 들어가기 전, 에셋과 폰트 같은 리소스들을 미리 임포트하여
메인에 머지하여 업로드 하였다.
하지만 큰 화면에 그렇게 따로 두는 방법이 맘에 들지 않아
일반 RPG 게임처럼 설계 해보기로 하였다.
아이템을 하나 뺀다. 그리고 장착한 장비 아이템을 구별하기 위한 리스트를
새로 만들어 그쪽에 하나 추가한다.
개수가 0이 된 아이템은 인벤 리스트에 아이템을 넣고 빼는 함수를 호출할 때 마다
전체 리스트를 탐색하여 스택개수가 0인 요소를 찾아서 리스트에서 빼버린다.
장비한 아이템의 능력치를 반영하여 스탯창도 최신화 시킬 수 있게 하였다.
아이템을 빠르게 불러오거나 전달할 수 있게 하였다.
(가끔 디버깅하다 보면 저장된 정보들이 날라가는 오류가 있음)
싱글톤 했던 스크립트에서 갖고 있게 하였다. (다른 스크립트에서 접근할 수 있게)
저번에 만들어둔 타일맵 예제를 가져와 이번 프로젝트에 적용하였다.
Assets->Export 로 .unity파일을 배포하여 다른 프로젝트로 넘어가서
Import Package 해주면 된다.
캐릭터 스탯 변수에서 최대치를 지정하기 위해 Range로 최소 최대값을 고정해두고
나중에 아이템이나 버프 아이템을 먹었을 경우 스탯이 이를 초과하지 않게 방지해뒀다.
+Serializable(직렬화)로 선언하면 awake나 start가 없어도
Inspecter창에서 변수를 초기화 가능
c++에서 쓰레드 돌릴려면 thread.h 헤더를 쓰면 되는데 이 친구는 쓰레드가 아직 실행 중인지, 아니면 강제 종료하거나 하는 함수가 없어서 조금 아쉬운 애다. std::thread 는 로컬 변수로 선언하든 new 동적 할당을 하든 start 함...