플레이어가 화면의 왼쪽을 칠 때 플레이어가 왼쪽으로 이동하기를 원합니다. 바로 지금, 내 플레이어는 마우스 버튼을 누른 상태로 움직입니다. 내가 정말로 원하는 것은 화면을 한 번 누르면 목표 위치에 도달 할 때까지 왼쪽으로 계속 움직이는 것이다.강체를 부드럽게 유영합니다.
누군가이 문제가 발생하도록 내 코드에서 누락 된 부분을 알려주실 수 있습니까?
void FixedUpdate()
{
if(Input.GetMouseButtonDown(0))
{
if(Input.mousePosition.x < (Screen.width*2)/3 && Input.mousePosition.y > Screen.height/3)
{
if(position == middle)
{
MoveLeft();
}
}
}
}
void MoveLeft()
{
var pos = rigidbody.position;
float xPosition = left.transform.position.x;
pos.x = Mathf.Lerp(pos.x, xPosition, speed * Time.deltaTime);
rigidbody.position = pos;
}
내 플레이어는 강체를 실제 플레이어를 번역하는 것과 반대 방향으로 움직이기 때문에 FixedUpdate에 있습니다.
나는이 최대 LERP = 선형 보간을 지켜 볼 수밖에 없었습니다) –
을 그래. 하나의 오브젝트를 두 지점 사이에서 부드럽게 움직이는 것을 의미합니다. 구형 운동에서와 마찬가지로 구형 운동을하는 슬레 이프가 있기 때문에 궤도 등에서도 좋은 점이 있습니다. 그러나 여기에서 사용할 수있는 것은 아닙니다 : ( – N0xus
FixedUpdate()에서 메서드를 호출하는 경우 먼저 Time.fixedDeltaTime을 사용해야합니다 – DMaguireKane