점프구현하기

<현재>

 

(수정 전)

(수정 후)

 

 

위 그림처럼 캐릭터가 타겟을 노란색 테두리를 착지 지점으로 계산하여 점프하는 구현하였다.

캐릭터가 중앙지점을 가장 높은 위치를 지난 후 밑으로 떨어질 때 속도가 빨라져야 더 자연스러운 점프모션이 될 것같다. 

 

 

점프기능은 여러가지 방법이 있겠지만 DoTween을 사용했다.

스크립트를 살펴보자

Transform stpos; //플레이어 위치

Transform endpos; // 스킬발동 위치

Rigidbody Prb; //플레이어 Rigidbody

public void Jumpping()

{

Vector3 hpos = stpos.position + ((endpos.position - stpos.position) / 2);

 

Vector3[] Jumppath ={new Vector3(stpos.position.x,stpos.position.y,stpos.position.z),

new Vector3(hpos.x,hpos.y+3f,hpos.z),

new Vector3(endpos.position.x,endpos.position.y,endpos.position.z) };

Prb.DOPath(Jumppath, 2, PathType.CatmullRom, PathMode.Full3D); //점프구간

 

}

중간백터

Vector3 hpos = stpos.position + ((endpos.position - stpos.position) / 2);

hpos는 캐릭터에 움직일 path경로중 시작백터와 종료백터의 중간 백터가 된다.

 

path경로 설정

Vector3[] Jumppath ={new Vector3(stpos.position.x,stpos.position.y,stpos.position.z),

 new Vector3(hpos.x,hpos.y+3f,hpos.z),

 new Vector3(endpos.position.x,endpos.position.y,endpos.position.z) };

캐릭터가 지나갈 경로를 배열로 받는다. 시작백터그리고, 중간백터, 끝백터를 차례로 넣어준다. 

여기서 중간백터의 y값은 캐릭터가 얼마만큼 점프할 것인가를 +해주면 된다.

 

점프동작부분

Prb.DOPath(Jumppath, 2, PathType.CatmullRom, PathMode.Full3D);

마지막으로 실제 점프가 이루어지는 DOpath인데 Dotween은 캐릭터의 리지드바디로 움직일 캐릭터를 설정해주고, 계산한 점프경로 백터 배열, path이동 타입을 설정해준다. 

 

여기서 추가 업그레이드 해야 할 부분은 거리에 따른 점프시간(공중에 떠 있는 시간) 플레이어의 위치에서 점프하려는 거리에 맞게 점프시간을 설정하도록 할 것이다.  

 

 

 

 

반응형

스테미너 효과 UI 



내가 제작하고 있는 게임은 공격액션을 한번 취할때마다 한칸의 스테미너를 소모한다 

위 그림에서 알수 있듯이 연속적으로 3번 사용가능하고 시간이 지나면 다시 공격을 할 수 있도록 스테미너가 채워진다.

삼 등분으로 나누어 회색게이지가 한 칸찰 때마다 주황색 게이지가 채워지는 형태로 스테미너 HudBar를 구현했다.


필요한 이미지

이미지는 총4개 

1) 아무것도 채워지지 않은 상태를 표시하기 위한 배경

2) 점점채워지는 회색게이지바

3) 한칸씩 채워질 주황색 게이지바

4) 명확한 표시를 위한 3칸 나눔선


회색 게이지바는 시간초로 계산하여 매초마다 계속해서 증가시켜주고 

주황색게이지바는 2초의 한 1칸씩 6초후에 3칸이 된다. (maxguage는 6초)

이미지 위치를 다르게 놓고 보면 좀 더 명확하게 볼 수 있다.

반응형

스테미너 부족 시 떨림 효과




현재 제작하고 있는 게임은 스테미너가 없으면 공격을 못하는 방식이다. 그런 방식때문에 스테미너 부족상태를 명확하게 전달 할 필요가 있다즉 공격불가라는 표현을 텍스트대신 스테미너Bar가  좌우로 흔들리고 빨간색으로 변하도록 표현했다.


좌우 떨림효과

여러가지 표현방법이 있게지만 나는 DOTween을 이용했다.

DOTween을 이용하여 스테미너Bar가 전체를 좌우로 흔들리 도록 해주었다.


빨간색 알파 효과 

기존이미지의 색상을 빨간색으로 바꾸는것보단 미리 빨간색 이미지를 같은 사이즈로 만들어 놓는다.

알파 값을 0으로 놓고 평사시에는 안보이도록 숨겨놓는다. 


그리고 스테미너 부족상황이 오면 이 이미지의 알파값을 DOFade로 조절한다. 

반응형

+ Recent posts