유니티 2D 게임 제작 2단계

(SLIDE TO CIRCLE)


#공의 점프




공의 점프는 버튼을 눌렀을 때, 

0.6초동안 중력 벡터를 반대로 설정하고 

0.6초 후에 다시 원래 대로 돌려 놓으면 자연스럽게 진행될 것입니다. 





빨간색 공의 Red_GM 스크립트에서 해결할 것입니다!





UI에서 Button을 생성하였고 Source Image에 png파일을 넣었습니다. 그리고 on click에 버튼 함수가 들어있는 스크립트인 Red_GM을 가지고 있는 오브젝트인 빨간색 공을 연결하고 오른쪽에 Red_Button함수를 연결시켜줍니다.





1. Red_Button()함수를 사용해 버튼이 눌리면 Red_Button_Constant에 1를 대입합니다.


2. if문에서 Red_Button_Constant를 체크하여 버튼이 눌린지 검사하고 눌렸다면 Jump_Time동안 Gravity_Vector에 -1.2를 곱한 값을 저장합니다. 즉 반대방향의 힘을 주기 위함입니다. 


3. else if문에서 1초가 지나면 버튼을 리셋시키고 Speed_Vector값을 -0.3f 해줍니다. 


4. else문을 통해서 버튼이 눌리지 않았을 때 Gravity_Vector을 유지시켜줍니다.


간단하게 정리하자면, 

점프를 구현하기 위해 버튼 함수를 만들고, 버튼이 눌리면 점프를 구현합니다.

점프는 일정시간 동안 Gravity_Vector에 -1.2f를 곱한 것으로 구현하고 시간이 지나면 원상태로 되돌립니다.


사실 점프를 이렇게 구현을 해보았는데, 

0.6초의 점프시간이라던지, -1.2라던지 약간 직관으로 계산을 해버려서 점프가 자연스럽지 못합니다.

이부분은 계속 테스트 해보면서 수정할 계획입니다. 

0.6초보단 0.4초가 더 낫다. -1.2보다 -1.4가 더 자연스럽다.

이런식으로요!




https://play.google.com/store/apps/details?id=com.PaLab.STC

+ Recent posts