2014-11-25 1 views
0

Unity에서 Google Cardboard 용 게임을 만들고 유니티에서 First Person Controller 개체를 사용하고 있습니다. 화살표 키를 사용하면 문제가 없지만 Google 골판지에 입력 할 방법이 없기 때문에 자동으로 앞으로 실행되도록하고 싶습니다.자동으로 퍼스트 퍼스널 컨트롤러를 앞으로 돌리십시오.

현재 화합을 사용하는 데 경험이 거의 없지만 이것이 내가하고 싶은 것을 알고 있습니다. 객체에 첨부 된 스크립트를 수정해야합니까?

감사

+0

나는 거의 아무것도 시도하지 않았지만, 스크립트를 통해 읽고 어떻게 작동하는지 이해하려고 노력했지만 실제 입력이 어디서 왔는지 파악할 수는 없습니다. 마치 내가 Up 키를 영구적으로 눌러야하는 것처럼 말입니다. –

+2

찾으려는 파일은 * FPSInputController.js *입니다. * Input.GetAxis ("Vertical") *를 검색하십시오. * 1 *로 교체하십시오. – Agumander

+0

고마워, 정확히 내가 원했던거야. –

답변

3

여기에 나는 또한 당신이 당신의 남자는 항상 전진 원하기 때문에 당신이 "사실"과 "IsMoving"를 대체 할 수있다 Magnet script for UNITY 3D

유일한 차이점에 사용되는 응답의 사본입니다. 나는 다른 답변에서 if 블록을 제거함으로써 여기에 대체했습니다.

  1. 유니티 5에서는 자산 패키지 표준 자산/문자를 가져옵니다.
  2. 해당 패키지에서 RigidBodyFPSController.prefab의 인스턴스를 만듭니다.
  3. 자식 개체 "MainCamera"를 제거하십시오.
  4. Google cardboard unitypackage을 가져 오십시오.
  5. 3 단계에서 제거한 "MainCamera"를 CardboardMain.Parefab로 바꿉니다.
  6. RigidbodyFirstPersonController.cs GetInput() 메서드의 복사본을 업데이트하거나 수정하십시오.

getInput에() 앞으로 구글 판지 이동 대체와 :

private Vector2 GetInput() 
{ 
    Vector2 input = new Vector2 
    { 
     x = Input.GetAxis("Horizontal"), 
     y = Input.GetAxis("Vertical") 
    }; 

    // If GetAxis are empty, try alternate input methods. 
    if (Math.Abs(input.x) + Math.Abs(input.y) < 2 * float.Epsilon) 
    { 
     input = new Vector2(0, 1); // go straight forward by setting positive Vertical 
    } 
    movementSettings.UpdateDesiredTargetSpeed(input); 
    return input; 
} 

구글의 SDK에서만 지원의 자석을 검출하기 "를 클릭하십시오." 앞으로 나아갈 방향으로 자석을 누르고 싶다면 Unity3D Asset Store에서 Cardboard Controls+을 사용하는 것이 좋습니다.