Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Gyroscope

класс в UnityEngine / Реализовано в: UnityEngine.InputLegacyModule

Описание

Интерфейс в гироскоп.

Используйте этот класс для доступа к гироскопу. Пример скрипта ниже показывает, как можно использовать класс Gyroscope для просмотра ориентации устройства в пространстве.

Базовые датчики, используемые для сбора данных:

Android: гравитация, линейное ускорение, вектор вращения. Дополнительная информация.

iOS: гироскоп, устройство-движение. Дополнительная информация.

// Создаем куб с именами векторов камер на гранях. // Разрешить устройству отображать именованные лица, когда оно ориентировано.

using UnityEngine;

public class ExampleScript : MonoBehaviour { // Грани для 6 сторон куба private GameObject[] quads = new GameObject[6];

// Textures for each quad, should be +X, +Y etc // с соответствующими цветами, красным, зеленым, синим и т. д. public Texture[] labels;

void Start() { // сделать камеру сплошным цветом и базироваться на исходной точке GetComponent<Camera>().backgroundColor = new Color(49.0f / 255.0f, 77.0f / 255.0f, 121.0f / 255.0f); GetComponent<Camera>().transform.position = new Vector3(0, 0, 0); GetComponent<Camera>().clearFlags = CameraClearFlags.SolidColor;

// create the six quads forming the sides of a cube GameObject quad = GameObject.CreatePrimitive(PrimitiveType.Quad);

quads[0] = createQuad(quad, new Vector3(1, 0, 0), new Vector3(0, 90, 0), "plus x", new Color(0.90f, 0.10f, 0.10f, 1), labels[0]); quads[1] = createQuad(quad, new Vector3(0, 1, 0), new Vector3(-90, 0, 0), "plus y", new Color(0.10f, 0.90f, 0.10f, 1), labels[1]); quads[2] = createQuad(quad, new Vector3(0, 0, 1), new Vector3(0, 0, 0), "plus z", new Color(0.10f, 0.10f, 0.90f, 1), labels[2]); quads[3] = createQuad(quad, new Vector3(-1, 0, 0), new Vector3(0, -90, 0), "neg x", new Color(0.90f, 0.50f, 0.50f, 1), labels[3]); quads[4] = createQuad(quad, new Vector3(0, -1, 0), new Vector3(90, 0, 0), "neg y", new Color(0.50f, 0.90f, 0.50f, 1), labels[4]); quads[5] = createQuad(quad, new Vector3(0, 0, -1), new Vector3(0, 180, 0), "neg z", new Color(0.50f, 0.50f, 0.90f, 1), labels[5]);

GameObject.Destroy(quad); }

// make a quad for one side of the cube GameObject createQuad(GameObject quad, Vector3 pos, Vector3 rot, string name, Color col, Texture t) { Quaternion quat = Quaternion.Euler(rot); GameObject GO = Instantiate(quad, pos, quat); GO.name = name; GO.GetComponent<Renderer>().material.color = col; GO.GetComponent<Renderer>().material.mainTexture = t; GO.transform.localScale += new Vector3(0.25f, 0.25f, 0.25f); return GO; }

protected void Update() { GyroModifyCamera(); }

protected void OnGUI() { GUI.skin.label.fontSize = Screen.width / 40;

GUILayout.Label("Orientation: " + Screen.orientation); GUILayout.Label("input.gyro.attitude: " + Input.gyro.attitude); GUILayout.Label("iphone width/font: " + Screen.width + " : " + GUI.skin.label.fontSize); }

/********************************************/

// The Gyroscope is right-handed. Unity is left handed. // Make the necessary change to the camera. void GyroModifyCamera() { transform.rotation = GyroToUnity(Input.gyro.attitude); }

private static Quaternion GyroToUnity(Quaternion q) { return new Quaternion(q.x, q.y, -q.z, -q.w); } }
Снимок экрана iOS, показывающий +Z, +Y и -X.

Свойства

attitude Возвращает положение (то есть ориентацию в пространстве) устройства.
enabled Устанавливает или получает включенный статус этого гироскопа.
gravity Возвращает вектор ускорения свободного падения, выраженный в системе отсчета устройства.
rotationRate Возвращает скорость вращения, измеренную гироскопом устройства.
rotationRateUnbiased Возвращает объективную скорость вращения, измеренную гироскопом устройства.
updateInterval Устанавливает или получает интервал гироскопа в секундах.
userAcceleration Возвращает ускорение, которое пользователь дает устройству.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3