2017-12-20 23 views
0
내가 연합 가속 입력을 가진 객체를 이동하려는

: 사용하지 않고Unity3D input.acceleration

if (...) 
transform.translate(vector2.right*speed); 
else if (...) 
transform.translate(vector2.left*speed); 

나는 조건이

+2

개체를 오른쪽으로 이동하려면 무엇이 필요합니까? 당신의 물건을 왼쪽으로 움직이게 할 것인가? 이 질문들에 대한 답은 귀하의 조건이 될 것입니다. – ryeMoss

답변

2

잘해야 모르겠어요, 당신은 기술적으로이 운동을 달성 할 수있다 전혀 조건. 간단히 Update() 또는 FixedUpdate() (FixedUpdate() 권장)에 이런 식으로 넣으십시오.

Vector2 dir = Vector2.zero; 
void FixedUpdate() 
{ 
    dir.x = Input.acceleration.x; 
    transform.translate(dir * speed * Time.deltaTime); 
} 

휴대 전화가 표면에 평평하게 배치 될 때이 오른쪽으로 기울어 진 경우 Input.acceleration.x가 0이기 때문에, 값이 긍정적 인 것입니다. 왼쪽으로 기울이면 값은 음수가됩니다. 따라서 조건부를 벗어나게됩니다.

+1

Input.GetAxis ("Horizontal")가 사용될지라도 조건을 추가 할 필요가 없다고 덧붙이고 싶습니다. –

+0

매우 사실! 가능한 한 많이 움직이는 논리의 조건을 피하려고합니다. 왜냐하면 일이 고르지 않게 만드는 경향이 있기 때문입니다. –

+0

Brandon에게 감사드립니다. 봐, 내 캐릭터에는 2 가지 수업이있다. 일등석에서는, 나는 충돌 입력 (캐릭터도 중력을 가짐)에 강제로 추가하여 캐릭터를 점프하게 만들고, 두 번째는 가속으로 좌우로 움직이게하고 싶습니다. 나는 당신이 말한 것을했으나 캐릭터는 1 또는 2 점프 후 점프를 멈 춥니 다. 어떤 아이디어입니까? –