Utilizando el giroscopio Android en Unity3d, ¿cómo puedo configurar la rotación inicial de la cámara con la rotación inicial del dispositivo móvil?
Quiero usar el giroscopio Android para realizar el seguimiento de la cabeza en el controlador de primera persona estándar de Unity3d. He creado una secuencia de comandos corta que gira tanto el nodo padre como el nodo secundario de cámara del Controlador de primera persona. El guión se adjunta a la cámara.
Este script funciona muy bien, gira la vista en primera persona basada en los movimientos de mi dispositivo móvil. Sin embargo, sólo funciona cuando mantengo mi teléfono en una posición de futuro cuando inicio mi aplicación. Si mi teléfono se encuentra sobre la mesa y empiezo mi aplicación, tanto la cámara como las rotaciones del giroscopio están apagadas.
- ¿Cómo puede crear pantalla táctil android scroll en unity3d?
- MonoGame vs Unity3D
- Plugin de Android con Google Fitness API para Unity3D
- Thread priority security exception Asegúrese de que el apk está firmado
- ¿Requisitos mínimos para Unity para Android?
Quisiera que mi escritura respetara la rotación inicial del dispositivo. Cuando inicio mi aplicación y mi dispositivo tiene la pantalla hacia arriba, la cámara debe inicialmente también buscar. ¿Cómo puedo modificar mi script para establecer la rotación de la cámara a la rotación inicial del dispositivo móvil?
using UnityEngine; using System.Collections; // Activate head tracking using the gyroscope public class HeadTracking : MonoBehaviour { public GameObject player; // First Person Controller parent node public GameObject head; // First Person Controller camera // Use this for initialization void Start () { // Activate the gyroscope Input.gyro.enabled = true; } // Update is called once per frame void Update () { // Rotate the player and head using the gyroscope rotation rate player.transform.Rotate (0, -Input.gyro.rotationRateUnbiased.y, 0); head.transform.Rotate (-Input.gyro.rotationRateUnbiased.x, 0, Input.gyro.rotationRateUnbiased.z); } }
- C # en Android: Xamarin o Unidad?
- Unity frente a Android frente a la cámara WTF bug
- ¿Cómo obtener la lista de aplicaciones instaladas con Unity3D?
- Doloroso Unity proyecto de exportación a Android cada construcción (estoy haciendo algo mal)
- Android - Servicio de fondo de juego de Tamagotchi
- Problema con el desarrollo de GearVR después de exportar como Google Android Project
- Error de Play Store "Subiste un APK firmado con un certificado inseguro"
- Base de datos local Unity SQLite
Simplemente guarde la orientación inicial en dos variables, su código se convertirá en:
using UnityEngine; using System.Collections; // Activate head tracking using the gyroscope public class HeadTracking : MonoBehaviour { public GameObject player; // First Person Controller parent node public GameObject head; // First Person Controller camera // The initials orientation private int initialOrientationX; private int initialOrientationY; private int initialOrientationZ; // Use this for initialization void Start () { // Activate the gyroscope Input.gyro.enabled = true; // Save the firsts values initialOrientationX = Input.gyro.rotationRateUnbiased.x; initialOrientationY = Input.gyro.rotationRateUnbiased.y; initialOrientationZ = -Input.gyro.rotationRateUnbiased.z; } // Update is called once per frame void Update () { // Rotate the player and head using the gyroscope rotation rate player.transform.Rotate (0, initialOrientationY -Input.gyro.rotationRateUnbiased.y, 0); head.transform.Rotate (initialOrientationX -Input.gyro.rotationRateUnbiased.x, 0, initialOrientationZ + Input.gyro.rotationRateUnbiased.z); } }
- Tamaño de vista previa para el escáner de código de barras de la visión api
- Hacer que la imagen superpuesta sea transparente al tocar en Android?