2012-10-31 3 views

답변

1

간단한 방법은 축마다 플레이어의 위치를 ​​매시간 고정 값으로 설정하는 것입니다. 그를 X 축에 고정시키고 싶으므로 폰이 Y 축을 따라 움직이지 않도록해야합니다.

사용자 정의하는 PlayerController 사용하는 경우 : 당신이 X 축에 고정 바로 플레이어의 폰보다 더 원하는 경우 또는

class MyPlayerController extends PlayerController; 

simulated event Tick (float deltaTime) 
{ 
    local vector snappedLocation; 

    Super.Tick(deltaTime); 

    if (Pawn != none) 
    { 
     snappedLocation = Pawn.Location; 
     snappedLocation.Y = 0.0; 
     Pawn.SetLocation(snappedLocation); 
    } 
} 

을, 당신은 수 (너무 X 축에 고정 원수를 원한다고) 폰 하나 개 이상의 서브 클래스에서 구현 :

class MyPawn extends Pawn; 

simulated event Tick (float deltaTime) 
{ 
    local vector snappedLocation; 

    Super.Tick(deltaTime); 

    snappedLocation = Location; 
    snappedLocation.Y = 0.0; 
    SetLocation(snappedLocation); 
} 

는하지만 뭘 하려는지에 따라, 플레이어는 여전히 설정할 수 있기 때문에이 방법으로 문제가 실행할 수 있으며, 자신의 VelocityAcceleration 벡터하지 않을 수 있습니다 엄밀히 X 축을 따라 가리 킵니다. PlayerInput 클래스를 확장하여 방향 전환을 비활성화하고 aTurn을 항상 PlayerInput 이벤트에서 0으로 설정할 수 있습니다. 좀 더 강력한 솔루션은 PlayerController에서 좀 더 수학을 직접하고 폰의 속도와 가속도가 X 축을 따라야한다는 것입니다. 가속을 변경하여 Pawn의 동작을 제어하는 ​​데 PlayerController를 사용하는 방법에 대한 예제는 PlayerController의 PlayerWalking 상태에있는 PlayerMove 함수를 확인하십시오.

관련 문제