https://www.youtube.com/watch?v=FwVdfCz5r2I&list=PLX2vGYjWbI0SUWwVPCERK88Qw8hpjEGd8&index=5
이 영상을 따라하면서
왜 x축 움직임이 안돼 시발? 하고 있었는데
private void FixedUpdate()
{
/.../
move = moveAlongGround * deltaMove.x;
Movement(move, false);
move = Vector2.up * deltaMove.y;
Movement(move, true);
}
Movement()
{
/../
rb.position = (rb.position + move.normalized * distance);
//rb.MovePosition = (rb.position + move.normalized * distance);
}
rb.Moveposition을 rb.position으로 바꾸니까 됐슴
영상에서도 rb.position으로 하고있었으니까 내 잘못인거같긴한데... 내가 배울때는 물리연산엔 MovePosition을 쓰는걸 권장한다는 말을 들어서 이게 맞는지 잘 모르겟슴
아무튼 돼서 좋긴함
근데 y축 움직임은 왜 된거지 그럼? 나중 메소드라 그런가?
MovePosition은 함수임. rb.MovePosition(위치벡터); 이렇게 하면 잘 움직일거요
언제부터 MovePosition이 프로퍼티인가 했네 애초에 rb.MovePosition = 이라고만 써도 오류 뜨지 않음?
ㅇㅇ 맞고 이미 수정한걸 비교용으로 넣으려고 쓴걸 잘못썼슴. 원래는 moveposition()
왜냐면 MovePosition()은 이동이 즉시 발생하는게 아니니까
한틱에 함수 두개터지면 늦게있는게 터지나? << 이게 궁금했음
ㄴㄴ 아님. MovePosition()은 받은 위치값을 즉시 position에 적용하는게 아니라 물리시뮬레이션 시점에 적용하니까 y축만 움직인거임
님은 MovePosition()을 2번 사용했잖음. '현재 위치' position로부터 x축 방향 이동하는데 한번 '현재 위치'로부터 y축 방향으로 이동하는데 한번
@김메가 무슨느낌인지 알겠다
@dd 님이 코드 짤 때 원했던건 이런거엿겟지 1. x축 방향으로 MovePosition()을 사용함 2. 현재 position의 값은 '원래위치+x이동값' 3. y축 방향으로 MovePosition()을 사용함 4. 현재 position의 값은 '원래위치+x이동값+y이동값' 5.결과 position의 값이 '원래위치+x이동값+y이동값'
@김메가 근데 실제로는 이렇다는거 1. x축 방향으로 MovePosition()을 사용함 2. position의 값이 '원래위치+x이동값'으로 변경될 '예정'임 3. y축 방향으로 MovePosition()을 사용함 4. position의 값이 '원래위치+y이동값'으로 변경될 '예정'임 5.물리 시뮬 직후 결과 position의 값은 '원래위치+y이동값'이 됨