Added VR libraries

This commit is contained in:
Chris Midkiff
2018-10-08 23:54:11 -04:00
parent d9eb2a9763
commit 7ce1036e39
1037 changed files with 195630 additions and 348 deletions

View File

@@ -0,0 +1,61 @@
// Copyright 2016 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// 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.
namespace GoogleVR.Demos {
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(DemoInputManager))]
public class DemoInputManagerEditor : Editor {
SerializedProperty emulatedPlatformTypeProp;
SerializedProperty gvrControllerMainProp;
SerializedProperty gvrControllerPointerProp;
SerializedProperty gvrReticlePointerProp;
void OnEnable () {
gvrControllerMainProp =
serializedObject.FindProperty(DemoInputManager.CONTROLLER_MAIN_PROP_NAME);
gvrControllerPointerProp =
serializedObject.FindProperty(DemoInputManager.CONTROLLER_POINTER_PROP_NAME);
gvrReticlePointerProp =
serializedObject.FindProperty(DemoInputManager.RETICLE_POINTER_PROP_NAME);
emulatedPlatformTypeProp =
serializedObject.FindProperty(DemoInputManager.EMULATED_PLATFORM_PROP_NAME);
}
public override void OnInspectorGUI() {
serializedObject.Update();
// Add clickable script field, as would have been provided by DrawDefaultInspector()
MonoScript script = MonoScript.FromMonoBehaviour (target as MonoBehaviour);
EditorGUI.BeginDisabledGroup (true);
EditorGUILayout.ObjectField ("Script", script, typeof(MonoScript), false);
EditorGUI.EndDisabledGroup ();
EditorGUILayout.PropertyField(gvrControllerMainProp);
EditorGUILayout.PropertyField(gvrControllerPointerProp, true);
EditorGUILayout.PropertyField(gvrReticlePointerProp);
if (DemoInputManager.playerSettingsHasCardboard() ==
DemoInputManager.playerSettingsHasDaydream()) {
// Show the platform emulation dropdown only if both or neither VR SDK selected in
// Player Settings > Virtual Reality supported,
EditorGUILayout.PropertyField(emulatedPlatformTypeProp);
}
serializedObject.ApplyModifiedProperties();
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 509a29025635b4c31bb337addea72a7c
timeCreated: 1479318538
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,160 @@
// Copyright 2017 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0(the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// 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.
// Only invoke custom build processor when building for Android.
#if UNITY_ANDROID
namespace GoogleVR.Demos
{
using System;
using UnityEditor;
using UnityEditor.Build;
using UnityEditorInternal.VR;
#if UNITY_2018_1_OR_NEWER
using UnityEditor.Build.Reporting;
#endif
#if UNITY_2018_1_OR_NEWER
class PermissionsDemoBuildProcessor : IPreprocessBuildWithReport, IPostprocessBuildWithReport
#else
class PermissionsDemoBuildProcessor : IPreprocessBuild, IPostprocessBuild
#endif
{
private const string SCENE_NAME_PERMISSIONS_DEMO = "PermissionsDemo";
private bool m_cardboardAddedFromCode = false;
public int callbackOrder
{
get { return 0; }
}
#if UNITY_2018_1_OR_NEWER
public void OnPreprocessBuild(BuildReport report)
{
OnPreprocessBuild(report.summary.platform, report.summary.outputPath);
}
#endif
// OnPreprocessBuild() is called right before the build process begins. If it
// detects that the first enabled scene in the build arrays is the PermissionsDemo,
// and Daydream is in the VR SDKs, it will add Cardboard to the VR SDKs. Because
// the PermissionsDemo needs a perm statement in the Manifest while other demos don't.
// Adding Cardboard to VR SDKs will merge in the Manifest-Cardboard which has perm
// statement in it.
public void OnPreprocessBuild(BuildTarget target, string path)
{
m_cardboardAddedFromCode = false;
string[] androidVrSDKs = VREditor.GetVREnabledDevicesOnTargetGroup(BuildTargetGroup.Android);
EditorBuildSettingsScene[] scenes = EditorBuildSettings.scenes;
// See if PermissionsDemo is the first enabled scene in the array of scenes to build.
for (int i = 0; i < scenes.Length; i++)
{
if (scenes[i].path.Contains(SCENE_NAME_PERMISSIONS_DEMO))
{
if (!scenes[i].enabled)
{
return;
}
else
{
break;
}
}
else
{
if (scenes[i].enabled)
{
return;
}
}
}
bool hasCardboard = Array.Exists<string>(androidVrSDKs,
element => element.Equals(GvrSettings.VR_SDK_CARDBOARD));
if (hasCardboard)
{
return;
}
bool hasDaydream = Array.Exists<string>(androidVrSDKs,
element => element.Equals(GvrSettings.VR_SDK_DAYDREAM));
if (!hasDaydream)
{
return;
}
string[] androidVrSDKsAppended = new string[androidVrSDKs.Length+1];
for (int i = 0; i < androidVrSDKs.Length; i++)
{
androidVrSDKsAppended[i] = androidVrSDKs[i];
}
androidVrSDKsAppended[androidVrSDKsAppended.Length - 1] = GvrSettings.VR_SDK_CARDBOARD;
VREditor.SetVREnabledOnTargetGroup(
BuildTargetGroup.Android, true);
VREditor.SetVREnabledDevicesOnTargetGroup(
BuildTargetGroup.Android,
androidVrSDKsAppended);
m_cardboardAddedFromCode = true;
}
#if UNITY_2018_1_OR_NEWER
public void OnPostprocessBuild(BuildReport report)
{
OnPostprocessBuild(report.summary.platform, report.summary.outputPath);
}
#endif
// OnPostprocessBuild() is called after the build process. It does appropriate cleanup
// so that this script only affects build process for PermissionsDemo, not others.
public void OnPostprocessBuild(BuildTarget target, string path)
{
if (!m_cardboardAddedFromCode)
return;
string[] androidVrSDKs = VREditor.GetVREnabledDevicesOnTargetGroup(BuildTargetGroup.Android);
// The enabled devices are modified somehow, which shouldn't happen. Abort the post build process.
if (androidVrSDKs.Length == 0 || androidVrSDKs[androidVrSDKs.Length - 1] != GvrSettings.VR_SDK_CARDBOARD)
{
return;
}
string[] androidVrSDKsShortened = new string[androidVrSDKs.Length - 1];
for (int i = 0; i < androidVrSDKsShortened.Length; i++)
{
androidVrSDKsShortened[i] = androidVrSDKs[i];
}
VREditor.SetVREnabledOnTargetGroup(
BuildTargetGroup.Android, true);
VREditor.SetVREnabledDevicesOnTargetGroup(
BuildTargetGroup.Android,
androidVrSDKsShortened);
m_cardboardAddedFromCode = false;
}
}
}
#endif // UNITY_ANDROID

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b7c28afb12456b7469919c6a64cee9c1
timeCreated: 1493333870
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: