https://www.youtube.com/watch?v=YAu4yWU5D5U&t=299s
2.키보드 입력 받기
Vector2 : 이차원 벡터
Input : 유니티에서 받는 모든 입력을 관리하는 클래스
Input.GetAxis("인수") : 유니티에 있는 Input Manager에서 인수로 등록된 입력을 물리적으로 받는다.
ex) Input.GetAxis("Horizontal") //수평, x축
C# 스크립트 드래그해서 하이어라이키의 플레이어에게 드랍해 적용
3. 물리 이동 방법
게임 오브젝트의 리지드바디 2D를 저장할 변수 선언하고 초기화하기
Rigidbody2D rigid;
void Awake()
{
rigid= GetComponent<Rigidbody2D>();
}
●GetComponent<T>()
▷오브젝트에서 컴포넌트를 가져오는 함수
▷T에 원하는 유니티 컴포넌트 작성
FixedUpdate : 물리 연산 프레임마다 호출되는 생명주기 함수
◆이동방식
1. 힘을 준다.
- rigid.AddForce(inputVec);
2. 속도 제어
- rigid.velocity = inputVec;
3. 위치 이동
▷단,위치 이동은rlgid바디의 위치에서 더해줘야한다.
rigid.MovePosition(rigid.position+ inputVec);
문제점 2가지
1. 대각선 이동을하면 더 빨리 가기 때문에 normalized를 해주어야 한다. (피타고라스 정리 이론, 루트2)
2. 프레임마다 이동거리가 다르다
1번 문제 해결방법
normalized : 벡터 값의 크기가 1이 되도록 좌표가 수정된 값
2번 문제 해결방법
Time.fixedDeltaTime : 물리 프레임 하나가 소비한 시간
Vector2 nextVec = inputVec.normalized * speed * Time.fixedDeltaTime;
rigid.MovePosition(rigid.position+ nextVec);
◆살짝 미끄러지는 보정을 없애는법
▷GetAxis를 GetAxisRaw로 수정
●GetAxisRaw
▷더욱 명확한 컨트롤 구현 가능
깃허브 올리기
First pull
https://github.com/mekain80/CloneCode_Undead_Survivor.git
'게임개발 > 언데드서바이벌_골드메탈_클론코딩' 카테고리의 다른 글
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 6 (오브젝트 풀링🏊으로 소환하기) (0) | 2023.04.09 |
---|---|
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 5 (몬스터🧟만들기) (0) | 2023.04.07 |
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 3 (2D 셀 애니메이션🏃제작하기) (0) | 2023.04.06 |
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 2+ (새로운 인풋시스템 적용하기, Input Manager ) (0) | 2023.04.06 |
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 1 (0) | 2023.04.04 |