Initialer Upload neues Unity-Projekt
This commit is contained in:
54
Assets/SteamVR/Scripts/SteamVR_Ears.cs
Normal file
54
Assets/SteamVR/Scripts/SteamVR_Ears.cs
Normal file
@ -0,0 +1,54 @@
|
||||
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
|
||||
//
|
||||
// Purpose: Handles aligning audio listener when using speakers.
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
using UnityEngine;
|
||||
using Valve.VR;
|
||||
|
||||
namespace Valve.VR
|
||||
{
|
||||
[RequireComponent(typeof(AudioListener))]
|
||||
public class SteamVR_Ears : MonoBehaviour
|
||||
{
|
||||
public SteamVR_Camera vrcam;
|
||||
|
||||
bool usingSpeakers;
|
||||
Quaternion offset;
|
||||
|
||||
private void OnNewPosesApplied()
|
||||
{
|
||||
var origin = vrcam.origin;
|
||||
var baseRotation = origin != null ? origin.rotation : Quaternion.identity;
|
||||
transform.rotation = baseRotation * offset;
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
usingSpeakers = false;
|
||||
|
||||
var settings = OpenVR.Settings;
|
||||
if (settings != null)
|
||||
{
|
||||
var error = EVRSettingsError.None;
|
||||
if (settings.GetBool(OpenVR.k_pch_SteamVR_Section, OpenVR.k_pch_SteamVR_UsingSpeakers_Bool, ref error))
|
||||
{
|
||||
usingSpeakers = true;
|
||||
|
||||
var yawOffset = settings.GetFloat(OpenVR.k_pch_SteamVR_Section, OpenVR.k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float, ref error);
|
||||
offset = Quaternion.Euler(0.0f, yawOffset, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
if (usingSpeakers)
|
||||
SteamVR_Events.NewPosesApplied.Listen(OnNewPosesApplied);
|
||||
}
|
||||
|
||||
void OnDisable()
|
||||
{
|
||||
if (usingSpeakers)
|
||||
SteamVR_Events.NewPosesApplied.Remove(OnNewPosesApplied);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user