/* * 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; using System.Collections.Generic; using UnityEngine; public class OVRSceneManagerScript : MonoBehaviour { public OVRSceneManager _sceneManager; public SimpleResizable _tablePrefab; public GameObject _cube; void Awake() { MarcsWebLogger.Log("SampleVirtualFrames::Awake()"); #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN || UNITY_ANDROID OVRManager.eyeFovPremultipliedAlphaModeEnabled = false; #endif _sceneManager.SceneModelLoadedSuccessfully += InitializeRoom; } void InitializeRoom() { MarcsWebLogger.Log("SampleVirtualFrames::InitializeRoom()"); OVRSceneAnchor[] sceneAnchors = FindObjectsOfType(); if (sceneAnchors != null) { for (int i = 0; i < sceneAnchors.Length; i++) { var randomNumber = UnityEngine.Random.Range(10000, 99999); OVRSceneAnchor instance = sceneAnchors[i]; OVRSemanticClassification classification = instance.GetComponent(); //MarcsWebLogger.Log($"{randomNumber} | is a {classification}"); if (classification.Contains(OVRSceneManager.Classification.Table)) { MarcsWebLogger.Log($"{randomNumber} | FOUND A Table"); try { SimpleResizer resizer = new SimpleResizer(); SimpleResizable prefab = _tablePrefab; Vector3 dimensions = instance.transform.GetChild(0).localScale; if (prefab.GetComponent()) { dimensions += prefab.GetComponent().dimensionPadding; } resizer.CreateResizedObject(dimensions, sceneAnchors[i].gameObject, prefab); MarcsWebLogger.Log($"{randomNumber} | {dimensions}"); // now place the cubes Instantiate(_cube, sceneAnchors[i].gameObject.transform.position + new Vector3(0, 0, 0.3f), Quaternion.Euler(0, 90, 0)); } catch (Exception e) { MarcsWebLogger.Log($"{randomNumber} | Error: {e.Message}"); } MarcsWebLogger.Log($"{randomNumber} | PLACED A Table"); } /* if (classification.Contains(OVRSceneManager.Classification.WallFace)) { var randomNumber = UnityEngine.Random.Range(10000, 99999); MarcsWebLogger.Log($"{randomNumber} | FOUND A WALL"); try { SimpleResizer resizer = new SimpleResizer(); SimpleResizable prefab = _wallPrefab; Vector3 dimensions = instance.transform.GetChild(0).localScale; if (prefab.GetComponent()) { dimensions += prefab.GetComponent().dimensionPadding; } resizer.CreateResizedObject(dimensions, sceneAnchors[i].gameObject, prefab); } catch (Exception e) { MarcsWebLogger.Log($"{randomNumber} | Error: {e.Message}"); } MarcsWebLogger.Log($"{randomNumber} | PLACED A WALL"); //i = 99999; } */ } } else { MarcsWebLogger.Log("NO ANCHORS FOUND. "); } } }