1
0
mirror of https://github.com/xiaopeng12138/MaiDXR.git synced 2024-12-19 04:15:53 +01:00
MaiDXR/Assets/Oculus/VR/Scripts/OVRRuntimeSettings.cs
2022-08-20 21:35:57 +02:00

92 lines
3.0 KiB
C#

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* Licensed under the Oculus SDK License Agreement (the "License");
* you may not use the Oculus SDK except in compliance with the License,
* which is provided at the time of installation or download, or which
* otherwise accompanies this software in either electronic or hard copy form.
*
* You may obtain a copy of the License at
*
* https://developer.oculus.com/licenses/oculussdk/
*
* Unless required by applicable law or agreed to in writing, the Oculus SDK
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System;
public class OVRRuntimeSettings : ScriptableObject
{
public OVRManager.ColorSpace colorSpace = OVRManager.ColorSpace.Rift_CV1;
#if UNITY_EDITOR
private static string GetOculusRuntimeSettingsAssetPath()
{
string resourcesPath = Path.Combine(Application.dataPath, "Resources");
if (!Directory.Exists(resourcesPath))
{
Directory.CreateDirectory(resourcesPath);
}
string settingsAssetPath = Path.GetFullPath(Path.Combine(resourcesPath, "OculusRuntimeSettings.asset"));
Uri configUri = new Uri(settingsAssetPath);
Uri projectUri = new Uri(Application.dataPath);
Uri relativeUri = projectUri.MakeRelativeUri(configUri);
return relativeUri.ToString();
}
public static void CommitRuntimeSettings(OVRRuntimeSettings runtimeSettings)
{
string runtimeSettingsAssetPath = GetOculusRuntimeSettingsAssetPath();
if (AssetDatabase.GetAssetPath(runtimeSettings) != runtimeSettingsAssetPath)
{
Debug.LogWarningFormat("The asset path of RuntimeSettings is wrong. Expect {0}, get {1}", runtimeSettingsAssetPath, AssetDatabase.GetAssetPath(runtimeSettings));
}
EditorUtility.SetDirty(runtimeSettings);
}
#endif
public static OVRRuntimeSettings GetRuntimeSettings()
{
OVRRuntimeSettings settings = null;
#if UNITY_EDITOR
string oculusRuntimeSettingsAssetPath = GetOculusRuntimeSettingsAssetPath();
try
{
settings = AssetDatabase.LoadAssetAtPath(oculusRuntimeSettingsAssetPath, typeof(OVRRuntimeSettings)) as OVRRuntimeSettings;
}
catch (System.Exception e)
{
Debug.LogWarningFormat("Unable to load RuntimeSettings from {0}, error {1}", oculusRuntimeSettingsAssetPath, e.Message);
}
if (settings == null && !BuildPipeline.isBuildingPlayer)
{
settings = ScriptableObject.CreateInstance<OVRRuntimeSettings>();
AssetDatabase.CreateAsset(settings, oculusRuntimeSettingsAssetPath);
}
#else
settings = Resources.Load<OVRRuntimeSettings>("OculusRuntimeSettings");
if (settings == null)
{
Debug.LogWarning("Failed to load runtime settings. Using default runtime settings instead.");
settings = ScriptableObject.CreateInstance<OVRRuntimeSettings>();
}
#endif
return settings;
}
}