자석 입력을 올바르게 읽을 수 있다고 가정합니다. 이것은 FPS 스타일 컨트롤러 스크립트를 작성한 방법입니다.
- Unity5에서는 자산 패키지 표준 자산/문자를 가져옵니다.
- 해당 패키지에서 RigidBodyFPSController.prefab의 인스턴스를 만듭니다.
- 자식 개체 "MainCamera"를 제거하십시오.
- Google cardboard unitypackage을 가져 오십시오.
- 3 단계에서 제거한 "MainCamera"를 CardboardMain.Parefab로 바꿉니다.
- 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)
{
if (IsMoving) //IsMoving is the flag for forward movement. This is the bool that would be toggled by a click of the Google cardboard magnet
{
input = new Vector2(0, 1); // go straight forward by setting positive Vertical
}
}
movementSettings.UpdateDesiredTargetSpeed(input);
return input;
}
구글의 SDK에서만 지원의 자석을 검출하기 "를 클릭하십시오." 앞으로 나아갈 방향으로 자석을 누르고 싶다면 Unity3D Asset Store에서
Cardboard Controls+을 사용하는 것이 좋습니다. GitHub의에
사용자 CaseyB 객체에이 스크립트 유니티의 이벤트 시스템 - https://github.com/CaseyB/UnityCardboardTrigger/tree/develop 를 사용하여 이것에 대한 유틸리티를 게시, 이벤트 OnCardboardTrigger은()에 실행됩니다 버튼을 눌렀을 때 같은 물체에 붙어있는 다른 문양들 – Agumander
안녕하세요 아가 맨더, 당신의 반응에 감사드립니다! :) 스크립트를 FirstPersonController에 넣으면 컨트롤러를 움직이게하려면 어떻게해야합니까? –
스크립트에'OnCardboardTrigger()'라는 함수를 넣으십시오.이 함수 안에는 동작 제어가 있습니다. 내가 말할 수있는 한,이 함수는 버튼이있는 모든 프레임에서 작동 제어가 'transform.position + = transform.forward * Time.deltaTime * speed;'처럼 간단 할 수 있도록 실행합니다. – Agumander