1
Unity2D의 Physics2D 엔진에있는 중력이 다음 두 코드 행이 번갈아 실행될 때 왜 다른 동작을합니까? 다음Physics2D가 왜 속도에 대한 AddForce()에 대해 다른 결과를 생성합니까?
private float speed = 500f;
RigidBody2D playerChar = null;
그리고 내 캐릭터 도보 만들기 :
예를 들어, 내 플레이어 스프라이트에 플레이어 컨트롤러의 C# 스크립트를 첨부
Vector2 vec = new Vector2 (Input.GetAxis("Horizontal"), 0);
playerChar.AddForce(vec * speed);
을 그리고 중력이 설정되어 50
결과 1 : 내 캐릭터 아바타가 정상적으로 작동하지 않습니다.
한편 내가 할 때
Vector2 vec = new Vector2 (Input.GetAxis("Horizontal"), 0);
playerChar.velocity = (vec * speed);
그리고 중력은 여전히 결과 2
50 설정 : 내 캐릭터가 지금 가을에 시간이 오래 걸리는 (천천히 아래로 "수레") .
왜 그럴까요?
저는 단결력 개발자가 아니지만 속도를 추가하는 동안 힘을 가하면 가속도가 높아 지므로 추측 할 수 있습니다. 당신의 캐릭터가 떠돌아 다닌다는 말은 처음에는 느리게 떠 다니고 얼마나 빨리 뜨는 지 천천히 증가합니까? – FredMan
느린 속도로 부동합니다. AddForce()를 수행하면 속도가 느려집니다. – YourWorstNightmare