본문 바로가기

Programming/Unity3D

아이템 먹기

RPG에서 필수인 이동하여 Item먹기를 구현해보겠습니다.

먼저 Item을 임시로 만들어 줍니다.

그리고 Item Script도 만들어 줍니다.

일단 스크립은 이렇게.

만약 앞에서 배운대로 Full Memory방식을 사용했다면.

비활성화만 시켜줘도 됩니다.

그리고 GameManager에서 코드를 짜줍니다.

Transform형 Item을 하나 만들어줍니다.

기존거와 동일하나 Raycase로 구분해줘야될께 하나더 늘어서 switch문을 사용하였습니다.

개인적으로 if문보다 종류를 나룰때 switch 문을 선호하기때문에..if문으로 구분지으셔도 상관없습니다.

여기서 추가된것은 이동할때 나타나는 Point막대기가 처음에  renderer가 false로 되어있다가 클릭하면 true로 다시 근처에가면 false로 나타나게 추가하였습니다.

그리고 TargetRest()이란 함수로 추가하였습니다.

리셋을 안시켜놓으면 캐릭터가 아이템을 먹고난 다음 그전 좌표로 돌아가버리는 상황이 발생합니다.

이동후에 그냥 TargetReset()을 SendMassage로 호출해주면 끝~~

그리고 조금 고생한 Player의 Script을 수정하겠습니다.

일단 Gravity()는 Update로 빼겠습니다.

명확히 구분지어주기위해 PointTracking()에서 뺐습니다.

PointTracking은 이동 관련만 관리하기위해..

Item 을 습득하면 아이템 삭제 함수를 Send해주고 포지션을 Point Position으로 돌려주고난다음 타겟 리셋~~끝

여기서 실행해보면 캐릭터가 아이템을  밣고 지나가면 하늘로 튀어 올라가버리는 현상이 발생합니다.

이유는 캐릭터에서 쏘는 Raycast가 Item.Collider에 반응하기때문에 좌표가 뒤틀려 버립니다.

해결을 위해서 Gravity함수로 수정하겠습니다.

하늘로 승천하는걸 막기위해서 Item을 밣고 지나가더라도 pos값에다가 Player의 포지션을 넣어주면 .....끝~~~~~~~

 

 

'Programming > Unity3D' 카테고리의 다른 글

카메라 땅꿀파기 현상 제어.  (0) 2015.03.02
카메라 회전  (0) 2015.03.01
캐릭터 이동  (0) 2015.02.27
카메라 자연스럽게 움직이기.  (0) 2015.02.27
RPG만들기 1-3 이동관련  (0) 2015.02.26