본문 바로가기

Programming/Unity3D

팀 프로젝트 시작. 팀프로젝트 시작. 디아블로 3 방식 쿼터뷰의 MMORPG 팀원 4~6명 작업기간 1주 - 기본 타입 설계및 리소스 확보 V 0.1 2주 - 프로토 타입 확보 V 0.3 3주 - 추가 기능 구현 V 0.5 4주 - 1차 테스트 버젼 확보 V 0.7 5주 - 작업물 공개 및 버그 , 추가 기능 업데이트 V 0.9 6주 - 2차 테스트 버젼 확보 V 1.0 더보기
키입력을 통한 복합 이동. 이번에는 Rpg게임에서 사용되는 키보드 입력을 통한 이동을 구현해보겠습니다. 옛날옛날에는 키보드를 입력하면 케릭터가 보는 방향으로 휙 카메라가 돌면서 이동햇는데. 언제부터인지 기억은 정확하지는 않습니다만 와우에서 보여준 기술때문에 아마 많은 회사들이 그렇게 바뀌지 않았나 싶습니다. 카메라가 보고있는 방향으로 케릭터를 이동시켜 보겠습니다. 간단합니다. Player 스크립에 키 입력을 통한 이동을 위하여 WASDmove르는 함수를 만들어 줬습니다. 함수이름은 알아서.....직관적이여서 저걸로 했습니다. 그리고 키입력을통해 앞뒤 좌우로 이동하게될것입니다. 기존과 동일하게 키입력을 받아서 값을 감소,증가 시키는 방식입니다. 그리고 값이 들어왔다면. 나의 회전값에 카메라의 회전값을 넣어줘서 내 캐릭터가 카메라가 .. 더보기
카메라 땅꿀파기 현상 제어. 어제에 이어 카메라가 땅밑으로 파고드는 현상을 제어해보겠습니다. 여기서 중요한건 LayerMake입니다. //////////////////////////////////////////////////////////////////////////////////// //int layerMask = (-1) - ((1 더보기
카메라 회전 이번에는 카메라 회전을 구현하겠습니다. RPG게임에서 마우스 오른쪽버튼과 휠을 이용하여 카메라 회전및 줌 인 아웃을 구현되어 있는걸 자주 접했을겁니다. 이번에 그것을 구현해보겠습니다. 일단 카메라의 링크를 약간 바꿔 보겠습니다. Cameraman에 회전할수잇는 회전축을 하나 추가 시켜보겟습니다. 만약 카메라맨을 회전시키다보면 회전축이 뒤틀려서 W의 값이 이상하게 들어가는 현상을 보시게 되실겁니다. 그것을 방지하기위해 회전 전용 Axis를 추가하였습니다. 이곳에 Script를 추가하여보겠습니다. 마우스 오른쪽 값을 입력받으면 위와같이 세팅합니다. Invert는 사람에따라 위아래 성향이 다르기때문에 설정할수있게 해줍니다. 그리고 카메라의 최대 ,최소 각도를 구해줍니다.Mathf.Clamp를 통해서. 커터니언.. 더보기
아이템 먹기 RPG에서 필수인 이동하여 Item먹기를 구현해보겠습니다. 먼저 Item을 임시로 만들어 줍니다. 그리고 Item Script도 만들어 줍니다. 일단 스크립은 이렇게. 만약 앞에서 배운대로 Full Memory방식을 사용했다면. 비활성화만 시켜줘도 됩니다. 그리고 GameManager에서 코드를 짜줍니다. Transform형 Item을 하나 만들어줍니다. 기존거와 동일하나 Raycase로 구분해줘야될께 하나더 늘어서 switch문을 사용하였습니다. 개인적으로 if문보다 종류를 나룰때 switch 문을 선호하기때문에..if문으로 구분지으셔도 상관없습니다. 여기서 추가된것은 이동할때 나타나는 Point막대기가 처음에 renderer가 false로 되어있다가 클릭하면 true로 다시 근처에가면 false로 나.. 더보기
캐릭터 이동 이제 캐릭터 이동을 해보겠습니다. 캐릭터는......Unity국민 캐릭 Archu짱으로 ~~ 기존 Player에 Archu짱을 링크시킵니다. 그리고 나서 이동이나 State값은 모두 Player에서 제어하게 구현해보겠습니다. 링크를 걸고난다음 스크립을 짜보겠습니다. 기존Player스크립에 약간의 수정을.~~ 먼저 Archu짱의 상태를 나타낼 string형의 state를 하나 만듭니다. 기본값은 당연히 STAND겠죠. 그리고 애니메이션을 구현할 Animation형 RenderAni도 만들어줍니다. RenderAni는 Archo짱을 넣어줍니다. 기본 Update에서 돌아가던 이동관련은 PointTracking()에 빼주고난다음. Update에서 상태값을 계속 체크 합니다. STAND면 애니메이션 Idle를,.. 더보기
카메라 자연스럽게 움직이기. 일반 게임에서 카메라는 Player를 바로보고 따라다니는데. 따라다닐때 그냥 같은 속도로 따라가느냐 카메라의 속도에 변화를 주느냐는 느낌이 상당히 다르게 난다. 이번에는 카메라의 자연스러운 이동을 위해 약간의 팁~~ SmoothMove를 구현하겠습니다. 먼저 Empty를 하나 만들어서 Cameraman이라고 이름을 정하고 안에 카메라를 넣어줍니다. 그리고나서 좌표를 Player기준으로잡고 카메라 앵글을 잡아줍니다. 이런식으로~~ 그리고 CameraMan에 넣을 스크립 하나를 만들어주겠습니다. 간단합니다. Player를 닮아줄 Target을 하나만들고 SmothMove를 사용할지말지 Bool값을 하나 만들어줍니다. Update에서 SmothMove가 켜져있으면 카메라맨의 포지션을 타켓의 뱡향만큼 16등분해.. 더보기
RPG만들기 1-3 이동관련 이제 중력을 만들어 보겠습니다. Gravity........ 이것역시 Raycast를 이용하여 만들어보겠습니다. 방법은 자기자신의 Position보다 약간 높은 곳에어 Raycast를 쏴서 지표면과의 거리를 비교하여 떨어지게 하는 방법인데. 자기자신보다 약간 높은곳에서 Raycast를 쏘는 이유는 오르막길을 오를때 자기 자신의 중심이되는 Position이 땅속으로 내려가버릴경우 자신과의 비교대상이 없어지기때문에 약간 높은곳에서 쏩니다...빵.~~ 각 객체에 보면 Collider라는 녀석이 있죠.. 이거참 좋은 친구입니다. 필요없으면 끄고.필요하면 키고를 해서 함수구현에 도움을 주는 친구.. 그런친구.. 끄는 이유는 Raycast가 나에게 맞아 지표면과의 거리측정을 불가능하게 하기때문입니다. 터레인의 ta.. 더보기
RPG만들기 1-2 이동관련 앞에서 봤던 이동을 좀더 자연스럽게 만들어보겠습니다. Rigidbody를 사용하면 약간의 문제가 생깁니다. 쉽게 올라가야될부분도 스피드가 약하면 못올라가거나 절벽에서 떨어질때 어색함을 나타냅니다. 언덕도 쉽게 못올라가는 Player.. 떨어지는게 무서운 Player 그리고 위에서 보듯 Point 를 다른곳으로 찍을때 Player가 쳐다보는 방향이 휙휙...돌아버린다. 이러한점을 자연스럽게하기위해 Rotate와 Gravity를 직접 구현해 보겠습니다. 먼저 Gamemanager에 거리 측정을 위한 distance를 하나 만들어줍니다. 그리고 Targer이란것도 하나 만들어주겠습니다. 단순 Point로 이동을 하면 차후 NPC나 Item을 클릭할때 문제가 발생할수있으니 Target이란걸 하나 만들어주겠습니다.. 더보기
RPG만들기 1-1 이동관련 먼저 이동관련 스크립을 만들어 보겠습니다. 일단 터레인으로 작업할 것입니다. 기존의 이동방식에서 약간 바뀐방식으로 작업~~거거싱.~ 일단 터레인을 만들고 간단한 지형을 만든후 Player가 될 큐브와 이동할 포인트를 나타내줄 긴 큐브를 만듭니다. 마우스로 Point의 위치를 바꾸어 주고 그 Point의 위치에 따라서 큐브가 이동될수있게 제작하는 방법입니다. 먼저 게임을 컨트롤할 게임 매니저를 만들겠습니다. 먼저 Player와 Point 객체를 닮을 Transform을 선언해줍니다. 방식을 마우스를 찍은곳에 카메라에서부터 raycast를 쏩니다. 쏘고난 다음 그곳의 hit.Position 을 Point.Position에 넣어줍니다. 그러면 Point는 마우스를 찍은 곳으로 이동.. 다음으로 Player의 .. 더보기