diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..1060b044c1698318da3fa239de25feef821255f8 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,56 @@ +{ + "files.exclude": + { + "**/.DS_Store":true, + "**/.git":true, + "**/.gitignore":true, + "**/.gitmodules":true, + "**/*.booproj":true, + "**/*.pidb":true, + "**/*.suo":true, + "**/*.user":true, + "**/*.userprefs":true, + "**/*.unityproj":true, + "**/*.dll":true, + "**/*.exe":true, + "**/*.pdf":true, + "**/*.mid":true, + "**/*.midi":true, + "**/*.wav":true, + "**/*.gif":true, + "**/*.ico":true, + "**/*.jpg":true, + "**/*.jpeg":true, + "**/*.png":true, + "**/*.psd":true, + "**/*.tga":true, + "**/*.tif":true, + "**/*.tiff":true, + "**/*.3ds":true, + "**/*.3DS":true, + "**/*.fbx":true, + "**/*.FBX":true, + "**/*.lxo":true, + "**/*.LXO":true, + "**/*.ma":true, + "**/*.MA":true, + "**/*.obj":true, + "**/*.OBJ":true, + "**/*.asset":true, + "**/*.cubemap":true, + "**/*.flare":true, + "**/*.mat":true, + "**/*.meta":true, + "**/*.prefab":true, + "**/*.unity":true, + "build/":true, + "Build/":true, + "Library/":true, + "library/":true, + "obj/":true, + "Obj/":true, + "ProjectSettings/":true, + "temp/":true, + "Temp/":true + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin.meta b/Assets/HTC.UnityPlugin.meta new file mode 100644 index 0000000000000000000000000000000000000000..a2d14d76fcca7a5c648b561f840af66568c8bfdc --- /dev/null +++ b/Assets/HTC.UnityPlugin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fcbd923bb6da1e4f8bdec35387499d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ColliderEvent.meta b/Assets/HTC.UnityPlugin/ColliderEvent.meta new file mode 100644 index 0000000000000000000000000000000000000000..1610370e50f74587c38af7fb1d1d546b89cb5b58 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 401601f6f306d4d47b33ef519969a2d6 +folderAsset: yes +timeCreated: 1477384937 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..9273a31110490968355d6d36c6b43cd2de31aa77 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs @@ -0,0 +1,439 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.ColliderEvent +{ + public interface IColliderEventCaster + { + GameObject gameObject { get; } + Transform transform { get; } + MonoBehaviour monoBehaviour { get; } + + IIndexedSetReadOnly<Collider> enteredColliders { get; } + + Rigidbody rigid { get; } + } + + [RequireComponent(typeof(Rigidbody))] + public class ColliderEventCaster : MonoBehaviour, IColliderEventCaster + { + private static HashSet<int> s_gos = new HashSet<int>(); + + private bool isUpdating; + private bool isDisabled; + + private IndexedSet<Collider> stayingColliders = new IndexedSet<Collider>(); + private IndexedSet<GameObject> hoveredObjects = new IndexedSet<GameObject>(); + + private Rigidbody m_rigid; + private ColliderHoverEventData hoverEventData; + + protected readonly List<ColliderButtonEventData> buttonEventDataList = new List<ColliderButtonEventData>(); + protected readonly List<ColliderAxisEventData> axisEventDataList = new List<ColliderAxisEventData>(); + + private List<GameObject> hoverEnterHandlers = new List<GameObject>(); + private List<GameObject> hoverExitHandlers = new List<GameObject>(); + + protected class ButtonHandlers + { + public List<GameObject> pressEnterHandlers = new List<GameObject>(); + public List<GameObject> pressExitHandlers = new List<GameObject>(); + public List<GameObject> pressDownHandlers = new List<GameObject>(); + public List<GameObject> pressUpHandlers = new List<GameObject>(); + public List<GameObject> clickHandlers = new List<GameObject>(); + public List<GameObject> dragStartHandlers = new List<GameObject>(); + public List<GameObject> dragFixedUpdateHandlers = new List<GameObject>(); + public List<GameObject> dragUpdateHandlers = new List<GameObject>(); + public List<GameObject> dragEndHandlers = new List<GameObject>(); + public List<GameObject> dropHandlers = new List<GameObject>(); + } + + protected class AxisHandlers + { + public List<GameObject> axisChangedHandlers = new List<GameObject>(); + } + + private List<ButtonHandlers> buttonEventHandlerList = new List<ButtonHandlers>(); + private List<AxisHandlers> axisEventHanderList = new List<AxisHandlers>(); + + public MonoBehaviour monoBehaviour + { + get { return this; } + } + + public Rigidbody rigid + { + get { return m_rigid ?? (m_rigid = GetComponent<Rigidbody>()); } + } + + public IIndexedSetReadOnly<Collider> enteredColliders + { + get { return stayingColliders.ReadOnly; } + } + + public ColliderHoverEventData HoverEventData + { + get { return hoverEventData ?? (hoverEventData = new ColliderHoverEventData(this)); } + protected set { hoverEventData = value; } + } + + private bool CannotHandlDragAnymore(GameObject handler) + { + return !ExecuteEvents.CanHandleEvent<IColliderEventDragStartHandler>(handler); + } + + protected virtual void OnEnable() + { + isDisabled = false; + } + + protected virtual void FixedUpdate() + { + isUpdating = true; + + // fixed dragging + for (int i = 0, imax = buttonEventDataList.Count; i < imax; ++i) + { + var eventData = buttonEventDataList[i]; + var handlers = GetButtonHandlers(i); + + eventData.draggingHandlers.RemoveAll(CannotHandlDragAnymore); + + if (!eventData.isPressed) { continue; } + + for (int j = eventData.draggingHandlers.Count - 1; j >= 0; --j) + { + handlers.dragFixedUpdateHandlers.Add(eventData.draggingHandlers[j]); + } + } + + ExecuteAllEvents(); + + if (isDisabled) + { + CleanUp(); + } + + stayingColliders.Clear(); + + isUpdating = false; + } + + protected virtual void OnTriggerStay(Collider other) + { + stayingColliders.AddUnique(other); + } + + protected virtual void Update() + { + isUpdating = true; + + // process enter + var hoveredObjectsPrev = hoveredObjects; + hoveredObjects = IndexedSetPool<GameObject>.Get(); + + for (int i = stayingColliders.Count - 1; i >= 0; --i) + { + var collider = stayingColliders[i]; + + if (collider == null) { continue; } + + // travel from collider's gameObject to its root + for (var tr = collider.transform; !ReferenceEquals(tr, null); tr = tr.parent) + { + var go = tr.gameObject; + + if (!hoveredObjects.AddUnique(go)) { break; } // hit traveled gameObject, break and travel from the next collider + + if (hoveredObjectsPrev.Remove(go)) { continue; } // gameObject already existed in last frame, no need to execute enter event + + hoverEnterHandlers.Add(go); + } + } + + // process leave + for (int i = hoveredObjectsPrev.Count - 1; i >= 0; --i) + { + hoverExitHandlers.Add(hoveredObjectsPrev[i]); + } + + IndexedSetPool<GameObject>.Release(hoveredObjectsPrev); + + // process button events + for (int i = 0, imax = buttonEventDataList.Count; i < imax; ++i) + { + var eventData = buttonEventDataList[i]; + var handlers = GetButtonHandlers(i); + + eventData.draggingHandlers.RemoveAll(CannotHandlDragAnymore); + + // process button press + if (!eventData.isPressed) + { + if (eventData.GetPress()) + { + ProcessPressDown(eventData, handlers); + ProcessPressing(eventData, handlers); + } + } + else + { + if (eventData.GetPress()) + { + ProcessPressing(eventData, handlers); + } + else + { + ProcessPressUp(eventData, handlers); + } + } + + // process pressed button enter/exit + if (eventData.isPressed) + { + var pressEnteredObjectsPrev = eventData.pressEnteredObjects; + eventData.pressEnteredObjects = IndexedSetPool<GameObject>.Get(); + + for (int j = hoveredObjects.Count - 1; j >= 0; --j) + { + eventData.pressEnteredObjects.Add(hoveredObjects[j]); + + if (pressEnteredObjectsPrev.Remove(hoveredObjects[j])) { continue; } // gameObject already existed in last frame, no need to execute enter event + + handlers.pressEnterHandlers.Add(hoveredObjects[j]); + } + + for (int j = pressEnteredObjectsPrev.Count - 1; j >= 0; --j) + { + eventData.clickingHandlers.Remove(pressEnteredObjectsPrev[j]); // remove the obj from clicking obj if it leaved + + handlers.pressExitHandlers.Add(pressEnteredObjectsPrev[j]); + } + + IndexedSetPool<GameObject>.Release(pressEnteredObjectsPrev); + } + else + { + for (int j = eventData.pressEnteredObjects.Count - 1; j >= 0; --j) + { + handlers.pressExitHandlers.Add(eventData.pressEnteredObjects[j]); + } + + eventData.pressEnteredObjects.Clear(); + } + } + + // process axis events + for (int i = 0, imax = axisEventDataList.Count; i < imax; ++i) + { + var eventData = axisEventDataList[i]; + + if ((eventData.v4 = eventData.GetDelta()) == Vector4.zero) { continue; } + + var handlers = GetAxisHandlers(i); + + GetEventHandlersFromHoveredColliders<IColliderEventAxisChangedHandler>(handlers.axisChangedHandlers); + } + + ExecuteAllEvents(); + + if (isDisabled) + { + CleanUp(); + } + + isUpdating = false; + } + + protected void ProcessPressDown(ColliderButtonEventData eventData, ButtonHandlers handlers) + { + eventData.isPressed = true; + eventData.pressPosition = transform.position; + eventData.pressRotation = transform.rotation; + + for (int i = stayingColliders.Count - 1; i >= 0; --i) + { + if (stayingColliders[i] != null) { eventData.pressedRawObjects.AddUnique(stayingColliders[i].gameObject); } + } + + // press down + GetEventHandlersFromHoveredColliders<IColliderEventPressDownHandler>(eventData.pressedHandlers, handlers.pressDownHandlers); + // click start + GetEventHandlersFromHoveredColliders<IColliderEventClickHandler>(eventData.clickingHandlers); + // drag start + GetEventHandlersFromHoveredColliders<IColliderEventDragStartHandler>(eventData.draggingHandlers, handlers.dragStartHandlers); + } + + protected void ProcessPressing(ColliderButtonEventData eventData, ButtonHandlers handlers) + { + // dragging + handlers.dragUpdateHandlers.AddRange(eventData.draggingHandlers); + } + + protected void ProcessPressUp(ColliderButtonEventData eventData, ButtonHandlers handlers) + { + IndexedSet<GameObject> tmp; + eventData.isPressed = false; + + tmp = eventData.lastPressedRawObjects; + eventData.lastPressedRawObjects = eventData.pressedRawObjects; + eventData.pressedRawObjects = tmp; + + // press up + handlers.pressUpHandlers.AddRange(eventData.pressedHandlers); + + tmp = eventData.lastPressedHandlers; + eventData.lastPressedHandlers = eventData.pressedHandlers; + eventData.pressedHandlers = tmp; + + // drag end + handlers.dragEndHandlers.AddRange(eventData.draggingHandlers); + // drop + if (eventData.isDragging) + { + GetEventHandlersFromHoveredColliders<IColliderEventDropHandler>(handlers.dropHandlers); + } + + // click end (execute only if pressDown handler and pressUp handler are the same) + GetMatchedEventHandlersFromHoveredColliders<IColliderEventClickHandler>(h => eventData.clickingHandlers.Remove(h), handlers.clickHandlers); + + eventData.pressedRawObjects.Clear(); + eventData.pressedHandlers.Clear(); + eventData.clickingHandlers.Clear(); + eventData.draggingHandlers.Clear(); + } + + protected virtual void OnDisable() + { + isDisabled = true; + + if (!isUpdating) + { + CleanUp(); + } + } + + private void CleanUp() + { + // release all + for (int i = 0, imax = buttonEventDataList.Count; i < imax; ++i) + { + var eventData = buttonEventDataList[i]; + var handlers = GetButtonHandlers(i); + + eventData.draggingHandlers.RemoveAll(CannotHandlDragAnymore); + + if (eventData.isPressed) + { + ProcessPressUp(eventData, handlers); + } + + for (int j = eventData.pressEnteredObjects.Count - 1; j >= 0; --j) + { + handlers.pressExitHandlers.Add(eventData.pressEnteredObjects[j]); + } + } + + // exit all + for (int i = hoveredObjects.Count - 1; i >= 0; --i) + { + hoverExitHandlers.Add(hoveredObjects[i]); + } + + hoveredObjects.Clear(); + + stayingColliders.Clear(); + + ExecuteAllEvents(); + } + + private ButtonHandlers GetButtonHandlers(int i) + { + while (i >= buttonEventHandlerList.Count) { buttonEventHandlerList.Add(null); } + return buttonEventHandlerList[i] ?? (buttonEventHandlerList[i] = new ButtonHandlers()); + } + + private AxisHandlers GetAxisHandlers(int i) + { + while (i >= axisEventHanderList.Count) { axisEventHanderList.Add(null); } + return axisEventHanderList[i] ?? (axisEventHanderList[i] = new AxisHandlers()); + } + + private void GetEventHandlersFromHoveredColliders<T>(IList<GameObject> appendHandler, IList<GameObject> appendHandler2 = null) where T : IEventSystemHandler + { + GetMatchedEventHandlersFromHoveredColliders<T>(null, appendHandler, appendHandler2); + } + + private void GetMatchedEventHandlersFromHoveredColliders<T>(System.Predicate<GameObject> match, IList<GameObject> appendHandler, IList<GameObject> appendHandler2 = null) where T : IEventSystemHandler + { + for (int i = stayingColliders.Count - 1; i >= 0; --i) + { + var collider = stayingColliders[i]; + + if (collider == null) { continue; } + + var handler = ExecuteEvents.GetEventHandler<T>(collider.gameObject); + + if (ReferenceEquals(handler, null)) { continue; } + + if (!s_gos.Add(handler.GetInstanceID())) { continue; } + + if (match != null && !match(handler)) { continue; } + + if (appendHandler != null) { appendHandler.Add(handler); } + if (appendHandler2 != null) { appendHandler2.Add(handler); } + } + + s_gos.Clear(); + } + + private void ExecuteAllEvents() + { + ExcuteHandlersEvents(hoverEnterHandlers, HoverEventData, ExecuteColliderEvents.HoverEnterHandler); + + for (int i = buttonEventHandlerList.Count - 1; i >= 0; --i) + { + if (buttonEventHandlerList[i] == null) { continue; } + + ExcuteHandlersEvents(buttonEventHandlerList[i].pressEnterHandlers, buttonEventDataList[i], ExecuteColliderEvents.PressEnterHandler); + + ExcuteHandlersEvents(buttonEventHandlerList[i].pressDownHandlers, buttonEventDataList[i], ExecuteColliderEvents.PressDownHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].pressUpHandlers, buttonEventDataList[i], ExecuteColliderEvents.PressUpHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].dragStartHandlers, buttonEventDataList[i], ExecuteColliderEvents.DragStartHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].dragFixedUpdateHandlers, buttonEventDataList[i], ExecuteColliderEvents.DragFixedUpdateHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].dragUpdateHandlers, buttonEventDataList[i], ExecuteColliderEvents.DragUpdateHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].dragEndHandlers, buttonEventDataList[i], ExecuteColliderEvents.DragEndHandler); + + ExcuteHandlersEvents(buttonEventHandlerList[i].dropHandlers, buttonEventDataList[i], ExecuteColliderEvents.DropHandler); + ExcuteHandlersEvents(buttonEventHandlerList[i].clickHandlers, buttonEventDataList[i], ExecuteColliderEvents.ClickHandler); + + ExcuteHandlersEvents(buttonEventHandlerList[i].pressExitHandlers, buttonEventDataList[i], ExecuteColliderEvents.PressExitHandler); + } + + for (int i = axisEventHanderList.Count - 1; i >= 0; --i) + { + if (axisEventHanderList[i] == null) { continue; } + + ExcuteHandlersEvents(axisEventHanderList[i].axisChangedHandlers, axisEventDataList[i], ExecuteColliderEvents.AxisChangedHandler); + } + + ExcuteHandlersEvents(hoverExitHandlers, HoverEventData, ExecuteColliderEvents.HoverExitHandler); + } + + private void ExcuteHandlersEvents<T>(List<GameObject> handlers, BaseEventData eventData, ExecuteEvents.EventFunction<T> functor) where T : IEventSystemHandler + { + if (handlers.Count == 0) { return; } + + for (int i = handlers.Count - 1; i >= 0; --i) + { + ExecuteEvents.Execute(handlers[i], eventData, functor); + } + + handlers.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs.meta b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cb494501c82f62d62395b62eb3179ed67803b2d5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventCaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: df12ee7a60c56c048a4bf2d3267cfcdb +timeCreated: 1477384965 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs new file mode 100644 index 0000000000000000000000000000000000000000..b5602fd7792eff6839b9fa00e5866582ae8f2955 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs @@ -0,0 +1,126 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.ColliderEvent +{ + public static class ColliderEventDataExtension + { + public static TEventCaster GetEventCaster<TEventCaster>(this ColliderEventData eventData) where TEventCaster : MonoBehaviour, IColliderEventCaster + { + if (!(eventData.eventCaster is TEventCaster)) { return null; } + + return eventData.eventCaster as TEventCaster; + } + + public static bool TryGetEventCaster<TEventCaster>(this ColliderEventData eventData, out TEventCaster eventCaster) where TEventCaster : MonoBehaviour, IColliderEventCaster + { + eventCaster = null; + + if (!(eventData.eventCaster is TEventCaster)) { return false; } + + eventCaster = eventData.eventCaster as TEventCaster; + return true; + } + } + + public class ColliderEventData : BaseEventData + { + public readonly IColliderEventCaster eventCaster; + + public ColliderEventData(IColliderEventCaster eventCaster) : base(null) + { + this.eventCaster = eventCaster; + } + } + + public class ColliderHoverEventData : ColliderEventData + { + public ColliderHoverEventData(IColliderEventCaster eventCaster) : base(eventCaster) { } + } + + public abstract class ColliderButtonEventData : ColliderEventData + { + public enum InputButton + { + None = -1, + Trigger, + PadOrStick, + GripOrHandTrigger, + FunctionKey, + } + + public IndexedSet<GameObject> pressEnteredObjects = new IndexedSet<GameObject>(); // Includes full entered objects hierorchy + public IndexedSet<GameObject> pressedRawObjects = new IndexedSet<GameObject>(); + public IndexedSet<GameObject> lastPressedRawObjects = new IndexedSet<GameObject>(); + public IndexedSet<GameObject> pressedHandlers = new IndexedSet<GameObject>(); + public IndexedSet<GameObject> lastPressedHandlers = new IndexedSet<GameObject>(); + public IndexedSet<GameObject> draggingHandlers = new IndexedSet<GameObject>(); + public IndexedSet<GameObject> clickingHandlers = new IndexedSet<GameObject>(); + + public InputButton button { get; private set; } + public Vector3 pressPosition { get; set; } + public Quaternion pressRotation { get; set; } + + public bool isDragging { get { return draggingHandlers.Count > 0; } } + + public bool isPressed { get; set; } + + public ColliderButtonEventData(IColliderEventCaster eventCaster, InputButton button = 0) : base(eventCaster) + { + this.button = button; + } + + public abstract bool GetPress(); + + public abstract bool GetPressDown(); + + public abstract bool GetPressUp(); + } + + public abstract class ColliderAxisEventData : ColliderEventData + { + public enum InputAxis + { + Scroll2D, + Trigger1D, + } + + public enum Dim + { + D1, + D2, + D3, + D4, + } + + // raw delta values + private float m_x; + private float m_y; + private float m_z; + private float m_w; + + public InputAxis axis { get; private set; } + public Dim dimention { get; private set; } + + // delta values + public float x { get { return dimention >= Dim.D1 ? m_x : 0f; } set { if (dimention >= Dim.D1) m_x = value; } } + public float y { get { return dimention >= Dim.D2 ? m_y : 0f; } set { if (dimention >= Dim.D2) m_y = value; } } + public float z { get { return dimention >= Dim.D3 ? m_z : 0f; } set { if (dimention >= Dim.D3) m_z = value; } } + public float w { get { return dimention >= Dim.D4 ? m_w : 0f; } set { if (dimention >= Dim.D4) m_w = value; } } + + public Vector2 v2 { get { return new Vector2(x, y); } set { x = value.x; y = value.y; } } + public Vector3 v3 { get { return new Vector3(x, y, z); } set { x = value.x; y = value.y; z = value.z; } } + public Vector4 v4 { get { return new Vector4(x, y, z, w); } set { x = value.x; y = value.y; z = value.z; w = value.w; } } + + public ColliderAxisEventData(IColliderEventCaster eventCaster, Dim dimention, InputAxis axis = 0) : base(eventCaster) + { + this.axis = axis; + this.dimention = dimention; + } + + public abstract Vector4 GetDelta(); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs.meta b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..93cd1f8869980a574fbd98d1001062378b39823c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c7c0117702a118c4785af444d15be0f5 +timeCreated: 1477553122 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs new file mode 100644 index 0000000000000000000000000000000000000000..c4d310a1bf11029690e1bc174ea2434b01e0df2c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs @@ -0,0 +1,71 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.ColliderEvent +{ + public interface IColliderEventHoverEnterHandler : IEventSystemHandler + { + void OnColliderEventHoverEnter(ColliderHoverEventData eventData); + } + + public interface IColliderEventHoverExitHandler : IEventSystemHandler + { + void OnColliderEventHoverExit(ColliderHoverEventData eventData); + } + + public interface IColliderEventPressDownHandler : IEventSystemHandler + { + void OnColliderEventPressDown(ColliderButtonEventData eventData); + } + + public interface IColliderEventPressUpHandler : IEventSystemHandler + { + void OnColliderEventPressUp(ColliderButtonEventData eventData); + } + + public interface IColliderEventPressEnterHandler : IEventSystemHandler + { + void OnColliderEventPressEnter(ColliderButtonEventData eventData); + } + + public interface IColliderEventPressExitHandler : IEventSystemHandler + { + void OnColliderEventPressExit(ColliderButtonEventData eventData); + } + + public interface IColliderEventClickHandler : IEventSystemHandler + { + void OnColliderEventClick(ColliderButtonEventData eventData); + } + + public interface IColliderEventDragStartHandler : IEventSystemHandler + { + void OnColliderEventDragStart(ColliderButtonEventData eventData); + } + + public interface IColliderEventDragFixedUpdateHandler : IEventSystemHandler + { + void OnColliderEventDragFixedUpdate(ColliderButtonEventData eventData); + } + + public interface IColliderEventDragUpdateHandler : IEventSystemHandler + { + void OnColliderEventDragUpdate(ColliderButtonEventData eventData); + } + + public interface IColliderEventDragEndHandler : IEventSystemHandler + { + void OnColliderEventDragEnd(ColliderButtonEventData eventData); + } + + public interface IColliderEventDropHandler : IEventSystemHandler + { + void OnColliderEventDrop(ColliderButtonEventData eventData); + } + + public interface IColliderEventAxisChangedHandler : IEventSystemHandler + { + void OnColliderEventAxisChanged(ColliderAxisEventData eventData); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs.meta b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..22818641f7b52ca4b706c1d6df892781eb085e1e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ColliderEventInterfaces.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 675ab27a558138a4399a12493d2967b7 +timeCreated: 1477552639 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs b/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs new file mode 100644 index 0000000000000000000000000000000000000000..2e75b856e5eac0540306124a91b3b3ae7208896b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs @@ -0,0 +1,87 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.ColliderEvent +{ + public static class ExecuteColliderEvents + { + public static readonly ExecuteEvents.EventFunction<IColliderEventHoverEnterHandler> HoverEnterHandler = Execute; + private static void Execute(IColliderEventHoverEnterHandler handler, BaseEventData eventData) + { + handler.OnColliderEventHoverEnter(ExecuteEvents.ValidateEventData<ColliderHoverEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventHoverExitHandler> HoverExitHandler = Execute; + private static void Execute(IColliderEventHoverExitHandler handler, BaseEventData eventData) + { + handler.OnColliderEventHoverExit(ExecuteEvents.ValidateEventData<ColliderHoverEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventPressDownHandler> PressDownHandler = Execute; + private static void Execute(IColliderEventPressDownHandler handler, BaseEventData eventData) + { + handler.OnColliderEventPressDown(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventPressUpHandler> PressUpHandler = Execute; + private static void Execute(IColliderEventPressUpHandler handler, BaseEventData eventData) + { + handler.OnColliderEventPressUp(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventPressEnterHandler> PressEnterHandler = Execute; + private static void Execute(IColliderEventPressEnterHandler handler, BaseEventData eventData) + { + handler.OnColliderEventPressEnter(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventPressExitHandler> PressExitHandler = Execute; + private static void Execute(IColliderEventPressExitHandler handler, BaseEventData eventData) + { + handler.OnColliderEventPressExit(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventClickHandler> ClickHandler = Execute; + private static void Execute(IColliderEventClickHandler handler, BaseEventData eventData) + { + handler.OnColliderEventClick(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventDragStartHandler> DragStartHandler = Execute; + private static void Execute(IColliderEventDragStartHandler handler, BaseEventData eventData) + { + handler.OnColliderEventDragStart(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventDragFixedUpdateHandler> DragFixedUpdateHandler = Execute; + private static void Execute(IColliderEventDragFixedUpdateHandler handler, BaseEventData eventData) + { + handler.OnColliderEventDragFixedUpdate(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventDragUpdateHandler> DragUpdateHandler = Execute; + private static void Execute(IColliderEventDragUpdateHandler handler, BaseEventData eventData) + { + handler.OnColliderEventDragUpdate(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventDragEndHandler> DragEndHandler = Execute; + private static void Execute(IColliderEventDragEndHandler handler, BaseEventData eventData) + { + handler.OnColliderEventDragEnd(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventDropHandler> DropHandler = Execute; + private static void Execute(IColliderEventDropHandler handler, BaseEventData eventData) + { + handler.OnColliderEventDrop(ExecuteEvents.ValidateEventData<ColliderButtonEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IColliderEventAxisChangedHandler> AxisChangedHandler = Execute; + private static void Execute(IColliderEventAxisChangedHandler handler, BaseEventData eventData) + { + handler.OnColliderEventAxisChanged(ExecuteEvents.ValidateEventData<ColliderAxisEventData>(eventData)); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs.meta b/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2c045d178525d20314e2a65a78d98292b36d9ea7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ColliderEvent/ExecuteColliderEvents.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78a9524770a966d45bf7d82c63c4ba1b +timeCreated: 1477645177 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef b/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef new file mode 100644 index 0000000000000000000000000000000000000000..9e873b47839f535f1af4fd12b190839c70f9012f --- /dev/null +++ b/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef @@ -0,0 +1,21 @@ +{ + "name": "HTC.ViveInputUtility", + "references": [ + "Unity.XR.Management", + "SteamVR", + "Oculus.Avatar", + "Oculus.VR", + "Oculus.Platform", + "UnityEngine.SpatialTracking", + "Unity.XR.OpenVR" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef.meta b/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef.meta new file mode 100644 index 0000000000000000000000000000000000000000..3795120a80c56c13d0226833c1ab9c4fccf31efa --- /dev/null +++ b/Assets/HTC.UnityPlugin/HTC.ViveInputUtility.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4aa80e501d649f0408d84c41352e4032 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D.meta b/Assets/HTC.UnityPlugin/Pointer3D.meta new file mode 100644 index 0000000000000000000000000000000000000000..222128e174ff0a45869ca0ac74ee3b03f453307f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a41026e15126d7d4e949f71930de2de5 +folderAsset: yes +timeCreated: 1461897017 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs b/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs new file mode 100644 index 0000000000000000000000000000000000000000..732acf7cc64587d4ef1c379bda045ffbf072b892 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs @@ -0,0 +1,21 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public static class ExecutePointer3DEvents + { + public static readonly ExecuteEvents.EventFunction<IPointer3DPressEnterHandler> PressEnterHandler = Execute; + private static void Execute(IPointer3DPressEnterHandler handler, BaseEventData eventData) + { + handler.OnPointer3DPressEnter(ExecuteEvents.ValidateEventData<Pointer3DEventData>(eventData)); + } + + public static readonly ExecuteEvents.EventFunction<IPointer3DPressExitHandler> PressExitHandler = Execute; + private static void Execute(IPointer3DPressExitHandler handler, BaseEventData eventData) + { + handler.OnPointer3DPressExit(ExecuteEvents.ValidateEventData<Pointer3DEventData>(eventData)); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..696e61a6ea4c12ffc411d9bf4f322c762f2316e9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/ExecutePointer3DEvents.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1015e2ddb037db04a856b7e5320676c3 +timeCreated: 1508525126 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs new file mode 100644 index 0000000000000000000000000000000000000000..6cf9e839e51adcace4c9298289d414722b0c1a80 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs @@ -0,0 +1,95 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public static class Pointer3DEventDataExtension + { + public static Pointer3DRaycaster GetRaycaster3D(this PointerEventData eventData) + { + if (!(eventData is Pointer3DEventData)) { return null; } + + var eventData3D = eventData as Pointer3DEventData; + + return eventData3D.raycaster; + } + + public static bool TryGetRaycaster3D(this PointerEventData eventData, out Pointer3DRaycaster raycaster) + { + raycaster = null; + + if (!(eventData is Pointer3DEventData)) { return false; } + + var eventData3D = eventData as Pointer3DEventData; + raycaster = eventData3D.raycaster; + return true; + } + + public static TRaycaster3D GetRaycaster3D<TRaycaster3D>(this PointerEventData eventData) where TRaycaster3D : Pointer3DRaycaster + { + if (!(eventData is Pointer3DEventData)) { return null; } + + var eventData3D = eventData as Pointer3DEventData; + if (!(eventData3D.raycaster is TRaycaster3D)) { return null; } + + return eventData3D.raycaster as TRaycaster3D; + } + + public static bool TryGetRaycaster3D<TRaycaster3D>(this PointerEventData eventData, out TRaycaster3D raycaster) where TRaycaster3D : Pointer3DRaycaster + { + raycaster = null; + + if (!(eventData is Pointer3DEventData)) { return false; } + + var eventData3D = eventData as Pointer3DEventData; + if (!(eventData3D.raycaster is TRaycaster3D)) { return false; } + + raycaster = eventData3D.raycaster as TRaycaster3D; + return true; + } + } + + public class Pointer3DEventData : PointerEventData + { + public readonly Pointer3DRaycaster raycaster; + + public Vector3 position3D; + public Quaternion rotation; + + public Vector3 position3DDelta; + public Quaternion rotationDelta; + + public Vector3 pressPosition3D; + public Quaternion pressRotation; + + public float pressDistance; + public GameObject pressEnter; + public bool pressPrecessed; + + public Pointer3DEventData(Pointer3DRaycaster ownerRaycaster, EventSystem eventSystem) : base(eventSystem) + { + raycaster = ownerRaycaster; + Pointer3DInputModule.AssignPointerId(this); + } + + public virtual bool GetPress() { return false; } + + public virtual bool GetPressDown() { return false; } + + public virtual bool GetPressUp() { return false; } + + public override string ToString() + { + var str = string.Empty; + str += "eligibleForClick: " + eligibleForClick + "\n"; + str += "pointerEnter: " + Pointer3DInputModule.PrintGOPath(pointerEnter) + "\n"; + str += "pointerPress: " + Pointer3DInputModule.PrintGOPath(pointerPress) + "\n"; + str += "lastPointerPress: " + Pointer3DInputModule.PrintGOPath(lastPress) + "\n"; + str += "pressEnter: " + Pointer3DInputModule.PrintGOPath(pressEnter) + "\n"; + str += "pointerDrag: " + Pointer3DInputModule.PrintGOPath(pointerDrag) + "\n"; + return str; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5a7e9f0e29b6606df08e2c3f86fc81054b8b741d --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f745266893601d443bdcd597e6c4a2f7 +timeCreated: 1461897558 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs new file mode 100644 index 0000000000000000000000000000000000000000..86f58f1dc9528d612cd6133e44684ac54892b3cc --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs @@ -0,0 +1,16 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public interface IPointer3DPressEnterHandler : IEventSystemHandler + { + void OnPointer3DPressEnter(Pointer3DEventData eventData); + } + + public interface IPointer3DPressExitHandler : IEventSystemHandler + { + void OnPointer3DPressExit(Pointer3DEventData eventData); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1ac8261fd58d577ac6f14e27f5c2f0d453536b25 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DEventInterfaces.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8b8ba755fd06d6340b549d2a670a25d7 +timeCreated: 1508525109 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..1c4e059c87312719824c693adb08628195733e93 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs @@ -0,0 +1,646 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class Pointer3DInputModule : BaseInputModule + { + private static Pointer3DInputModule instance; + private static bool isApplicationQuitting = false; + + private static readonly IndexedSet<Pointer3DRaycaster> raycasters = new IndexedSet<Pointer3DRaycaster>(); + private static IndexedSet<Pointer3DRaycaster> processingRaycasters = new IndexedSet<Pointer3DRaycaster>(); + private static int validEventDataId = PointerInputModule.kFakeTouchesId - 1; + +#if UNITY_5_5_OR_NEWER + private bool m_hasFocus; +#endif + private int m_processedFrame; + + // Pointer3DInputModule has it's own RaycasterManager and Pointer3DRaycaster doesn't share with other input modules. + // So coexist with other input modules is by default and reasonable? + public bool coexist = true; + [NonSerialized] + [Obsolete("Use Pointer3DRaycaster.dragThreshold instead")] + public float dragThreshold = 0.02f; + [NonSerialized] + [Obsolete("Use Pointer3DRaycaster.clickInterval instead")] + public float clickInterval = 0.3f; + + public static Vector2 ScreenCenterPoint { get { return new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); } } + + public static bool Active { get { return instance != null; } } + + public static Pointer3DInputModule Instance + { + get + { + Initialize(); + return instance; + } + } + + protected virtual void OnApplicationQuit() + { + isApplicationQuitting = true; + } + + public override bool ShouldActivateModule() + { + if (!base.ShouldActivateModule()) { return false; } + // if coexist with other inputmodule is enabled, tell EventSystem not to active and let other module active first + return !coexist; + } +#if UNITY_5_5_OR_NEWER + protected virtual void OnApplicationFocus(bool hasFocus) + { + m_hasFocus = hasFocus; + } + + protected virtual void Update() + { + // EventSystem is paused when application lost focus, so force ProcessRaycast here + if (isActiveAndEnabled && !m_hasFocus) + { + if (EventSystem.current.currentInputModule == this || coexist) + { + ProcessRaycast(); + } + } + } +#endif + public override void UpdateModule() + { + Initialize(); + if (isActiveAndEnabled && EventSystem.current.currentInputModule != this && coexist) + { + ProcessRaycast(); + } + } + + public static void Initialize() + { + if (Active || isApplicationQuitting) { return; } + + var instances = FindObjectsOfType<Pointer3DInputModule>(); + if (instances.Length > 0) + { + instance = instances[0]; + if (instances.Length > 1) { Debug.LogWarning("Multiple Pointer3DInputModule not supported!"); } + } + + if (!Active) + { + EventSystem eventSystem = EventSystem.current; + if (eventSystem == null) + { + eventSystem = FindObjectOfType<EventSystem>(); + } + if (eventSystem == null) + { + eventSystem = new GameObject("[EventSystem]").AddComponent<EventSystem>(); + } + if (eventSystem == null) + { + Debug.LogWarning("EventSystem not found or create fail!"); + return; + } + + instance = eventSystem.gameObject.AddComponent<Pointer3DInputModule>(); + } + } + + public static void AssignPointerId(Pointer3DEventData eventData) + { + eventData.pointerId = validEventDataId--; + } + + public override void Process() + { + Initialize(); + if (isActiveAndEnabled) + { + ProcessRaycast(); + } + } + + protected override void OnDisable() + { + base.OnDisable(); + + if (Active && processingRaycasters.Count == 0) + { + for (var i = raycasters.Count - 1; i >= 0; --i) + { + instance.CleanUpRaycaster(raycasters[i]); + } + } + } + + public static readonly Comparison<RaycastResult> defaultRaycastComparer = RaycastComparer; + private static int RaycastComparer(RaycastResult lhs, RaycastResult rhs) + { + if (lhs.module != rhs.module) + { + if (lhs.module.eventCamera != null && rhs.module.eventCamera != null && lhs.module.eventCamera.depth != rhs.module.eventCamera.depth) + { + // need to reverse the standard compareTo + if (lhs.module.eventCamera.depth < rhs.module.eventCamera.depth) { return 1; } + if (lhs.module.eventCamera.depth == rhs.module.eventCamera.depth) { return 0; } + return -1; + } + + if (lhs.module.sortOrderPriority != rhs.module.sortOrderPriority) + { + return rhs.module.sortOrderPriority.CompareTo(lhs.module.sortOrderPriority); + } + + if (lhs.module.renderOrderPriority != rhs.module.renderOrderPriority) + { + return rhs.module.renderOrderPriority.CompareTo(lhs.module.renderOrderPriority); + } + } + + if (lhs.sortingLayer != rhs.sortingLayer) + { + // Uses the layer value to properly compare the relative order of the layers. + var rid = SortingLayer.GetLayerValueFromID(rhs.sortingLayer); + var lid = SortingLayer.GetLayerValueFromID(lhs.sortingLayer); + return rid.CompareTo(lid); + } + + if (lhs.sortingOrder != rhs.sortingOrder) + { + return rhs.sortingOrder.CompareTo(lhs.sortingOrder); + } + + if (!Mathf.Approximately(lhs.distance, rhs.distance)) + { + return lhs.distance.CompareTo(rhs.distance); + } + + if (lhs.depth != rhs.depth) + { + return rhs.depth.CompareTo(lhs.depth); + } + + return lhs.index.CompareTo(rhs.index); + } + + public static void AddRaycaster(Pointer3DRaycaster raycaster) + { + if (raycaster == null) { return; } + + Initialize(); + raycasters.AddUnique(raycaster); + } + + public static void RemoveRaycaster(Pointer3DRaycaster raycaster) + { + if (!raycasters.Remove(raycaster)) { return; } + + if (!processingRaycasters.Contains(raycaster) && Active) + { + Instance.CleanUpRaycaster(raycaster); + } + } + + [Obsolete("Use RemoveRaycaster instead")] + public static void RemoveRaycasters(Pointer3DRaycaster raycaster) { RemoveRaycaster(raycaster); } + + protected void CleanUpRaycaster(Pointer3DRaycaster raycaster) + { + if (raycaster == null) { return; } + + var hoverEventData = raycaster.HoverEventData; + + // buttons event + for (int i = 0, imax = raycaster.ButtonEventDataList.Count; i < imax; ++i) + { + var buttonEventData = raycaster.ButtonEventDataList[i]; + if (buttonEventData == null) { continue; } + + buttonEventData.Reset(); + + if (buttonEventData.pressPrecessed) + { + ProcessPressUp(buttonEventData); + HandlePressExitAndEnter(buttonEventData, null); + } + + if (buttonEventData.pointerEnter != null) + { + if (buttonEventData == hoverEventData) + { + // perform exit event only for hover event data + HandlePointerExitAndEnter(buttonEventData, null); + } + else + { + buttonEventData.pointerEnter = null; + } + } + } + + raycaster.CleanUpRaycast(); + + for (int i = 0, imax = raycaster.ButtonEventDataList.Count; i < imax; ++i) + { + raycaster.ButtonEventDataList[i].pointerPressRaycast = default(RaycastResult); + raycaster.ButtonEventDataList[i].pointerCurrentRaycast = default(RaycastResult); + } + } + + protected virtual void ProcessRaycast() + { + if (m_processedFrame == Time.frameCount) { return; } + m_processedFrame = Time.frameCount; + + // use another list to iterate raycasters + // incase that raycasters may changed during this process cycle + for (int i = 0, imax = raycasters.Count; i < imax; ++i) + { + var r = raycasters[i]; + + if (r != null) + { + processingRaycasters.Add(r); + } + } + + for (var i = processingRaycasters.Count - 1; i >= 0; --i) + { + var raycaster = processingRaycasters[i]; + if (raycaster == null) { continue; } + + raycaster.Raycast(); + var result = raycaster.FirstRaycastResult(); + + // prepare raycaster value + var scrollDelta = raycaster.GetScrollDelta(); + var raycasterPos = raycaster.transform.position; + var raycasterRot = raycaster.transform.rotation; + + var hoverEventData = raycaster.HoverEventData; + if (hoverEventData == null) { continue; } + + // gen shared data and put in hover event + hoverEventData.Reset(); + hoverEventData.delta = Vector2.zero; + hoverEventData.scrollDelta = scrollDelta; + hoverEventData.position = ScreenCenterPoint; + hoverEventData.pointerCurrentRaycast = result; + + hoverEventData.position3DDelta = raycasterPos - hoverEventData.position3D; + hoverEventData.position3D = raycasterPos; + hoverEventData.rotationDelta = Quaternion.Inverse(hoverEventData.rotation) * raycasterRot; + hoverEventData.rotation = raycasterRot; + + // copy data to other button event + for (int j = 0, jmax = raycaster.ButtonEventDataList.Count; j < jmax; ++j) + { + var buttonEventData = raycaster.ButtonEventDataList[j]; + if (buttonEventData == null || buttonEventData == hoverEventData) { continue; } + + buttonEventData.Reset(); + buttonEventData.delta = Vector2.zero; + buttonEventData.scrollDelta = scrollDelta; + buttonEventData.position = ScreenCenterPoint; + buttonEventData.pointerCurrentRaycast = result; + + buttonEventData.position3DDelta = hoverEventData.position3DDelta; + buttonEventData.position3D = hoverEventData.position3D; + buttonEventData.rotationDelta = hoverEventData.rotationDelta; + buttonEventData.rotation = hoverEventData.rotation; + } + + ProcessPress(hoverEventData); + ProcessMove(hoverEventData); + ProcessDrag(hoverEventData); + + // other buttons event + for (int j = 1, jmax = raycaster.ButtonEventDataList.Count; j < jmax; ++j) + { + var buttonEventData = raycaster.ButtonEventDataList[j]; + if (buttonEventData == null || buttonEventData == hoverEventData) { continue; } + + buttonEventData.pointerEnter = hoverEventData.pointerEnter; + + ProcessPress(buttonEventData); + ProcessDrag(buttonEventData); + } + + // scroll event + if (result.isValid && !Mathf.Approximately(scrollDelta.sqrMagnitude, 0.0f)) + { + var scrollHandler = ExecuteEvents.GetEventHandler<IScrollHandler>(result.gameObject); + ExecuteEvents.ExecuteHierarchy(scrollHandler, hoverEventData, ExecuteEvents.scrollHandler); + } + } + + if (isActiveAndEnabled) + { + for (var i = processingRaycasters.Count - 1; i >= 0; --i) + { + var r = processingRaycasters[i]; + if (!raycasters.Contains(r)) + { + CleanUpRaycaster(r); + } + } + } + else + { + for (var i = processingRaycasters.Count - 1; i >= 0; --i) + { + CleanUpRaycaster(processingRaycasters[i]); + } + } + + processingRaycasters.Clear(); + } + + protected virtual void ProcessMove(PointerEventData eventData) + { + var hoverGO = eventData.pointerCurrentRaycast.gameObject; + if (eventData.pointerEnter != hoverGO) + { + HandlePointerExitAndEnter(eventData, hoverGO); + } + } + + protected virtual void ProcessPress(Pointer3DEventData eventData) + { + if (eventData.GetPress()) + { + if (!eventData.pressPrecessed) + { + ProcessPressDown(eventData); + } + + HandlePressExitAndEnter(eventData, eventData.pointerCurrentRaycast.gameObject); + } + else if (eventData.pressPrecessed) + { + ProcessPressUp(eventData); + HandlePressExitAndEnter(eventData, null); + } + } + + protected void ProcessPressDown(Pointer3DEventData eventData) + { + var currentOverGo = eventData.pointerCurrentRaycast.gameObject; + + eventData.pressPrecessed = true; + eventData.eligibleForClick = true; + eventData.delta = Vector2.zero; + eventData.dragging = false; + eventData.useDragThreshold = true; + eventData.pressPosition = eventData.position; + eventData.pressPosition3D = eventData.position3D; + eventData.pressRotation = eventData.rotation; + eventData.pressDistance = eventData.pointerCurrentRaycast.distance; + eventData.pointerPressRaycast = eventData.pointerCurrentRaycast; + + DeselectIfSelectionChanged(currentOverGo, eventData); + + // search for the control that will receive the press + // if we can't find a press handler set the press + // handler to be what would receive a click. + var newPressed = ExecuteEvents.ExecuteHierarchy(currentOverGo, eventData, ExecuteEvents.pointerDownHandler); + + // didnt find a press handler... search for a click handler + if (newPressed == null) + { + newPressed = ExecuteEvents.GetEventHandler<IPointerClickHandler>(currentOverGo); + } + + var time = Time.unscaledTime; + + if (newPressed == eventData.lastPress) + { + if (eventData.raycaster != null && time < (eventData.clickTime + eventData.raycaster.clickInterval)) + { + ++eventData.clickCount; + } + else + { + eventData.clickCount = 1; + } + + eventData.clickTime = time; + } + else + { + eventData.clickCount = 1; + } + + eventData.pointerPress = newPressed; + eventData.rawPointerPress = currentOverGo; + + eventData.clickTime = time; + + // Save the drag handler as well + eventData.pointerDrag = ExecuteEvents.GetEventHandler<IDragHandler>(currentOverGo); + + if (eventData.pointerDrag != null) + { + ExecuteEvents.Execute(eventData.pointerDrag, eventData, ExecuteEvents.initializePotentialDrag); + } + } + + protected void ProcessPressUp(Pointer3DEventData eventData) + { + var currentOverGo = eventData.pointerCurrentRaycast.gameObject; + + ExecuteEvents.Execute(eventData.pointerPress, eventData, ExecuteEvents.pointerUpHandler); + + // see if we mouse up on the same element that we clicked on... + var pointerUpHandler = ExecuteEvents.GetEventHandler<IPointerClickHandler>(currentOverGo); + + // PointerClick and Drop events + if (eventData.pointerPress == pointerUpHandler && eventData.eligibleForClick) + { + ExecuteEvents.Execute(eventData.pointerPress, eventData, ExecuteEvents.pointerClickHandler); + } + else if (eventData.pointerDrag != null && eventData.dragging) + { + ExecuteEvents.ExecuteHierarchy(currentOverGo, eventData, ExecuteEvents.dropHandler); + } + + eventData.pressPrecessed = false; + eventData.eligibleForClick = false; + eventData.pointerPress = null; + eventData.rawPointerPress = null; + + if (eventData.pointerDrag != null && eventData.dragging) + { + ExecuteEvents.Execute(eventData.pointerDrag, eventData, ExecuteEvents.endDragHandler); + } + + eventData.dragging = false; + eventData.pointerDrag = null; + + // redo pointer enter / exit to refresh state + // so that if we moused over something that ignored it before + // due to having pressed on something else + // it now gets it. + if (currentOverGo != eventData.pointerEnter) + { + HandlePointerExitAndEnter(eventData, null); + HandlePointerExitAndEnter(eventData, currentOverGo); + } + } + + protected bool ShouldStartDrag(Pointer3DEventData eventData) + { + if (!eventData.useDragThreshold || eventData.raycaster == null) { return true; } + var currentPos = eventData.position3D + (eventData.rotation * Vector3.forward) * eventData.pressDistance; + var pressPos = eventData.pressPosition3D + (eventData.pressRotation * Vector3.forward) * eventData.pressDistance; + var threshold = eventData.raycaster.dragThreshold; + return (currentPos - pressPos).sqrMagnitude >= threshold * threshold; + } + + protected void ProcessDrag(Pointer3DEventData eventData) + { + var moving = !Mathf.Approximately(eventData.position3DDelta.sqrMagnitude, 0f) || !Mathf.Approximately(Quaternion.Angle(Quaternion.identity, eventData.rotationDelta), 0f); + + if (moving && eventData.pointerDrag != null && !eventData.dragging && ShouldStartDrag(eventData)) + { + ExecuteEvents.Execute(eventData.pointerDrag, eventData, ExecuteEvents.beginDragHandler); + eventData.dragging = true; + } + + // Drag notification + if (eventData.dragging && moving && eventData.pointerDrag != null) + { + // Before doing drag we should cancel any pointer down state + // And clear selection! + if (eventData.pointerPress != eventData.pointerDrag) + { + ExecuteEvents.Execute(eventData.pointerPress, eventData, ExecuteEvents.pointerUpHandler); + + eventData.eligibleForClick = false; + eventData.pointerPress = null; + eventData.rawPointerPress = null; + } + ExecuteEvents.Execute(eventData.pointerDrag, eventData, ExecuteEvents.dragHandler); + } + } + + protected static void HandlePressExitAndEnter(Pointer3DEventData eventData, GameObject newEnterTarget) + { + if (eventData.pressEnter == newEnterTarget) { return; } + + var oldTarget = eventData.pressEnter == null ? null : eventData.pressEnter.transform; + var newTarget = newEnterTarget == null ? null : newEnterTarget.transform; + var commonRoot = default(Transform); + + for (var t = oldTarget; t != null; t = t.parent) + { + if (newTarget != null && newTarget.IsChildOf(t)) + { + commonRoot = t; + break; + } + else + { + ExecuteEvents.Execute(t.gameObject, eventData, ExecutePointer3DEvents.PressExitHandler); + } + } + + eventData.pressEnter = newEnterTarget; + + for (var t = newTarget; t != commonRoot; t = t.parent) + { + ExecuteEvents.Execute(t.gameObject, eventData, ExecutePointer3DEvents.PressEnterHandler); + } + } + + protected void DeselectIfSelectionChanged(GameObject currentOverGo, BaseEventData pointerEvent) + { + // Selection tracking + var selectHandlerGO = ExecuteEvents.GetEventHandler<ISelectHandler>(currentOverGo); + // if we have clicked something new, deselect the old thing + // leave 'selection handling' up to the press event though. + if (eventSystem != null && selectHandlerGO != eventSystem.currentSelectedGameObject) + { + eventSystem.SetSelectedGameObject(null, pointerEvent); + } + } + + public bool SendUpdateEventToSelectedObject() + { + var selected = EventSystem.current.currentSelectedGameObject; + if (selected == null) { return false; } + + var data = GetBaseEventData(); + ExecuteEvents.Execute(selected, data, ExecuteEvents.updateSelectedHandler); + return data.used; + } + + public bool SendSubmitEventToSelectedObject(bool submit, bool cencel) + { + var selected = EventSystem.current.currentSelectedGameObject; + if (selected == null) { return false; } + + var data = GetBaseEventData(); + if (submit) { ExecuteEvents.Execute(selected, data, ExecuteEvents.submitHandler); } + if (cencel) { ExecuteEvents.Execute(selected, data, ExecuteEvents.cancelHandler); } + return data.used; + } + + public bool SendMoveEventToSelectedObject(float x, float y, float moveDeadZone) + { + var selected = EventSystem.current.currentSelectedGameObject; + if (selected == null) { return false; } + + var data = GetAxisEventData(x, y, moveDeadZone); + ExecuteEvents.Execute(selected, data, ExecuteEvents.moveHandler); + return data.used; + } + + public static string PrintGOPath(GameObject go) + { + var str = string.Empty; + + if (go != null) + { + for (var t = go.transform; t != null; t = t.parent) + { + if (!string.IsNullOrEmpty(str)) { str = "." + str; } + str = t.name + str; + } + } + + return str; + } + + public override string ToString() + { + var str = string.Empty; + if (raycasters.Count == 0) + { + str += "No raycaster registered"; + } + else + { + for (int i = 0, imax = raycasters.Count; i < imax; ++i) + { + var raycaster = raycasters[i]; + if (raycaster == null) { continue; } + + str += "<b>Raycaster: [" + i + "]</b>\n"; + str += raycaster.ToString() + "\n"; + } + } + + return str; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e41e9aecc8891dcdd764e6ebdbffc7f4ddc7d97e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Pointer3DInputModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b4835de3ad8af1e4caa6b9a5d551c37e +timeCreated: 1461897032 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator.meta new file mode 100644 index 0000000000000000000000000000000000000000..61d18ec55dc6082d580edd2ab31191bc94b69f6a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 02002aca223369f46b21501dc4dbf9fe +folderAsset: yes +timeCreated: 1474626329 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base.meta new file mode 100644 index 0000000000000000000000000000000000000000..0b8341a1b875436e3f80f0dd81a8e42014c8ea77 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 633e3dfcb51eb9341b35e4fba82b7aa2 +folderAsset: yes +timeCreated: 1480511841 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs new file mode 100644 index 0000000000000000000000000000000000000000..b20ce4b8767683a64eb12290725ccdfa649068d5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs @@ -0,0 +1,35 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Pointer3D +{ + [RequireComponent(typeof(Pointer3DRaycaster))] + public abstract class BaseRaySegmentGenerator : MonoBehaviour, IRaySegmentGenerator + { + private Pointer3DRaycaster m_raycaster; + public Pointer3DRaycaster raycaster { get { return m_raycaster; } } + + protected virtual void Start() + { + m_raycaster = GetComponent<Pointer3DRaycaster>(); + if (m_raycaster != null) { m_raycaster.AddGenerator(this); } + } + + protected virtual void OnEnable() { } + + protected virtual void OnDisable() { } + + protected virtual void OnDestroy() + { + if (m_raycaster != null) { raycaster.RemoveGenerator(this); } + m_raycaster = null; + } + + public abstract void ResetSegments(); + + public abstract bool NextSegment(out Vector3 direction, out float distance); + + + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4ce6be10e1b378ce32d2c520abc1199b24e9e7a5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/BaseRaySegmentGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d6790ed95536ff4fb09b0617b956bbd +timeCreated: 1474858418 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs new file mode 100644 index 0000000000000000000000000000000000000000..ce4f5d8338efb2e0873759f5daec5c05721c30a0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs @@ -0,0 +1,14 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Pointer3D +{ + public interface IRaySegmentGenerator + { + bool enabled { get; set; } + + void ResetSegments(); + bool NextSegment(out Vector3 direction, out float distance); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..945014f726ab5196a1995e639aa77bd5d73c6601 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/Base/IRaySegmentGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b05f196de8b00e4891220e91f9c2918 +timeCreated: 1480511806 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs new file mode 100644 index 0000000000000000000000000000000000000000..820f9e6806be5254e52dcf44a43e7cc95c30b413 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs @@ -0,0 +1,21 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Pointer3D +{ + [Obsolete] + public class DefaultGenerator : BaseRaySegmentGenerator + { + public override void ResetSegments() { } + + public override bool NextSegment(out Vector3 direction, out float distance) + { + direction = transform.forward; + distance = float.PositiveInfinity; + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8f161825cc38338def5bd3d01d251033c6302540 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/DefaultGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 439e39578810e8e4eb5cba21261e40b1 +timeCreated: 1474858944 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs new file mode 100644 index 0000000000000000000000000000000000000000..f12cf6b8223835622c4bda04b98be39e9f2d584a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs @@ -0,0 +1,162 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using HTC.UnityPlugin.Utility; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class ProjectileGenerator : BaseRaySegmentGenerator + { + public float velocity = 2f; + public Vector3 gravity = Vector3.down; + + private float m_velocity; + private Vector3 m_gravity; + + private float maxHalfJourney;// maximum distance if projectile angle equals to 45 degree using given velocity + private float accY;// vertical accelerate + + private Vector3 systemY; + private Vector3 systemX; + + private Vector3 v0;// initial velocity vector + private float v0X;// initial horizontal velocity + private float v0Y;// initial vertical velocity + private bool isHeighPeek;// if included angle between v0 and systemX is larger then 45 degree + private float halfJourney;// half maximum distance of projectile + + private float contactPointTime; + private float nextContactPointTime; + private float rayDistance; + private float nextRayDistance; + + private void CalculateAcc() + { + accY = -gravity.magnitude; + } + + private void CalculatePeekDistanceMax() + { + maxHalfJourney = 0.5f * velocity * velocity / Mathf.Abs(accY); + } + + protected override void Start() + { + base.Start(); + CalculateAcc(); + CalculatePeekDistanceMax(); + } + + public override void ResetSegments() + { + var velocityChanged = ChangeProp.Set(ref m_velocity, velocity); + var gravityChanged = ChangeProp.Set(ref m_gravity, gravity); + + if (gravityChanged) + { + CalculateAcc(); + } + + if (velocityChanged || gravityChanged) + { + CalculatePeekDistanceMax(); + } + + systemY = -gravity; + systemX = transform.forward; + Vector3.OrthoNormalize(ref systemY, ref systemX); + + v0 = transform.forward * velocity; + v0X = Vector3.Dot(v0, systemX); + v0Y = Vector3.Dot(v0, systemY); + isHeighPeek = Mathf.Abs(v0Y) > Mathf.Abs(v0X); + + contactPointTime = v0Y / accY; + halfJourney = Mathf.Abs(contactPointTime); + + rayDistance = nextRayDistance = 0f; + } + + public override bool NextSegment(out Vector3 direction, out float distance) + { + if (isHeighPeek) + { + if (contactPointTime < 0f) + { + nextContactPointTime = 0f; + } + else + { + nextContactPointTime = contactPointTime + halfJourney; + } + } + else + { + if (contactPointTime < 0f) + { + nextContactPointTime = 0f; + } + else if (contactPointTime == 0f) + { + if (halfJourney == 0f) + { + nextContactPointTime = contactPointTime + maxHalfJourney * 0.3f; + } + else + { + nextContactPointTime = contactPointTime + halfJourney; + } + } + else + { + // cap to maxHalfJourney to avoid small segment + //nextContactPointTime = contactPointTime + maxHalfJourney; + nextContactPointTime = contactPointTime + Mathf.Lerp(halfJourney, maxHalfJourney, 0.3f); + } + } + + var lastDistance = rayDistance; + GetTangentLineIntersectDistance(contactPointTime, nextContactPointTime, out rayDistance, out nextRayDistance, out direction); + distance = rayDistance + lastDistance; + + // shift for next iteration + rayDistance = nextRayDistance; + contactPointTime = nextContactPointTime; + + if (distance <= Pointer3DRaycaster.MIN_SEGMENT_DISTANCE) + { + distance = Pointer3DRaycaster.MIN_SEGMENT_DISTANCE; + //NextSegment(out direction, out distance); + } + + return true; + } + + private void GetTangentLineIntersectDistance(float tA, float tB, out float dA, out float dB, out Vector3 directionA) + { + if (tA == tB) + { + dA = dB = 0f; + + directionA = (systemY * (accY * tA / v0X) + systemX).normalized; + } + else + { + var vA = new Vector2(v0X * tA, 0.5f * accY * tA * tA); + var vB = new Vector2(v0X * tB, 0.5f * accY * tB * tB); + var mA = accY * tA / v0X; + var mB = accY * tB / v0X; + + // C is intersect point between line through A and line through B + var vC = default(Vector2); + vC.x = (mA * vA.x - mB * vB.x - vA.y + vB.y) / (mA - mB); + vC.y = mA * (vC.x - vA.x) + vA.y; + + dA = (vC - vA).magnitude; + dB = (vC - vB).magnitude; + + directionA = (systemY * mA + systemX).normalized; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..db332c695ebce05dcecf69d6fdb0cb5fa93ec462 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectileGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4da06ab1072a44a419406789d8054158 +timeCreated: 1474859270 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs new file mode 100644 index 0000000000000000000000000000000000000000..8d43d7461355796d734613598d9b30aabc890b18 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs @@ -0,0 +1,36 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class ProjectionGenerator : BaseRaySegmentGenerator + { + public float velocity = 2f; + public Vector3 gravity = Vector3.down; + + private bool isFirstSegment = true; + + public override void ResetSegments() + { + isFirstSegment = true; + } + + public override bool NextSegment(out Vector3 direction, out float distance) + { + if (isFirstSegment && velocity > Pointer3DRaycaster.MIN_SEGMENT_DISTANCE) + { + isFirstSegment = false; + direction = raycaster.transform.forward; + distance = velocity; + } + else + { + direction = gravity; + distance = float.PositiveInfinity; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9edadbc19ebe7f5da979469a92a019aff357ef84 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaySegmentGenerator/ProjectionGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3bbea028ca7f78247810066972fce5f2 +timeCreated: 1474859257 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod.meta new file mode 100644 index 0000000000000000000000000000000000000000..5371f22df26c3b42d4676ca9075630b9a16ed93a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 097cb4e5255e62e44a08ba3005a37418 +folderAsset: yes +timeCreated: 1461911610 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base.meta new file mode 100644 index 0000000000000000000000000000000000000000..734191a27f7ba002f4775e30cdb6fedf9fda7b9c --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 911019a1d990ec34590b7151ee2f3c6f +folderAsset: yes +timeCreated: 1461911620 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..7aea93bdbc32ef39ba1b41b9f06f12f64955f19b --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs @@ -0,0 +1,33 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + [RequireComponent(typeof(Pointer3DRaycaster))] + public abstract class BaseRaycastMethod : MonoBehaviour, IRaycastMethod + { + private Pointer3DRaycaster m_raycaster; + public Pointer3DRaycaster raycaster { get { return m_raycaster; } } + + protected virtual void Start() + { + m_raycaster = GetComponent<Pointer3DRaycaster>(); + if (m_raycaster != null) { m_raycaster.AddRaycastMethod(this); } + } + + protected virtual void OnEnable() { } + + protected virtual void OnDisable() { } + + protected virtual void OnDestroy() + { + if (m_raycaster != null) { raycaster.RemoveRaycastMethod(this); } + m_raycaster = null; + } + + public abstract void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5b304b096bc008a11c4fcc98b9b522ec7261afe1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/BaseRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c066a9805efda9045abe5b8b880e9ad5 +timeCreated: 1461917098 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..938b15ab9b0faf657f0bcad6ae46a0a7de4ba54e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs @@ -0,0 +1,14 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public interface IRaycastMethod + { + bool enabled { get; } + void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2079131f6cb046a45de9205df692232c7d5c0919 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Base/IRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9ee3ffbc38491014db9b91574a6e581e +timeCreated: 1461911628 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..962ef63bcb6c407d6116180f8473ea8d2f7726d7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs @@ -0,0 +1,77 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Pointer3D +{ + [DisallowMultipleComponent] + public class CanvasRaycastMethod : BaseRaycastMethod + { + private static readonly IndexedSet<ICanvasRaycastTarget> canvases = new IndexedSet<ICanvasRaycastTarget>(); + + public static bool AddTarget(ICanvasRaycastTarget obj) { return obj == null ? false : canvases.AddUnique(obj); } + + public static bool RemoveTarget(ICanvasRaycastTarget obj) { return obj == null ? false : canvases.Remove(obj); } + + public override void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults) + { + var tempCanvases = ListPool<ICanvasRaycastTarget>.Get(); + tempCanvases.AddRange(canvases); + for (int i = tempCanvases.Count - 1; i >= 0; --i) + { + var target = tempCanvases[i]; + if (target == null || !target.enabled) { continue; } + Raycast(target.canvas, target.ignoreReversedGraphics, ray, distance, raycaster, raycastResults); + } + ListPool<ICanvasRaycastTarget>.Release(tempCanvases); + } + + public static void Raycast(Canvas canvas, bool ignoreReversedGraphics, Ray ray, float distance, Pointer3DRaycaster raycaster, List<RaycastResult> raycastResults) + { + if (canvas == null) { return; } + + var eventCamera = raycaster.eventCamera; + var screenCenterPoint = Pointer3DInputModule.ScreenCenterPoint; + var graphics = GraphicRegistry.GetGraphicsForCanvas(canvas); + + // Pointer3DRaycaster should set tje eventCamera to correct position + + for (int i = 0; i < graphics.Count; ++i) + { + var graphic = graphics[i]; + + // -1 means it hasn't been processed by the canvas, which means it isn't actually drawn + if (graphic.depth == -1 || !graphic.raycastTarget) { continue; } + + if (!RectTransformUtility.RectangleContainsScreenPoint(graphic.rectTransform, screenCenterPoint, eventCamera)) { continue; } + + if (ignoreReversedGraphics && Vector3.Dot(ray.direction, graphic.transform.forward) <= 0f) { continue; } + + if (!graphic.Raycast(screenCenterPoint, eventCamera)) { continue; } + + //var dist = Vector3.Dot(transForward, trans.position - ray.origin) / Vector3.Dot(transForward, ray.direction); + float dist; + new Plane(graphic.transform.forward, graphic.transform.position).Raycast(ray, out dist); + if (dist > distance) { continue; } + + raycastResults.Add(new RaycastResult + { + gameObject = graphic.gameObject, + module = raycaster, + distance = dist, + worldPosition = ray.GetPoint(dist), + worldNormal = -graphic.transform.forward, + screenPosition = screenCenterPoint, + index = raycastResults.Count, + depth = graphic.depth, + sortingLayer = canvas.sortingLayerID, + sortingOrder = canvas.sortingOrder + }); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4132e94ab9c5993aa09836a1942c64f2fa1be090 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8c3f25a28b4f824f825e53629c17c25 +timeCreated: 1465272748 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs new file mode 100644 index 0000000000000000000000000000000000000000..f0997a19757934de1a514b8ff4845a9fb690eafd --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs @@ -0,0 +1,40 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public interface ICanvasRaycastTarget + { + Canvas canvas { get; } + bool enabled { get; } + bool ignoreReversedGraphics { get; } + } + + [AddComponentMenu("VIU/UI Pointer/Canvas Raycast Target", 6)] + [RequireComponent(typeof(Canvas))] + [DisallowMultipleComponent] + public class CanvasRaycastTarget : UIBehaviour, ICanvasRaycastTarget + { + private Canvas m_canvas; + [SerializeField] + private bool m_IgnoreReversedGraphics = true; + + public virtual Canvas canvas { get { return m_canvas ?? (m_canvas = GetComponent<Canvas>()); } } + + public bool ignoreReversedGraphics { get { return m_IgnoreReversedGraphics; } set { m_IgnoreReversedGraphics = value; } } + + protected override void OnEnable() + { + base.OnEnable(); + CanvasRaycastMethod.AddTarget(this); + } + + protected override void OnDisable() + { + base.OnDisable(); + CanvasRaycastMethod.RemoveTarget(this); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6010e8ccc118a73d714345e276d16497ef0dbff0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/CanvasRaycastTarget.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d518a00ceacb57f4d94b3cc806d60f40 +timeCreated: 1465272771 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..fe960896e94a3683acf185e1d873f0b17131cf3e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs @@ -0,0 +1,32 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class GraphicRaycastMethod : BaseRaycastMethod + { + [SerializeField] + private Canvas m_Canvas; + [SerializeField] + private bool m_IgnoreReversedGraphics = true; + + public Canvas canvas { get { return m_Canvas; } set { m_Canvas = value; } } + public bool ignoreReversedGraphics { get { return m_IgnoreReversedGraphics; } set { m_IgnoreReversedGraphics = value; } } +#if UNITY_EDITOR + protected virtual void Reset() + { + if (m_Canvas == null) + { + m_Canvas = FindObjectOfType<Canvas>(); + } + } +#endif + public override void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults) + { + CanvasRaycastMethod.Raycast(canvas, ignoreReversedGraphics, ray, distance, raycaster, raycastResults); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6ebf0863fc5e5b628aaaa671b8429c718014663a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/GraphicRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8c9420a09e290c841b7b2d06794807bf +timeCreated: 1461917550 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..afc183b6e2e88b8187f8fc62239fca588b47f6a5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs @@ -0,0 +1,36 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class Physics2DRaycastMethod : PhysicsRaycastMethod + { + private static readonly RaycastHit2D[] hits = new RaycastHit2D[64]; + + public override void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults) + { + var hitCount = Physics2D.GetRayIntersectionNonAlloc(ray, hits, distance, RaycastMask); + + for (int i = 0; i < hitCount; ++i) + { + var sr = hits[i].collider.gameObject.GetComponent<SpriteRenderer>(); + + raycastResults.Add(new RaycastResult + { + gameObject = hits[i].collider.gameObject, + module = raycaster, + distance = Vector3.Distance(ray.origin, hits[i].transform.position), + worldPosition = hits[i].point, + worldNormal = hits[i].normal, + screenPosition = Pointer3DInputModule.ScreenCenterPoint, + index = raycastResults.Count, + sortingLayer = sr != null ? sr.sortingLayerID : 0, + sortingOrder = sr != null ? sr.sortingOrder : 0 + }); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..613031e7046664fb51ad976ade24fe66a5c70bb9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/Physics2DRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7ceb8992058aca84bbc9c5ad19fd776f +timeCreated: 1461917582 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs new file mode 100644 index 0000000000000000000000000000000000000000..d6a735aecf59613da636eb4b27d1054cb77ef1f7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs @@ -0,0 +1,51 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class PhysicsRaycastMethod : BaseRaycastMethod + { + public enum MaskTypeEnum + { + Inclusive, + Exclusive, + } + + private static readonly RaycastHit[] hits = new RaycastHit[64]; + + public MaskTypeEnum maskType; + public LayerMask mask; + + public int RaycastMask { get { return maskType == MaskTypeEnum.Inclusive ? (int)mask : ~mask; } } +#if UNITY_EDITOR + protected virtual void Reset() + { + maskType = MaskTypeEnum.Exclusive; + mask = LayerMask.GetMask("Ignore Raycast"); + } +#endif + public override void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults) + { + var hitCount = Physics.RaycastNonAlloc(ray, hits, distance, RaycastMask); + + for (int i = 0; i < hitCount; ++i) + { + raycastResults.Add(new RaycastResult + { + gameObject = hits[i].collider.gameObject, + module = raycaster, + distance = hits[i].distance, + worldPosition = hits[i].point, + worldNormal = hits[i].normal, + screenPosition = Pointer3DInputModule.ScreenCenterPoint, + index = raycastResults.Count, + sortingLayer = 0, + sortingOrder = 0 + }); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3e24149fd458d8ac8a7fd075163d0b58e75e476c --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/RaycastMethod/PhysicsRaycastMethod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f26c248b16aef5b419526eee6ea07d5f +timeCreated: 1461917567 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster.meta b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster.meta new file mode 100644 index 0000000000000000000000000000000000000000..32ca8212735887c23a5efde8e34210ecccd93066 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8ad4559adf204ed47a32d410daf8bfb0 +folderAsset: yes +timeCreated: 1461916588 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base.meta b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5812cdc287f4b0c682de9e8bf47e6dc4af7d460 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 97c62e95d361d8d4d9983038d180f0cd +folderAsset: yes +timeCreated: 1461919387 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..22e8863cc70ba231d7ed74062b0d2d3d7a96c937 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs @@ -0,0 +1,95 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public abstract class BaseFallbackCamRaycaster : BaseMultiMethodRaycaster + { + [NonSerialized] + private bool isDestroying = false; + [NonSerialized] + private Camera fallbackCam; + + [SerializeField] + private float nearDistance = 0f; + [SerializeField] + private float farDistance = 20f; + + public float NearDistance + { + get { return nearDistance; } + set + { + nearDistance = Mathf.Max(0f, value); + if (eventCamera != null) + { + eventCamera.nearClipPlane = nearDistance; + } + } + } + + public float FarDistance + { + get { return farDistance; } + set + { + farDistance = Mathf.Max(0f, nearDistance, value); + if (eventCamera != null) + { + eventCamera.farClipPlane = farDistance; + } + } + } + + public override Camera eventCamera + { + get + { + if (isDestroying) + { + return null; + } + + if (fallbackCam == null) + { + var go = new GameObject(name + " FallbackCamera"); + go.SetActive(false); + // place fallback camera at root to preserve world position + go.transform.SetParent(EventSystem.current.transform, false); + go.transform.localPosition = Vector3.zero; + go.transform.localRotation = Quaternion.identity; + go.transform.localScale = Vector3.one; + + fallbackCam = go.AddComponent<Camera>(); + fallbackCam.clearFlags = CameraClearFlags.Nothing; + fallbackCam.cullingMask = 0; + fallbackCam.orthographic = true; + fallbackCam.orthographicSize = 1; + fallbackCam.useOcclusionCulling = false; +#if !(UNITY_5_3 || UNITY_5_2 || UNITY_5_1 || UNITY_5_0) + fallbackCam.stereoTargetEye = StereoTargetEyeMask.None; +#endif + fallbackCam.nearClipPlane = nearDistance; + fallbackCam.farClipPlane = farDistance; + } + + return fallbackCam; + } + } + + protected override void OnDestroy() + { + base.OnDestroy(); + isDestroying = true; + + if (fallbackCam != null) + { + Destroy(fallbackCam); + fallbackCam = null; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e28134fa4f3faccb4e83e52ba09d004f5e962f42 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseFallbackCamRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f15a9b8586b86c94f8eb2f15d57b479a +timeCreated: 1461911422 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..cfb352df499694ac5edc45c2a08a4f3eb4e77546 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs @@ -0,0 +1,63 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + [DisallowMultipleComponent] + public abstract class BaseMultiMethodRaycaster : BaseRaycaster + { + protected readonly IndexedSet<IRaycastMethod> methods = new IndexedSet<IRaycastMethod>(); +#if UNITY_EDITOR + protected override void Reset() + { + base.Reset(); + if (GetComponent<PhysicsRaycastMethod>() == null) { gameObject.AddComponent<PhysicsRaycastMethod>(); } + if (GetComponent<CanvasRaycastMethod>() == null) { gameObject.AddComponent<CanvasRaycastMethod>(); } + } +#endif + public void AddRaycastMethod(IRaycastMethod obj) + { + methods.AddUnique(obj); + } + + public void RemoveRaycastMethod(IRaycastMethod obj) + { + methods.Remove(obj); + } + + protected void ForeachRaycastMethods(Ray ray, float distance, List<RaycastResult> resultAppendList) + { + var results = ListPool<RaycastResult>.Get(); + + for (int i = methods.Count - 1; i >= 0; --i) + { + var method = methods[i]; + if (!method.enabled) { continue; } + method.Raycast(ray, distance, results); + } + + var comparer = GetRaycasterResultComparer(); + if (comparer != null) + { + results.Sort(comparer); + } + + for (int i = 0, imax = results.Count; i < imax; ++i) + { + resultAppendList.Add(results[i]); + } + + ListPool<RaycastResult>.Release(results); + } + + protected virtual Comparison<RaycastResult> GetRaycasterResultComparer() + { + return Pointer3DInputModule.defaultRaycastComparer; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..62c336b2ca91c161ed24e8e5d82b2f3d15e1d21b --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Base/BaseMultiMethodRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ac3e7e60e114984485e02a25f08dc83 +timeCreated: 1461916665 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..4f3aac359a4ecd2f6e35815ca07a30d5780337ad --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs @@ -0,0 +1,409 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public enum RaycastMode + { + DefaultRaycast, + Projection, + Projectile, + } + + // Contains and handles Pointer3DEventDatas, derived class should implement their own Pointer3DEventData + // and add into buttonEventDataList, Pointer3DInputModule then will send eventData to the raycast target. + public class Pointer3DRaycaster : BaseFallbackCamRaycaster + { + public const float MIN_SEGMENT_DISTANCE = 0.01f; + + private ReadOnlyCollection<Pointer3DEventData> buttonEventDataListReadOnly; + private ReadOnlyCollection<RaycastResult> sortedRaycastResultsReadOnly; + private ReadOnlyCollection<Vector3> breakPointsReadOnly; + + protected readonly List<Pointer3DEventData> buttonEventDataList = new List<Pointer3DEventData>(); + protected readonly List<RaycastResult> sortedRaycastResults = new List<RaycastResult>(); + protected readonly List<Vector3> breakPoints = new List<Vector3>(); + + public float dragThreshold = 0.02f; + public float clickInterval = 0.3f; + + public bool showDebugRay = true; + + public Pointer3DEventData HoverEventData { get { return buttonEventDataList.Count > 0 ? buttonEventDataList[0] : null; } } + + public ReadOnlyCollection<Pointer3DEventData> ButtonEventDataList + { + get { return buttonEventDataListReadOnly ?? (buttonEventDataListReadOnly = buttonEventDataList.AsReadOnly()); } + } + + public ReadOnlyCollection<RaycastResult> SortedRaycastResults + { + get { return sortedRaycastResultsReadOnly ?? (sortedRaycastResultsReadOnly = sortedRaycastResults.AsReadOnly()); } + } + + public ReadOnlyCollection<Vector3> BreakPoints + { + get { return breakPointsReadOnly ?? (breakPointsReadOnly = breakPoints.AsReadOnly()); } + } + + public virtual Vector2 GetScrollDelta() + { + return Vector2.zero; + } +#if UNITY_EDITOR + protected override void OnValidate() + { + base.OnValidate(); + + // auto create RaySegmentGenerator if raycast mode is set when using previous version + // and reset to DefaultRaycast since raycastMode is obsoleted + if (m_raycastMode != RaycastMode.DefaultRaycast) + { + if (Application.isPlaying) + { + SetLagacyRaycastMode(m_raycastMode); + m_raycastMode = RaycastMode.DefaultRaycast; + } + else + { + // force saving changes of raycastMode + // use delayCall because sometimes scene is not loaded and can't be marked dirty at this time + UnityEditor.EditorApplication.delayCall += new UnityEditor.EditorApplication.CallbackFunction(() => + { + Debug.LogWarning("The RaycastMode." + m_raycastMode + " setting has been replaced by adding " + (m_raycastMode == RaycastMode.Projection ? "ProjectionGenerator" : "ProjectileGenerator") + + " component. Please save the scene to preserve this changes."); + SetLagacyRaycastMode(m_raycastMode); + m_raycastMode = RaycastMode.DefaultRaycast; + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(gameObject.scene); + UnityEditor.EditorUtility.SetDirty(this); + }); + } + } + } +#endif + protected override void Start() + { + base.Start(); + + if (m_raycastMode != RaycastMode.DefaultRaycast) + { + SetLagacyRaycastMode(m_raycastMode); + m_raycastMode = RaycastMode.DefaultRaycast; + } + } + + // override OnEnable & OnDisable on purpose so that this BaseRaycaster won't be registered into RaycasterManager + protected override void OnEnable() + { + //base.OnEnable(); + Pointer3DInputModule.AddRaycaster(this); + } + + protected override void OnDisable() + { + //base.OnDisable(); + Pointer3DInputModule.RemoveRaycaster(this); + } + + public virtual void CleanUpRaycast() + { + sortedRaycastResults.Clear(); + breakPoints.Clear(); + } + + // invoke by Pointer3DInputModule + public virtual void Raycast() + { + sortedRaycastResults.Clear(); + breakPoints.Clear(); + + var zScale = transform.lossyScale.z; + var amountDistance = (FarDistance - NearDistance) * zScale; + var origin = transform.TransformPoint(0f, 0f, NearDistance); + + breakPoints.Add(origin); + + bool hasNext = true; + Vector3 direction; + float distance; + Ray ray; + RaycastResult firstHit = default(RaycastResult); + + var generator = CurrentSegmentGenerator(); + if (ReferenceEquals(generator, null)) + { + // process default raycast + + direction = transform.forward; + distance = amountDistance; + ray = new Ray(origin, direction); + + // move event camera in place + eventCamera.farClipPlane = eventCamera.nearClipPlane + distance; + eventCamera.transform.position = ray.origin - (ray.direction * eventCamera.nearClipPlane); + eventCamera.transform.rotation = Quaternion.LookRotation(ray.direction, transform.up); + + ForeachRaycastMethods(ray, distance, sortedRaycastResults); + + firstHit = FirstRaycastResult(); + breakPoints.Add(firstHit.isValid ? firstHit.worldPosition : ray.GetPoint(distance)); +#if UNITY_EDITOR + if (showDebugRay) + { + Debug.DrawLine(breakPoints[0], breakPoints[1], firstHit.isValid ? Color.green : Color.red); + } +#endif + } + else + { + generator.ResetSegments(); + + do + { + hasNext = generator.NextSegment(out direction, out distance); + + if (distance < MIN_SEGMENT_DISTANCE) + { + Debug.LogWarning("RaySegment.distance cannot smaller than " + MIN_SEGMENT_DISTANCE + "! distance=" + distance.ToString("0.000")); + break; + } + + distance *= zScale; + + if (distance < amountDistance) + { + amountDistance -= distance; + } + else + { + distance = amountDistance; + amountDistance = 0f; + } + + ray = new Ray(origin, direction); + + // move event camera in place + eventCamera.farClipPlane = eventCamera.nearClipPlane + distance; + eventCamera.transform.position = ray.origin - (ray.direction * eventCamera.nearClipPlane); + eventCamera.transform.rotation = Quaternion.LookRotation(ray.direction, transform.up); + + ForeachRaycastMethods(ray, distance, sortedRaycastResults); + + firstHit = FirstRaycastResult(); + // end loop if raycast hit + if (firstHit.isValid) + { + breakPoints.Add(firstHit.worldPosition); +#if UNITY_EDITOR + if (showDebugRay) + { + Debug.DrawLine(breakPoints[breakPoints.Count - 2], breakPoints[breakPoints.Count - 1], Color.green); + } +#endif + break; + } + // otherwise, shift to next iteration + origin = ray.GetPoint(distance); + breakPoints.Add(origin); +#if UNITY_EDITOR + if (showDebugRay) + { + Debug.DrawLine(breakPoints[breakPoints.Count - 2], breakPoints[breakPoints.Count - 1], Color.red); + } +#endif + } + while (hasNext && amountDistance > 0f); + } + } + // called by StandaloneInputModule, not supported + public override void Raycast(PointerEventData eventData, List<RaycastResult> resultAppendList) { } + + public RaycastResult FirstRaycastResult() + { + for (int i = 0, imax = sortedRaycastResults.Count; i < imax; ++i) + { + if (!sortedRaycastResults[i].isValid) { continue; } + return sortedRaycastResults[i]; + } + return default(RaycastResult); + } + + #region managing segment generators + private IndexedSet<IRaySegmentGenerator> generators = new IndexedSet<IRaySegmentGenerator>(); + + public void AddGenerator(IRaySegmentGenerator generator) + { + generators.AddUnique(generator); + } + + public void RemoveGenerator(IRaySegmentGenerator generator) + { + generators.Remove(generator); + } + + // returns first enabled generator in generators, doesn't gaurantee any orders + public IRaySegmentGenerator CurrentSegmentGenerator() + { + for (int i = 0, imax = generators.Count; i < imax; ++i) + { + if (generators[i].enabled) { return generators[i]; } + } + return null; + } + + // enable or create TGenerator, disable others + public TGenerator ForceEnableSegmentGenerator<TGenerator>() where TGenerator : MonoBehaviour, IRaySegmentGenerator + { + var gen = default(TGenerator); + var genFound = false; + + var gens = ListPool<IRaySegmentGenerator>.Get(); + GetComponents(gens); + for (int i = 0, imax = gens.Count; i < imax; ++i) + { + if (genFound || !(gens[i] is TGenerator)) + { + gens[i].enabled = false; + } + else + { + gens[i].enabled = true; + gen = gens[i] as TGenerator; + genFound = true; + } + } + ListPool<IRaySegmentGenerator>.Release(gens); + + if (!genFound) + { + gen = gameObject.AddComponent<TGenerator>(); + } + + return gen; + } + + public void ForceDisableSegmentGenerators() + { + var gens = ListPool<IRaySegmentGenerator>.Get(); + GetComponents(gens); + for (int i = 0, imax = gens.Count; i < imax; ++i) + { + gens[i].enabled = false; + } + ListPool<IRaySegmentGenerator>.Release(gens); + } + #endregion + + #region obsolete interfaces + [HideInInspector] + [SerializeField] + private RaycastMode m_raycastMode = RaycastMode.DefaultRaycast; + [HideInInspector] + [SerializeField] + private float m_velocity = 2f; + [HideInInspector] + [SerializeField] + private Vector3 m_gravity = Vector3.down; + + [Obsolete("Please use component ProjectionGenerator / ProjectileGenerator")] + public RaycastMode raycastMode + { + get { return m_raycastMode; } + set + { + m_raycastMode = value; + SetLagacyRaycastMode(value); + } + } + + [Obsolete("Please use ProjectionGenerator.velocity / ProjectileGenerator.velocity")] + public float velocity + { + get { return m_velocity; } + set + { + m_velocity = value; + var gen = CurrentSegmentGenerator(); + if (gen != null) + { + if (gen is ProjectionGenerator) { ((ProjectionGenerator)gen).velocity = value; } + else if (gen is ProjectileGenerator) { ((ProjectileGenerator)gen).velocity = value; } + } + } + } + + [Obsolete("Please use ProjectionGenerator.gravity / ProjectileGenerator.gravity")] + public Vector3 gravity + { + get { return m_gravity; } + set + { + m_gravity = value; + var gen = CurrentSegmentGenerator(); + if (gen != null) + { + if (gen is ProjectionGenerator) { ((ProjectionGenerator)gen).gravity = value; } + else if (gen is ProjectileGenerator) { ((ProjectileGenerator)gen).gravity = value; } + } + } + } + + [Obsolete("Please use component ProjectionGenerator / ProjectileGenerator")] + protected virtual void InitSegmentGenerator() { } + + // for backward compatible + private void SetLagacyRaycastMode(RaycastMode mode) + { + switch (mode) + { + case RaycastMode.Projection: + { + var gen = ForceEnableSegmentGenerator<ProjectionGenerator>(); + gen.velocity = m_velocity; + gen.gravity = m_gravity; + break; + } + case RaycastMode.Projectile: + { + var gen = ForceEnableSegmentGenerator<ProjectileGenerator>(); + gen.velocity = m_velocity; + gen.gravity = m_gravity; + break; + } + default: + { + ForceDisableSegmentGenerators(); + break; + } + } + } + #endregion + + public override string ToString() + { + var str = string.Empty; + str += "Raycaster path: " + Pointer3DInputModule.PrintGOPath(gameObject) + "(" + GetType().Name + ")\n"; + str += "Raycaster transform: " + "pos" + transform.position.ToString("0.00") + " " + "rot" + transform.eulerAngles.ToString("0.0") + "\n"; + + for (int i = 0, imax = buttonEventDataList.Count; i < imax; ++i) + { + var eventData = buttonEventDataList[i]; + if (eventData == null) { continue; } + + if (eventData.eligibleForClick || (i == 0 && eventData.pointerEnter != null)) // is hover event? + { + str += "<b>EventData: [" + i + "]</b>\n"; + str += eventData.ToString(); + } + } + + return str; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..552a5239d03c45ea9099ae2a972681e9c25ed4d3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/Raycaster/Pointer3DRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9f9c5828c37d1954b9fb9d3bb29dd8d4 +timeCreated: 1461898413 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster.meta b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster.meta new file mode 100644 index 0000000000000000000000000000000000000000..efa45860c1f94f08bff155930de852663d24d1f8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c01cb0006e7beea4c8a2f0ce04b0b6ae +folderAsset: yes +timeCreated: 1461918158 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs new file mode 100644 index 0000000000000000000000000000000000000000..a23fa158fb91939843243ee0730e2493f260991f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs @@ -0,0 +1,70 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + public class StandaloneEventData : Pointer3DEventData + { + public enum StandaloneButton + { + Fire1, + Fire2, + Fire3, + MouseLeft, + MouseMiddle, + MouseRight, + } + + public readonly StandaloneButton standaloneButton; + + public StandaloneEventData(Pointer3DRaycaster ownerRaycaster, EventSystem eventSystem, StandaloneButton sbtn, InputButton ibtn) : base(ownerRaycaster, eventSystem) + { + standaloneButton = sbtn; + button = ibtn; + } + + public override bool GetPress() + { + switch (standaloneButton) + { + case StandaloneButton.Fire1: return Input.GetButton("Fire1"); + case StandaloneButton.Fire2: return Input.GetButton("Fire2"); + case StandaloneButton.Fire3: return Input.GetButton("Fire3"); + case StandaloneButton.MouseLeft: return Input.GetMouseButton(0); + case StandaloneButton.MouseRight: return Input.GetMouseButton(1); + case StandaloneButton.MouseMiddle: return Input.GetMouseButton(2); + } + return false; + } + + public override bool GetPressDown() + { + switch (standaloneButton) + { + case StandaloneButton.Fire1: return Input.GetButtonDown("Fire1"); + case StandaloneButton.Fire2: return Input.GetButtonDown("Fire2"); + case StandaloneButton.Fire3: return Input.GetButtonDown("Fire3"); + case StandaloneButton.MouseLeft: return Input.GetMouseButtonDown(0); + case StandaloneButton.MouseRight: return Input.GetMouseButtonDown(1); + case StandaloneButton.MouseMiddle: return Input.GetMouseButtonDown(2); + } + return false; + } + + public override bool GetPressUp() + { + switch (standaloneButton) + { + case StandaloneButton.Fire1: return Input.GetButtonUp("Fire1"); + case StandaloneButton.Fire2: return Input.GetButtonUp("Fire2"); + case StandaloneButton.Fire3: return Input.GetButtonUp("Fire3"); + case StandaloneButton.MouseLeft: return Input.GetMouseButtonUp(0); + case StandaloneButton.MouseRight: return Input.GetMouseButtonUp(1); + case StandaloneButton.MouseMiddle: return Input.GetMouseButtonUp(2); + } + return false; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5873d818a5eb1d089538ad019a6641213c1e12e8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneEventData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c5cd07a7e01a17748a407247b3e6e63b +timeCreated: 1461918194 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..603934bee7ab82dfdac68687461eb6bbbea09b97 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs @@ -0,0 +1,27 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Pointer3D +{ + [AddComponentMenu("VIU/UI Pointer/Standalone Raycaster (Standalone Input)", 5)] + public class StandaloneRaycaster : Pointer3DRaycaster + { + protected override void Start() + { + base.Start(); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.Fire1, PointerEventData.InputButton.Left)); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.Fire2, PointerEventData.InputButton.Middle)); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.Fire3, PointerEventData.InputButton.Right)); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.MouseLeft, PointerEventData.InputButton.Left)); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.MouseMiddle, PointerEventData.InputButton.Middle)); + buttonEventDataList.Add(new StandaloneEventData(this, EventSystem.current, StandaloneEventData.StandaloneButton.MouseRight, PointerEventData.InputButton.Right)); + } + + public override Vector2 GetScrollDelta() + { + return Input.mouseScrollDelta; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs.meta b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b180db40e033a7f0f57315c10cc4e35e48ab87ed --- /dev/null +++ b/Assets/HTC.UnityPlugin/Pointer3D/StandaloneRaycaster/StandaloneRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1431a138d57828a4dbd0673ce9cf7d1c +timeCreated: 1461918182 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker.meta b/Assets/HTC.UnityPlugin/PoseTracker.meta new file mode 100644 index 0000000000000000000000000000000000000000..25f39dac4b6f5c0154493493beda56c60d6d3807 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bcc831bb3ede4e649825af2b8aa84445 +folderAsset: yes +timeCreated: 1466067391 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base.meta b/Assets/HTC.UnityPlugin/PoseTracker/Base.meta new file mode 100644 index 0000000000000000000000000000000000000000..a8b941eba44949ddb69f8f6bb17bc1f96ced4d11 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c53c7e9344d670c43ab1dd54ca6163b2 +folderAsset: yes +timeCreated: 1461569570 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs new file mode 100644 index 0000000000000000000000000000000000000000..c4b67464ce9ae09f1f83d9d864acd10314cc312a --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs @@ -0,0 +1,59 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + [RequireComponent(typeof(BasePoseTracker))] + public abstract class BasePoseModifier : MonoBehaviour, IPoseModifier + { + [SerializeField] + private int m_priority; + + public BasePoseTracker baseTracker { get; protected set; } + + public virtual int priority + { + get { return m_priority; } + set + { + if (m_priority != value) + { + m_priority = value; + // let tracker refresh order + if (baseTracker.RemoveModifier(this)) + { + baseTracker.AddModifier(this); + } + }; + } + } +#if UNITY_EDITOR + protected virtual void OnValidate() + { + priority = m_priority; + } +#endif + protected virtual void Awake() + { + baseTracker = GetComponent<BasePoseTracker>(); + baseTracker.AddModifier(this); + } + + protected virtual void OnEnable() { } + + protected virtual void OnDisable() { } + + protected virtual void OnDestroy() + { + baseTracker.RemoveModifier(this); + } + + [Obsolete] + public virtual void ModifyPose(ref Pose pose, Transform origin) { } + + public virtual void ModifyPose(ref RigidPose pose, Transform origin) { } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4fc4da0f7eb835da1b7320f07f46c52c3b69378a --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseModifier.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e409dd2a7f3fb54395fe167509d5596 +timeCreated: 1461224506 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs new file mode 100644 index 0000000000000000000000000000000000000000..6199f208eb46d0395c8d44a8aa011359cb5f2232 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs @@ -0,0 +1,83 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public abstract class BasePoseTracker : MonoBehaviour, IPoseTracker + { + public Vector3 posOffset; + public Vector3 rotOffset; + + private OrderedIndexedSet<IPoseModifier> modifierSet; + + public void AddModifier(IPoseModifier obj) + { + if (obj == null) { return; } + + if (modifierSet == null) + { + modifierSet = new OrderedIndexedSet<IPoseModifier>(); + modifierSet.Add(obj); + } + else if (!modifierSet.Contains(obj)) + { + // insert obj with right priority order + if (obj.priority > modifierSet[modifierSet.Count - 1].priority) + { + modifierSet.Add(obj); + } + else + { + for (int i = 0, imax = modifierSet.Count; i < imax; ++i) + { + if (obj.priority <= modifierSet[i].priority) + { + modifierSet.Insert(i, obj); + break; + } + } + } + } + } + + public bool RemoveModifier(IPoseModifier obj) + { + return modifierSet == null ? false : modifierSet.Remove(obj); + } + + [Obsolete] + protected void TrackPose(Pose pose, Transform origin = null) + { + TrackPose((RigidPose)pose, origin); + } + + protected void TrackPose(RigidPose pose, Transform origin = null) + { + pose = pose * new RigidPose(posOffset, Quaternion.Euler(rotOffset)); + ModifyPose(ref pose, origin); + RigidPose.SetPose(transform, pose, origin); + } + + [Obsolete] + protected void ModifyPose(ref Pose pose, Transform origin) + { + var rigidPose = (RigidPose)pose; + ModifyPose(ref rigidPose, origin); + pose = rigidPose; + } + + protected void ModifyPose(ref RigidPose pose, Transform origin) + { + if (modifierSet == null) { return; } + + for (int i = 0, imax = modifierSet.Count; i < imax; ++i) + { + if (!modifierSet[i].enabled) { continue; } + modifierSet[i].ModifyPose(ref pose, origin); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..99795a965dcfa6b049bc44ac8e9c967963e23f2c --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/BasePoseTracker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 504afcc250536544783532c6917db893 +timeCreated: 1466067490 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs new file mode 100644 index 0000000000000000000000000000000000000000..34aa1828f235ec4bf4dc38dff9c446043a744a94 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs @@ -0,0 +1,17 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public interface IPoseModifier + { + bool enabled { get; } + int priority { get; set; } + [Obsolete] + void ModifyPose(ref Pose pose, Transform origin); + void ModifyPose(ref RigidPose pose, Transform origin); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..94a1e71ce3556153f5f8e8708ff9532279fe3b3c --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseModifier.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fce4b6465cea4cf48907cbc80c24008b +timeCreated: 1458283568 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs new file mode 100644 index 0000000000000000000000000000000000000000..9dea2933abe835ad9570d48f46ca81f431ee308d --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs @@ -0,0 +1,10 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +namespace HTC.UnityPlugin.PoseTracker +{ + public interface IPoseTracker + { + void AddModifier(IPoseModifier obj); + bool RemoveModifier(IPoseModifier obj); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0f79a6c0b932524980d3d9f4a99e218f31f893dd --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Base/IPoseTracker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 479fafe862ba83c45a3ff14e2e2475a7 +timeCreated: 1466067542 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor.meta b/Assets/HTC.UnityPlugin/PoseTracker/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..366cc598309273f5c25892e09f5efe6ab2356005 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0867b4e12edb80e4287b7431eca152a4 +folderAsset: yes +timeCreated: 1465973645 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..d0fa8456cf267350043f9415132898b2a959b058 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8a09112b28a3f254f9f4b7b4bce36848 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..467b8ef68d09fd000e310b2cf7e9c4ce8fe6c5aa --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs @@ -0,0 +1,88 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + [CustomEditor(typeof(PoseEaser))] + public class PoseEaserEditor : Editor + { + protected SerializedProperty scriptProp; + protected SerializedProperty priorityProp; + protected SerializedProperty durationProp; + + protected virtual void OnEnable() + { + if (target == null || serializedObject == null) return; + + scriptProp = serializedObject.FindProperty("m_Script"); + priorityProp = serializedObject.FindProperty("m_priority"); + durationProp = serializedObject.FindProperty("duration"); + } + + public override void OnInspectorGUI() + { + if (target == null || serializedObject == null) return; + + serializedObject.Update(); + + var script = target as PoseEaser; + Rect layoutRect; + + GUI.enabled = false; + EditorGUILayout.PropertyField(scriptProp); + GUI.enabled = true; + + EditorGUI.BeginChangeCheck(); + + EditorGUILayout.PropertyField(priorityProp); + EditorGUILayout.PropertyField(durationProp); + + var fieldWidth = (EditorGUIUtility.currentViewWidth - EditorGUIUtility.labelWidth) / 3f; + + // ease position + layoutRect = EditorGUILayout.GetControlRect(); + + layoutRect.width = EditorGUIUtility.labelWidth; + EditorGUI.LabelField(layoutRect, "Ease Position"); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easePositionX = EditorGUI.ToggleLeft(layoutRect, "X", script.easePositionX); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easePositionY = EditorGUI.ToggleLeft(layoutRect, "Y", script.easePositionY); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easePositionZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.easePositionZ); + + // ease rotation + layoutRect = EditorGUILayout.GetControlRect(); + + layoutRect.width = EditorGUIUtility.labelWidth; + EditorGUI.LabelField(layoutRect, "Ease Rotation"); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easeRotationX = EditorGUI.ToggleLeft(layoutRect, "X", script.easeRotationX); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easeRotationY = EditorGUI.ToggleLeft(layoutRect, "Y", script.easeRotationY); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.easeRotationZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.easeRotationZ); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Pose Easer Changed"); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a5dea8ee71bc2f900d576b1526244fab2e419d14 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseEaserEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ca9c1e6a0b47180478d395f5081879f4 +timeCreated: 1467105922 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..cdcc293a3dd10255fae7a3f8ad1087252643df81 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs @@ -0,0 +1,85 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + [CustomEditor(typeof(PoseFreezer))] + public class PoseFreezerEditor : Editor + { + protected SerializedProperty scriptProp; + protected SerializedProperty priorityProp; + + protected virtual void OnEnable() + { + if (target == null || serializedObject == null) return; + + scriptProp = serializedObject.FindProperty("m_Script"); + priorityProp = serializedObject.FindProperty("m_priority"); + } + + public override void OnInspectorGUI() + { + if (target == null || serializedObject == null) return; + + serializedObject.Update(); + + var script = target as PoseFreezer; + Rect layoutRect; + + GUI.enabled = false; + EditorGUILayout.PropertyField(scriptProp); + GUI.enabled = true; + + EditorGUI.BeginChangeCheck(); + + EditorGUILayout.PropertyField(priorityProp); + + var fieldWidth = (EditorGUIUtility.currentViewWidth - EditorGUIUtility.labelWidth) / 3f; + + // freeze position + layoutRect = EditorGUILayout.GetControlRect(); + + layoutRect.width = EditorGUIUtility.labelWidth; + EditorGUI.LabelField(layoutRect, "Freeze Position"); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezePositionX = EditorGUI.ToggleLeft(layoutRect, "X", script.freezePositionX); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezePositionY = EditorGUI.ToggleLeft(layoutRect, "Y", script.freezePositionY); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezePositionZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.freezePositionZ); + + // freeze rotation + layoutRect = EditorGUILayout.GetControlRect(); + + layoutRect.width = EditorGUIUtility.labelWidth; + EditorGUI.LabelField(layoutRect, "Freeze Rotation"); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezeRotationX = EditorGUI.ToggleLeft(layoutRect, "X", script.freezeRotationX); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezeRotationY = EditorGUI.ToggleLeft(layoutRect, "Y", script.freezeRotationY); + layoutRect.x += layoutRect.width; + + layoutRect.width = fieldWidth; + script.freezeRotationZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.freezeRotationZ); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Pose Freezer Changed"); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c78bb31164408e537cd1fbd0e39d5571a1e6ff50 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Editor/PoseFreezerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ce3bb4f3ff68da14bbc4ad2cc60f74ad +timeCreated: 1465973658 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs b/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs new file mode 100644 index 0000000000000000000000000000000000000000..8efba6e15326f1aebeced5d9d1f9368d1105ae9b --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs @@ -0,0 +1,218 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + /// <summary> + /// Describe a pose by position and rotation + /// </summary> + [Obsolete("Use HTC.UnityPlugin.Utility.RigidPose instead")] + [Serializable] + public struct Pose + { + public Vector3 pos; + public Quaternion rot; + + public static Pose identity + { + get { return new Pose(Vector3.zero, Quaternion.identity); } + } + + public Pose(Vector3 pos, Quaternion rot) + { + this.pos = pos; + this.rot = rot; + } + + public Pose(Transform t, bool useLocal = false) + { + if (t == null) + { + pos = Vector3.zero; + rot = Quaternion.identity; + } + else if (!useLocal) + { + pos = t.position; + rot = t.rotation; + } + else + { + pos = t.localPosition; + rot = t.localRotation; + } + } + + public override bool Equals(object o) + { + if (o is Pose) + { + Pose t = (Pose)o; + return pos == t.pos && rot == t.rot; + } + return false; + } + + public override int GetHashCode() + { + return pos.GetHashCode() ^ rot.GetHashCode(); + } + + public static bool operator ==(Pose a, Pose b) + { + return + a.pos.x == b.pos.x && + a.pos.y == b.pos.y && + a.pos.z == b.pos.z && + a.rot.x == b.rot.x && + a.rot.y == b.rot.y && + a.rot.z == b.rot.z && + a.rot.w == b.rot.w; + } + + public static bool operator !=(Pose a, Pose b) + { + return !(a == b); + } + + public static Pose operator *(Pose a, Pose b) + { + return new Pose + { + rot = a.rot * b.rot, + pos = a.pos + a.rot * b.pos + }; + } + + public void Multiply(Pose a, Pose b) + { + rot = a.rot * b.rot; + pos = a.pos + a.rot * b.pos; + } + + public void Inverse() + { + rot = Quaternion.Inverse(rot); + pos = -(rot * pos); + } + + public Pose GetInverse() + { + var t = new Pose(pos, rot); + t.Inverse(); + return t; + } + + public Vector3 InverseTransformPoint(Vector3 point) + { + return Quaternion.Inverse(rot) * (point - pos); + } + + public Vector3 TransformPoint(Vector3 point) + { + return pos + (rot * point); + } + + public static Pose Lerp(Pose a, Pose b, float t) + { + return new Pose(Vector3.Lerp(a.pos, b.pos, t), Quaternion.Slerp(a.rot, b.rot, t)); + } + + public void Lerp(Pose to, float t) + { + pos = Vector3.Lerp(pos, to.pos, t); + rot = Quaternion.Slerp(rot, to.rot, t); + } + + public static Pose LerpUnclamped(Pose a, Pose b, float t) + { + return new Pose(Vector3.LerpUnclamped(a.pos, b.pos, t), Quaternion.SlerpUnclamped(a.rot, b.rot, t)); + } + + public void LerpUnclamped(Pose to, float t) + { + pos = Vector3.LerpUnclamped(pos, to.pos, t); + rot = Quaternion.SlerpUnclamped(rot, to.rot, t); + } + + public static void SetPose(Transform target, Pose pose, Transform origin = null) + { + if (origin != null && origin != target.parent) + { + pose = new Pose(origin) * pose; + pose.pos.Scale(origin.localScale); + target.position = pose.pos; + target.rotation = pose.rot; + } + else + { + target.localPosition = pose.pos; + target.localRotation = pose.rot; + } + } + + // proper following duration is larger then 0.02 second, depends on the update rate + public static void SetRigidbodyVelocity(Rigidbody rigidbody, Vector3 from, Vector3 to, float duration) + { + var diffPos = to - from; + if (Mathf.Approximately(diffPos.sqrMagnitude, 0f)) + { + rigidbody.velocity = Vector3.zero; + } + else + { + rigidbody.velocity = diffPos / duration; + } + } + + // proper folloing duration is larger then 0.02 second, depends on the update rate + public static void SetRigidbodyAngularVelocity(Rigidbody rigidbody, Quaternion from, Quaternion to, float duration, bool overrideMaxAngularVelocity = true) + { + float angle; + Vector3 axis; + var fromToRot = to * Quaternion.Inverse(from); + fromToRot.ToAngleAxis(out angle, out axis); + while (angle > 180f) { angle -= 360f; } + + if (Mathf.Approximately(angle, 0f) || float.IsNaN(axis.x) || float.IsNaN(axis.y) || float.IsNaN(axis.z)) + { + rigidbody.angularVelocity = Vector3.zero; + } + else + { + angle *= Mathf.Deg2Rad / duration; // convert to radius speed + if (overrideMaxAngularVelocity && rigidbody.maxAngularVelocity < angle) { rigidbody.maxAngularVelocity = angle; } + rigidbody.angularVelocity = axis * angle; + } + } + + public static Pose FromToPose(Pose from, Pose to) + { + var invRot = Quaternion.Inverse(from.rot); + return new Pose(invRot * (to.pos - from.pos), invRot * to.rot); + } + + public static implicit operator RigidPose(Pose v) + { + return new RigidPose(v.pos, v.rot); + } + + public static implicit operator Pose(RigidPose v) + { + return new Pose(v.pos, v.rot); + } + + public override string ToString() + { + return "p" + pos.ToString() + "r" + rot.ToString(); + } + + public string ToString(string format) + { + return "p" + pos.ToString(format) + "r" + rot.ToString(format); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..11b44c391e8825605b54ffc9307155e204c8d1a5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/Pose.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3339ad5d500ae594c8b7aedab91f914b +timeCreated: 1466070519 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers.meta b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers.meta new file mode 100644 index 0000000000000000000000000000000000000000..b68ffa449788aeb8d26fb95fbefdd18c6eb11900 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3dc62838995407f4bb6d300e9c6a1b0a +folderAsset: yes +timeCreated: 1458283992 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs new file mode 100644 index 0000000000000000000000000000000000000000..12a7e708d2b0c564884a4e4fd0ff76c4d43562ac --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs @@ -0,0 +1,79 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public class PoseEaser : BasePoseModifier + { + // similar to equation y=1-(0.01^x) where 0<x<1 + private static AnimationCurve curve = new AnimationCurve(new Keyframe[] { + new Keyframe(0f, 0f, 4.203674f, 4.203674f), + new Keyframe(0.202865f, 0.5948543f, 1.790932f, 1.790932f), + new Keyframe(0.3988017f, 0.8385032f, 0.8143054f, 0.8143054f), + new Keyframe(1f, 0.99f, 0f, 0f), + }); + + public float duration = 0.15f; + + private bool firstPose = true; + private RigidPose prevPose; + + public bool easePositionX = true; + public bool easePositionY = true; + public bool easePositionZ = true; + + public bool easeRotationX = true; + public bool easeRotationY = true; + public bool easeRotationZ = true; + + protected override void OnEnable() + { + base.OnEnable(); + ResetFirstPose(); + } + + public override void ModifyPose(ref RigidPose pose, Transform origin) + { + if (firstPose) + { + firstPose = false; + } + else + { + var deltaTime = Time.unscaledDeltaTime; + if (deltaTime < duration) + { + var easedPose = RigidPose.Lerp(prevPose, pose, curve.Evaluate(deltaTime / duration)); + + if (!easePositionX || !easePositionY || !easePositionZ) + { + var originPos = pose.pos; + var easedPos = easedPose.pos; + if (!easePositionX) { easedPos.x = originPos.x; } + if (!easePositionY) { easedPos.y = originPos.y; } + if (!easePositionZ) { easedPos.z = originPos.z; } + easedPose.pos = easedPos; + } + + if (!easeRotationX || !easeRotationY || !easeRotationZ) + { + var originEuler = pose.rot.eulerAngles; + var easedEuler = easedPose.rot.eulerAngles; + if (!easeRotationX) { easedEuler.x = originEuler.x; } + if (!easeRotationY) { easedEuler.y = originEuler.y; } + if (!easeRotationZ) { easedEuler.z = originEuler.z; } + easedPose.rot = Quaternion.Euler(easedEuler); + } + + pose = easedPose; + } + } + + prevPose = pose; + } + + public void ResetFirstPose() { firstPose = true; } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7919420dc2462d6e0a21b964acb18cf627bdb40f --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseEaser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b94db5e6392a8004a8880d13e66933ff +timeCreated: 1458290538 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b2fd4fc5b9789a5ccfda09ec8553282252e1de9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs @@ -0,0 +1,58 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public class PoseFreezer : BasePoseModifier + { + public bool freezePositionX = false; + public bool freezePositionY = false; + public bool freezePositionZ = false; + + public bool freezeRotationX = true; + public bool freezeRotationY = false; + public bool freezeRotationZ = true; + + public override void ModifyPose(ref RigidPose pose, Transform origin) + { + Vector3 freezePos; + Vector3 freezeEuler; + + if (freezePositionX || freezePositionY || freezePositionZ) + { + if (origin != null && origin != transform.parent) + { + freezePos = origin.InverseTransformPoint(transform.position); + } + else + { + freezePos = transform.localPosition; + } + + if (freezePositionX) { pose.pos.x = freezePos.x; } + if (freezePositionY) { pose.pos.y = freezePos.y; } + if (freezePositionZ) { pose.pos.z = freezePos.z; } + } + + if (freezeRotationX || freezeRotationY || freezeRotationZ) + { + if (origin != null && origin != transform.parent) + { + freezeEuler = (Quaternion.Inverse(origin.rotation) * transform.rotation).eulerAngles; + } + else + { + freezeEuler = transform.localEulerAngles; + } + + var poseEuler = pose.rot.eulerAngles; + if (freezeRotationX) { poseEuler.x = freezeEuler.x; } + if (freezeRotationY) { poseEuler.y = freezeEuler.y; } + if (freezeRotationZ) { poseEuler.z = freezeEuler.z; } + pose.rot = Quaternion.Euler(poseEuler); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ca8747cd078ea30f31c0f6c729355c6651d8863a --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseFreezer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae14cc904f9070c40929848db1242d56 +timeCreated: 1465973389 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs new file mode 100644 index 0000000000000000000000000000000000000000..70fdd94f9fb16c765dc4c3f3e477700c10c299c3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs @@ -0,0 +1,55 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public class PoseStablizer : BasePoseModifier + { + public float positionThreshold = 0.0005f; // meter + public float rotationThreshold = 0.5f; // degree + + private bool firstPose = true; + private RigidPose prevPose; + + protected override void OnEnable() + { + base.OnEnable(); + ResetFirstPose(); + } + + public override void ModifyPose(ref RigidPose pose, Transform origin) + { + if (firstPose) + { + firstPose = false; + } + else + { + Vector3 posDiff = prevPose.pos - pose.pos; + if (positionThreshold > 0f || posDiff.sqrMagnitude > positionThreshold * positionThreshold) + { + pose.pos = pose.pos + Vector3.ClampMagnitude(posDiff, positionThreshold); + } + else + { + pose.pos = prevPose.pos; + } + + if (rotationThreshold > 0f || Quaternion.Angle(pose.rot, prevPose.rot) > rotationThreshold) + { + pose.rot = Quaternion.RotateTowards(pose.rot, prevPose.rot, rotationThreshold); + } + else + { + pose.rot = prevPose.rot; + } + } + + prevPose = pose; + } + + public void ResetFirstPose() { firstPose = true; } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3c0756ad29c0e298b108fae9bf22939a39a79a8f --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseModifiers/PoseStablizer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 15e4d85dc1bd6124aa83b6d6d84f849f +timeCreated: 1458284033 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs b/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs new file mode 100644 index 0000000000000000000000000000000000000000..7f956a23d8b48c1e149ed6ab1565ddea7803bfa0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs @@ -0,0 +1,17 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using UnityEngine; + +namespace HTC.UnityPlugin.PoseTracker +{ + public class PoseTracker : BasePoseTracker + { + public Transform target; + + protected virtual void LateUpdate() + { + TrackPose(new RigidPose(target, true), target.parent); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs.meta b/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6e9e12b45da7edc3700cb8e7699fc3d29e36f1d0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/PoseTracker/PoseTracker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 14b187e9067254b45838db8413ed1b41 +timeCreated: 1466078835 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool.meta new file mode 100644 index 0000000000000000000000000000000000000000..0de0a86fbd649cb35c491ef89d7f06ba5314547a --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85490c03ccd01594083090f080e888cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..23b67802ff8b5dd16cbf3fb282ec2cf4c6509a32 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc2c308ac52389b4baf0f0c08997be83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources.meta new file mode 100644 index 0000000000000000000000000000000000000000..8b98faadd980a4d51d15121c3d47f88a08ddfbf3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ad1760826b3ce4488b26d976652e500 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..b9b72702d298f1ced132274fa52d5050a8bcc2d4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt @@ -0,0 +1,31 @@ +Copyright 2016-2020, HTC Corporation. All rights reserved. + +The works ("Work") herein refer to the software developed or owned by +HTC Corporation ("HTC") under the terms of the license. The information +contained in the Work is the exclusive property of HTC. HTC grants the +legal user the right to use the Work within the scope of the legitimate +development of software. No further right is granted under this license, +including but not limited to, distribution, reproduction and +modification. Any other usage of the Works shall be subject to the +written consent of HTC. + +The use of the Work is permitted provided that the following conditions +are met: + * The Work is used in a source code form must retain the above + copyright notice, this list of conditions and the following + disclaimer. + * The Work is used in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distributions. + * Neither HTC nor the names of its contributors may be used to + endorse or promote products derived from this software without + specific prior written permission. + +THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER +DEALINGS IN THE WORK. \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt.meta new file mode 100644 index 0000000000000000000000000000000000000000..9cec687f3794a784b1168eac97a40cc8a5d3aa65 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/LICENSE.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 30a388c747510234e8bd178bfb8d84b7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset new file mode 100644 index 0000000000000000000000000000000000000000..1618aaf7c6f9a0c80a03e73af2d36148a7d6188f --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2096d9bc8547a3345935dcce472f5d3b, type: 3} + m_Name: RegistryToolSettings + m_EditorClassIdentifier: + ProjectManifestPath: Packages/manifest.json + AutoCheckEnabled: 1 + Registry: + Name: VIVE + Url: https://npm-registry.vive.com + Scopes: + - com.htc.upm diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset.meta new file mode 100644 index 0000000000000000000000000000000000000000..a2eeda4774516d3ed939b86ee434323f1857bc5e --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Resources/RegistryToolSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fb26872c860f1d49bd145415816c04d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..d5ba8b882d1496c97a94e8636d25331a01c39242 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08abf9a8b0dd80a4786fe0cf1eb563f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs.meta new file mode 100644 index 0000000000000000000000000000000000000000..831c69ce07fff36a503891abba100ab862f1c6fd --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fa09781b5689f4a4c8d559bb901b9c01 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..34a9f500f81f5e931d5d19008dabb646b2541e34 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs @@ -0,0 +1,46 @@ +#if UNITY_2018_1_OR_NEWER +using HTC.UnityPlugin.UPMRegistryTool.Editor.Utils; +using System; +using System.Text.RegularExpressions; +using UnityEngine; + +namespace HTC.UnityPlugin.UPMRegistryTool.Editor.Configs +{ + public class RegistryToolSettings : ScriptableObject + { + private const string RESOURCES_PATH = "RegistryToolSettings"; + + private static RegistryToolSettings PrivateInstance; + + public string ProjectManifestPath; + public RegistryInfo Registry; + + [NonSerialized] public string RegistryHost; + [NonSerialized] public int RegistryPort; + + public static RegistryToolSettings Instance() + { + if (PrivateInstance == null) + { + PrivateInstance = Resources.Load<RegistryToolSettings>(RESOURCES_PATH); + PrivateInstance.Init(); + } + + return PrivateInstance; + } + + private void Init() + { + Match match = Regex.Match(Registry.Url, @"^https?:\/\/(.+?)(?::(\d+))?\/?$"); + RegistryHost = match.Groups[1].Value; + + int port = 0; + RegistryPort = 80; + if (int.TryParse(match.Groups[2].Value, out port)) + { + RegistryPort = port; + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1cc0e58077bfe2530ec35178bb63de68f090f8a6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Configs/RegistryToolSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2096d9bc8547a3345935dcce472f5d3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..8f4760d73978383c53154446917afe0a7edb8282 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0ac0f634954520d4cabe9c9609ba57a0 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils.meta new file mode 100644 index 0000000000000000000000000000000000000000..7885a131cb1d9f19e512f4928543d61510658795 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d765f82d54ecea54dbd722de1f5c2025 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..6cb222bcc001d425356ebeb142b153b881c20822 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs @@ -0,0 +1,86 @@ +#if UNITY_2018_1_OR_NEWER +using HTC.UnityPlugin.UPMRegistryTool.Editor.Configs; +using HTC.UnityPlugin.UPMRegistryTool.Editor.Utils.SimpleJSON; +using System.IO; + +namespace HTC.UnityPlugin.UPMRegistryTool.Editor.Utils +{ + public static class ManifestUtils + { + public const string SCOPED_REGISTRIES_KEY = "scopedRegistries"; + public const int JSON_INDENT_SPACE_COUNT = 2; + + public static bool CheckRegistryExists(RegistryInfo registryInfo) + { + JSONObject manifestJson = LoadProjectManifest(); + if (!manifestJson.HasKey(SCOPED_REGISTRIES_KEY)) + { + return false; + } + + JSONArray registries = manifestJson[SCOPED_REGISTRIES_KEY].AsArray; + foreach (JSONNode regNode in registries) + { + RegistryInfo regInfo = RegistryInfo.FromJson(regNode.AsObject); + if (registryInfo.Equals(regInfo)) + { + return true; + } + } + + return false; + } + + public static void AddRegistry(RegistryInfo registryInfo) + { + RemoveRegistry(registryInfo.Name); + + JSONObject manifestJson = LoadProjectManifest(); + if (!manifestJson.HasKey(SCOPED_REGISTRIES_KEY)) + { + manifestJson.Add(SCOPED_REGISTRIES_KEY, new JSONArray()); + } + + JSONArray registries = manifestJson[SCOPED_REGISTRIES_KEY].AsArray; + registries.Add(registryInfo.ToJson()); + + Save(manifestJson); + } + + public static void RemoveRegistry(string registryName) + { + JSONObject manifestJson = LoadProjectManifest(); + if (!manifestJson.HasKey(SCOPED_REGISTRIES_KEY)) + { + return; + } + + JSONArray registries = manifestJson[SCOPED_REGISTRIES_KEY].AsArray; + for (int i = registries.Count - 1; i >= 0; i--) + { + RegistryInfo reg = RegistryInfo.FromJson(registries[i].AsObject); + if (reg.Name == registryName) + { + registries.Remove(i); + } + } + + Save(manifestJson); + } + + private static JSONObject LoadProjectManifest() + { + string manifestString = File.ReadAllText(RegistryToolSettings.Instance().ProjectManifestPath); + JSONObject manifestJson = JSONNode.Parse(manifestString).AsObject; + + return manifestJson; + } + + private static void Save(JSONObject newJson) + { + string jsonString = newJson.ToString(JSON_INDENT_SPACE_COUNT); + File.WriteAllText(RegistryToolSettings.Instance().ProjectManifestPath, jsonString); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..02044b1b51bc178510a7c2ad537c668ad013523c --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/ManifestUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c37116a629e2794dbf195fb65b30d0d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs new file mode 100644 index 0000000000000000000000000000000000000000..c1654834ee00b4308a27f93eb82a5ffeec9e0e66 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs @@ -0,0 +1,93 @@ +#if UNITY_2018_1_OR_NEWER +using System; +using HTC.UnityPlugin.UPMRegistryTool.Editor.Utils.SimpleJSON; +using System.Collections.Generic; +using System.Linq; +using Unity.Collections; + +namespace HTC.UnityPlugin.UPMRegistryTool.Editor.Utils +{ + [Serializable] + public struct RegistryInfo + { + public const string NAME_KEY = "name"; + public const string URL_KEY = "url"; + public const string SCOPES_KEY = "scopes"; + + public string Name; + public string Url; + public List<string> Scopes; + + public static RegistryInfo FromJson(JSONObject json) + { + RegistryInfo info = new RegistryInfo + { + Name = json[NAME_KEY], + Url = json[URL_KEY], + Scopes = new List<string>(), + }; + + foreach (JSONNode node in json[SCOPES_KEY].AsArray) + { + info.Scopes.Add(node); + } + + return info; + } + + public static JSONObject ToJson(RegistryInfo info) + { + JSONObject json = new JSONObject(); + json[NAME_KEY] = info.Name; + json[URL_KEY] = info.Url; + + JSONArray scopes = new JSONArray(); + foreach (string scope in info.Scopes) + { + scopes.Add(new JSONString(scope)); + } + + json[SCOPES_KEY] = scopes; + + return json; + } + + public JSONObject ToJson() + { + return ToJson(this); + } + + public bool Equals(RegistryInfo other) + { + return Name == other.Name && Url == other.Url && Scopes.SequenceEqual(other.Scopes); + } + + public override bool Equals(object obj) + { + if (!(obj is RegistryInfo)) + { + return false; + } + + RegistryInfo other = (RegistryInfo) obj; + if (!Equals(other)) + { + return false; + } + + return true; + } + + public override int GetHashCode() + { + unchecked + { + int hashCode = (Name != null ? Name.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (Url != null ? Url.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (Scopes != null ? Scopes.GetHashCode() : 0); + return hashCode; + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2d9d115cf755acbecda8b4417498ca622006cc09 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/RegistryInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc16ea157beef4e4eb7f46740134c5d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs new file mode 100644 index 0000000000000000000000000000000000000000..14011a7777562b984490cd0b8c142056f16e9a92 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs @@ -0,0 +1,1352 @@ +/* * * * * + * A simple JSON Parser / builder + * ------------------------------ + * + * It mainly has been written as a simple JSON parser. It can build a JSON string + * from the node-tree, or generate a node tree from any valid JSON string. + * + * Written by Bunny83 + * 2012-06-09 + * + * Changelog now external. See Changelog.txt + * + * The MIT License (MIT) + * + * Copyright (c) 2012-2019 Markus Göbel (Bunny83) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * * * * */ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; + +namespace HTC.UnityPlugin.UPMRegistryTool.Editor.Utils.SimpleJSON +{ + public enum JSONNodeType + { + Array = 1, + Object = 2, + String = 3, + Number = 4, + NullValue = 5, + Boolean = 6, + None = 7, + Custom = 0xFF, + } + public enum JSONTextMode + { + Compact, + Indent + } + + public abstract partial class JSONNode + { + #region Enumerators + public struct Enumerator + { + private enum Type { None, Array, Object } + private Type type; + private Dictionary<string, JSONNode>.Enumerator m_Object; + private List<JSONNode>.Enumerator m_Array; + public bool IsValid { get { return type != Type.None; } } + public Enumerator(List<JSONNode>.Enumerator aArrayEnum) + { + type = Type.Array; + m_Object = default(Dictionary<string, JSONNode>.Enumerator); + m_Array = aArrayEnum; + } + public Enumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum) + { + type = Type.Object; + m_Object = aDictEnum; + m_Array = default(List<JSONNode>.Enumerator); + } + public KeyValuePair<string, JSONNode> Current + { + get + { + if (type == Type.Array) + return new KeyValuePair<string, JSONNode>(string.Empty, m_Array.Current); + else if (type == Type.Object) + return m_Object.Current; + return new KeyValuePair<string, JSONNode>(string.Empty, null); + } + } + public bool MoveNext() + { + if (type == Type.Array) + return m_Array.MoveNext(); + else if (type == Type.Object) + return m_Object.MoveNext(); + return false; + } + } + public struct ValueEnumerator + { + private Enumerator m_Enumerator; + public ValueEnumerator(List<JSONNode>.Enumerator aArrayEnum) : this(new Enumerator(aArrayEnum)) { } + public ValueEnumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum) : this(new Enumerator(aDictEnum)) { } + public ValueEnumerator(Enumerator aEnumerator) { m_Enumerator = aEnumerator; } + public JSONNode Current { get { return m_Enumerator.Current.Value; } } + public bool MoveNext() { return m_Enumerator.MoveNext(); } + public ValueEnumerator GetEnumerator() { return this; } + } + public struct KeyEnumerator + { + private Enumerator m_Enumerator; + public KeyEnumerator(List<JSONNode>.Enumerator aArrayEnum) : this(new Enumerator(aArrayEnum)) { } + public KeyEnumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum) : this(new Enumerator(aDictEnum)) { } + public KeyEnumerator(Enumerator aEnumerator) { m_Enumerator = aEnumerator; } + public string Current { get { return m_Enumerator.Current.Key; } } + public bool MoveNext() { return m_Enumerator.MoveNext(); } + public KeyEnumerator GetEnumerator() { return this; } + } + + public class LinqEnumerator : IEnumerator<KeyValuePair<string, JSONNode>>, IEnumerable<KeyValuePair<string, JSONNode>> + { + private JSONNode m_Node; + private Enumerator m_Enumerator; + internal LinqEnumerator(JSONNode aNode) + { + m_Node = aNode; + if (m_Node != null) + m_Enumerator = m_Node.GetEnumerator(); + } + public KeyValuePair<string, JSONNode> Current { get { return m_Enumerator.Current; } } + object IEnumerator.Current { get { return m_Enumerator.Current; } } + public bool MoveNext() { return m_Enumerator.MoveNext(); } + + public void Dispose() + { + m_Node = null; + m_Enumerator = new Enumerator(); + } + + public IEnumerator<KeyValuePair<string, JSONNode>> GetEnumerator() + { + return new LinqEnumerator(m_Node); + } + + public void Reset() + { + if (m_Node != null) + m_Enumerator = m_Node.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return new LinqEnumerator(m_Node); + } + } + + #endregion Enumerators + + #region common interface + + public static bool forceASCII = false; // Use Unicode by default + public static bool longAsString = false; // lazy creator creates a JSONString instead of JSONNumber + public static bool allowLineComments = true; // allow "//"-style comments at the end of a line + + public abstract JSONNodeType Tag { get; } + + public virtual JSONNode this[int aIndex] { get { return null; } set { } } + + public virtual JSONNode this[string aKey] { get { return null; } set { } } + + public virtual string Value { get { return ""; } set { } } + + public virtual int Count { get { return 0; } } + + public virtual bool IsNumber { get { return false; } } + public virtual bool IsString { get { return false; } } + public virtual bool IsBoolean { get { return false; } } + public virtual bool IsNull { get { return false; } } + public virtual bool IsArray { get { return false; } } + public virtual bool IsObject { get { return false; } } + + public virtual bool Inline { get { return false; } set { } } + + public virtual void Add(string aKey, JSONNode aItem) + { + } + public virtual void Add(JSONNode aItem) + { + Add("", aItem); + } + + public virtual JSONNode Remove(string aKey) + { + return null; + } + + public virtual JSONNode Remove(int aIndex) + { + return null; + } + + public virtual JSONNode Remove(JSONNode aNode) + { + return aNode; + } + + public virtual JSONNode Clone() + { + return null; + } + + public virtual IEnumerable<JSONNode> Children + { + get + { + yield break; + } + } + + public IEnumerable<JSONNode> DeepChildren + { + get + { + foreach (var C in Children) + foreach (var D in C.DeepChildren) + yield return D; + } + } + + public virtual bool HasKey(string aKey) + { + return false; + } + + public virtual JSONNode GetValueOrDefault(string aKey, JSONNode aDefault) + { + return aDefault; + } + + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + WriteToStringBuilder(sb, 0, 0, JSONTextMode.Compact); + return sb.ToString(); + } + + public virtual string ToString(int aIndent) + { + StringBuilder sb = new StringBuilder(); + WriteToStringBuilder(sb, 0, aIndent, JSONTextMode.Indent); + return sb.ToString(); + } + internal abstract void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode); + + public abstract Enumerator GetEnumerator(); + public IEnumerable<KeyValuePair<string, JSONNode>> Linq { get { return new LinqEnumerator(this); } } + public KeyEnumerator Keys { get { return new KeyEnumerator(GetEnumerator()); } } + public ValueEnumerator Values { get { return new ValueEnumerator(GetEnumerator()); } } + + #endregion common interface + + #region typecasting properties + + + public virtual double AsDouble + { + get + { + double v = 0.0; + if (double.TryParse(Value, NumberStyles.Float, CultureInfo.InvariantCulture, out v)) + return v; + return 0.0; + } + set + { + Value = value.ToString(CultureInfo.InvariantCulture); + } + } + + public virtual int AsInt + { + get { return (int)AsDouble; } + set { AsDouble = value; } + } + + public virtual float AsFloat + { + get { return (float)AsDouble; } + set { AsDouble = value; } + } + + public virtual bool AsBool + { + get + { + bool v = false; + if (bool.TryParse(Value, out v)) + return v; + return !string.IsNullOrEmpty(Value); + } + set + { + Value = (value) ? "true" : "false"; + } + } + + public virtual long AsLong + { + get + { + long val = 0; + if (long.TryParse(Value, out val)) + return val; + return 0L; + } + set + { + Value = value.ToString(); + } + } + + public virtual JSONArray AsArray + { + get + { + return this as JSONArray; + } + } + + public virtual JSONObject AsObject + { + get + { + return this as JSONObject; + } + } + + + #endregion typecasting properties + + #region operators + + public static implicit operator JSONNode(string s) + { + return new JSONString(s); + } + public static implicit operator string(JSONNode d) + { + return (d == null) ? null : d.Value; + } + + public static implicit operator JSONNode(double n) + { + return new JSONNumber(n); + } + public static implicit operator double(JSONNode d) + { + return (d == null) ? 0 : d.AsDouble; + } + + public static implicit operator JSONNode(float n) + { + return new JSONNumber(n); + } + public static implicit operator float(JSONNode d) + { + return (d == null) ? 0 : d.AsFloat; + } + + public static implicit operator JSONNode(int n) + { + return new JSONNumber(n); + } + public static implicit operator int(JSONNode d) + { + return (d == null) ? 0 : d.AsInt; + } + + public static implicit operator JSONNode(long n) + { + if (longAsString) + return new JSONString(n.ToString()); + return new JSONNumber(n); + } + public static implicit operator long(JSONNode d) + { + return (d == null) ? 0L : d.AsLong; + } + + public static implicit operator JSONNode(bool b) + { + return new JSONBool(b); + } + public static implicit operator bool(JSONNode d) + { + return (d == null) ? false : d.AsBool; + } + + public static implicit operator JSONNode(KeyValuePair<string, JSONNode> aKeyValue) + { + return aKeyValue.Value; + } + + public static bool operator ==(JSONNode a, object b) + { + if (ReferenceEquals(a, b)) + return true; + bool aIsNull = a is JSONNull || ReferenceEquals(a, null) || a is JSONLazyCreator; + bool bIsNull = b is JSONNull || ReferenceEquals(b, null) || b is JSONLazyCreator; + if (aIsNull && bIsNull) + return true; + return !aIsNull && a.Equals(b); + } + + public static bool operator !=(JSONNode a, object b) + { + return !(a == b); + } + + public override bool Equals(object obj) + { + return ReferenceEquals(this, obj); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion operators + + [ThreadStatic] + private static StringBuilder m_EscapeBuilder; + internal static StringBuilder EscapeBuilder + { + get + { + if (m_EscapeBuilder == null) + m_EscapeBuilder = new StringBuilder(); + return m_EscapeBuilder; + } + } + internal static string Escape(string aText) + { + var sb = EscapeBuilder; + sb.Length = 0; + if (sb.Capacity < aText.Length + aText.Length / 10) + sb.Capacity = aText.Length + aText.Length / 10; + foreach (char c in aText) + { + switch (c) + { + case '\\': + sb.Append("\\\\"); + break; + case '\"': + sb.Append("\\\""); + break; + case '\n': + sb.Append("\\n"); + break; + case '\r': + sb.Append("\\r"); + break; + case '\t': + sb.Append("\\t"); + break; + case '\b': + sb.Append("\\b"); + break; + case '\f': + sb.Append("\\f"); + break; + default: + if (c < ' ' || (forceASCII && c > 127)) + { + ushort val = c; + sb.Append("\\u").Append(val.ToString("X4")); + } + else + sb.Append(c); + break; + } + } + string result = sb.ToString(); + sb.Length = 0; + return result; + } + + private static JSONNode ParseElement(string token, bool quoted) + { + if (quoted) + return token; + string tmp = token.ToLower(); + if (tmp == "false" || tmp == "true") + return tmp == "true"; + if (tmp == "null") + return JSONNull.CreateOrGet(); + double val; + if (double.TryParse(token, NumberStyles.Float, CultureInfo.InvariantCulture, out val)) + return val; + else + return token; + } + + public static JSONNode Parse(string aJSON) + { + Stack<JSONNode> stack = new Stack<JSONNode>(); + JSONNode ctx = null; + int i = 0; + StringBuilder Token = new StringBuilder(); + string TokenName = ""; + bool QuoteMode = false; + bool TokenIsQuoted = false; + while (i < aJSON.Length) + { + switch (aJSON[i]) + { + case '{': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + stack.Push(new JSONObject()); + if (ctx != null) + { + ctx.Add(TokenName, stack.Peek()); + } + TokenName = ""; + Token.Length = 0; + ctx = stack.Peek(); + break; + + case '[': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + + stack.Push(new JSONArray()); + if (ctx != null) + { + ctx.Add(TokenName, stack.Peek()); + } + TokenName = ""; + Token.Length = 0; + ctx = stack.Peek(); + break; + + case '}': + case ']': + if (QuoteMode) + { + + Token.Append(aJSON[i]); + break; + } + if (stack.Count == 0) + throw new Exception("JSON Parse: Too many closing brackets"); + + stack.Pop(); + if (Token.Length > 0 || TokenIsQuoted) + ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted)); + TokenIsQuoted = false; + TokenName = ""; + Token.Length = 0; + if (stack.Count > 0) + ctx = stack.Peek(); + break; + + case ':': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + TokenName = Token.ToString(); + Token.Length = 0; + TokenIsQuoted = false; + break; + + case '"': + QuoteMode ^= true; + TokenIsQuoted |= QuoteMode; + break; + + case ',': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + if (Token.Length > 0 || TokenIsQuoted) + ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted)); + TokenIsQuoted = false; + TokenName = ""; + Token.Length = 0; + TokenIsQuoted = false; + break; + + case '\r': + case '\n': + break; + + case ' ': + case '\t': + if (QuoteMode) + Token.Append(aJSON[i]); + break; + + case '\\': + ++i; + if (QuoteMode) + { + char C = aJSON[i]; + switch (C) + { + case 't': + Token.Append('\t'); + break; + case 'r': + Token.Append('\r'); + break; + case 'n': + Token.Append('\n'); + break; + case 'b': + Token.Append('\b'); + break; + case 'f': + Token.Append('\f'); + break; + case 'u': + { + string s = aJSON.Substring(i + 1, 4); + Token.Append((char)int.Parse( + s, + NumberStyles.AllowHexSpecifier)); + i += 4; + break; + } + default: + Token.Append(C); + break; + } + } + break; + case '/': + if (allowLineComments && !QuoteMode && i + 1 < aJSON.Length && aJSON[i + 1] == '/') + { + while (++i < aJSON.Length && aJSON[i] != '\n' && aJSON[i] != '\r') ; + break; + } + Token.Append(aJSON[i]); + break; + case '\uFEFF': // remove / ignore BOM (Byte Order Mark) + break; + + default: + Token.Append(aJSON[i]); + break; + } + ++i; + } + if (QuoteMode) + { + throw new Exception("JSON Parse: Quotation marks seems to be messed up."); + } + if (ctx == null) + return ParseElement(Token.ToString(), TokenIsQuoted); + return ctx; + } + + } + // End of JSONNode + + public partial class JSONArray : JSONNode + { + private List<JSONNode> m_List = new List<JSONNode>(); + private bool inline = false; + public override bool Inline + { + get { return inline; } + set { inline = value; } + } + + public override JSONNodeType Tag { get { return JSONNodeType.Array; } } + public override bool IsArray { get { return true; } } + public override Enumerator GetEnumerator() { return new Enumerator(m_List.GetEnumerator()); } + + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_List.Count) + return new JSONLazyCreator(this); + return m_List[aIndex]; + } + set + { + if (value == null) + value = JSONNull.CreateOrGet(); + if (aIndex < 0 || aIndex >= m_List.Count) + m_List.Add(value); + else + m_List[aIndex] = value; + } + } + + public override JSONNode this[string aKey] + { + get { return new JSONLazyCreator(this); } + set + { + if (value == null) + value = JSONNull.CreateOrGet(); + m_List.Add(value); + } + } + + public override int Count + { + get { return m_List.Count; } + } + + public override void Add(string aKey, JSONNode aItem) + { + if (aItem == null) + aItem = JSONNull.CreateOrGet(); + m_List.Add(aItem); + } + + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_List.Count) + return null; + JSONNode tmp = m_List[aIndex]; + m_List.RemoveAt(aIndex); + return tmp; + } + + public override JSONNode Remove(JSONNode aNode) + { + m_List.Remove(aNode); + return aNode; + } + + public override JSONNode Clone() + { + var node = new JSONArray(); + node.m_List.Capacity = m_List.Capacity; + foreach(var n in m_List) + { + if (n != null) + node.Add(n.Clone()); + else + node.Add(null); + } + return node; + } + + public override IEnumerable<JSONNode> Children + { + get + { + foreach (JSONNode N in m_List) + yield return N; + } + } + + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append('['); + int count = m_List.Count; + if (inline) + aMode = JSONTextMode.Compact; + for (int i = 0; i < count; i++) + { + if (i > 0) + aSB.Append(','); + if (aMode == JSONTextMode.Indent) + aSB.AppendLine(); + + if (aMode == JSONTextMode.Indent) + aSB.Append(' ', aIndent + aIndentInc); + m_List[i].WriteToStringBuilder(aSB, aIndent + aIndentInc, aIndentInc, aMode); + } + if (aMode == JSONTextMode.Indent) + aSB.AppendLine().Append(' ', aIndent); + aSB.Append(']'); + } + } + // End of JSONArray + + public partial class JSONObject : JSONNode + { + private Dictionary<string, JSONNode> m_Dict = new Dictionary<string, JSONNode>(); + + private bool inline = false; + public override bool Inline + { + get { return inline; } + set { inline = value; } + } + + public override JSONNodeType Tag { get { return JSONNodeType.Object; } } + public override bool IsObject { get { return true; } } + + public override Enumerator GetEnumerator() { return new Enumerator(m_Dict.GetEnumerator()); } + + + public override JSONNode this[string aKey] + { + get + { + if (m_Dict.ContainsKey(aKey)) + return m_Dict[aKey]; + else + return new JSONLazyCreator(this, aKey); + } + set + { + if (value == null) + value = JSONNull.CreateOrGet(); + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = value; + else + m_Dict.Add(aKey, value); + } + } + + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + return m_Dict.ElementAt(aIndex).Value; + } + set + { + if (value == null) + value = JSONNull.CreateOrGet(); + if (aIndex < 0 || aIndex >= m_Dict.Count) + return; + string key = m_Dict.ElementAt(aIndex).Key; + m_Dict[key] = value; + } + } + + public override int Count + { + get { return m_Dict.Count; } + } + + public override void Add(string aKey, JSONNode aItem) + { + if (aItem == null) + aItem = JSONNull.CreateOrGet(); + + if (aKey != null) + { + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = aItem; + else + m_Dict.Add(aKey, aItem); + } + else + m_Dict.Add(Guid.NewGuid().ToString(), aItem); + } + + public override JSONNode Remove(string aKey) + { + if (!m_Dict.ContainsKey(aKey)) + return null; + JSONNode tmp = m_Dict[aKey]; + m_Dict.Remove(aKey); + return tmp; + } + + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + var item = m_Dict.ElementAt(aIndex); + m_Dict.Remove(item.Key); + return item.Value; + } + + public override JSONNode Remove(JSONNode aNode) + { + try + { + var item = m_Dict.Where(k => k.Value == aNode).First(); + m_Dict.Remove(item.Key); + return aNode; + } + catch + { + return null; + } + } + + public override JSONNode Clone() + { + var node = new JSONObject(); + foreach (var n in m_Dict) + { + node.Add(n.Key, n.Value.Clone()); + } + return node; + } + + public override bool HasKey(string aKey) + { + return m_Dict.ContainsKey(aKey); + } + + public override JSONNode GetValueOrDefault(string aKey, JSONNode aDefault) + { + JSONNode res; + if (m_Dict.TryGetValue(aKey, out res)) + return res; + return aDefault; + } + + public override IEnumerable<JSONNode> Children + { + get + { + foreach (KeyValuePair<string, JSONNode> N in m_Dict) + yield return N.Value; + } + } + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append('{'); + bool first = true; + if (inline) + aMode = JSONTextMode.Compact; + foreach (var k in m_Dict) + { + if (!first) + aSB.Append(','); + first = false; + if (aMode == JSONTextMode.Indent) + aSB.AppendLine(); + if (aMode == JSONTextMode.Indent) + aSB.Append(' ', aIndent + aIndentInc); + aSB.Append('\"').Append(Escape(k.Key)).Append('\"'); + if (aMode == JSONTextMode.Compact) + aSB.Append(':'); + else + aSB.Append(" : "); + k.Value.WriteToStringBuilder(aSB, aIndent + aIndentInc, aIndentInc, aMode); + } + if (aMode == JSONTextMode.Indent) + aSB.AppendLine().Append(' ', aIndent); + aSB.Append('}'); + } + + } + // End of JSONObject + + public partial class JSONString : JSONNode + { + private string m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.String; } } + public override bool IsString { get { return true; } } + + public override Enumerator GetEnumerator() { return new Enumerator(); } + + + public override string Value + { + get { return m_Data; } + set + { + m_Data = value; + } + } + + public JSONString(string aData) + { + m_Data = aData; + } + public override JSONNode Clone() + { + return new JSONString(m_Data); + } + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append('\"').Append(Escape(m_Data)).Append('\"'); + } + public override bool Equals(object obj) + { + if (base.Equals(obj)) + return true; + string s = obj as string; + if (s != null) + return m_Data == s; + JSONString s2 = obj as JSONString; + if (s2 != null) + return m_Data == s2.m_Data; + return false; + } + public override int GetHashCode() + { + return m_Data.GetHashCode(); + } + } + // End of JSONString + + public partial class JSONNumber : JSONNode + { + private double m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.Number; } } + public override bool IsNumber { get { return true; } } + public override Enumerator GetEnumerator() { return new Enumerator(); } + + public override string Value + { + get { return m_Data.ToString(CultureInfo.InvariantCulture); } + set + { + double v; + if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out v)) + m_Data = v; + } + } + + public override double AsDouble + { + get { return m_Data; } + set { m_Data = value; } + } + public override long AsLong + { + get { return (long)m_Data; } + set { m_Data = value; } + } + + public JSONNumber(double aData) + { + m_Data = aData; + } + + public JSONNumber(string aData) + { + Value = aData; + } + + public override JSONNode Clone() + { + return new JSONNumber(m_Data); + } + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append(Value); + } + private static bool IsNumeric(object value) + { + return value is int || value is uint + || value is float || value is double + || value is decimal + || value is long || value is ulong + || value is short || value is ushort + || value is sbyte || value is byte; + } + public override bool Equals(object obj) + { + if (obj == null) + return false; + if (base.Equals(obj)) + return true; + JSONNumber s2 = obj as JSONNumber; + if (s2 != null) + return m_Data == s2.m_Data; + if (IsNumeric(obj)) + return Convert.ToDouble(obj) == m_Data; + return false; + } + public override int GetHashCode() + { + return m_Data.GetHashCode(); + } + } + // End of JSONNumber + + public partial class JSONBool : JSONNode + { + private bool m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.Boolean; } } + public override bool IsBoolean { get { return true; } } + public override Enumerator GetEnumerator() { return new Enumerator(); } + + public override string Value + { + get { return m_Data.ToString(); } + set + { + bool v; + if (bool.TryParse(value, out v)) + m_Data = v; + } + } + public override bool AsBool + { + get { return m_Data; } + set { m_Data = value; } + } + + public JSONBool(bool aData) + { + m_Data = aData; + } + + public JSONBool(string aData) + { + Value = aData; + } + + public override JSONNode Clone() + { + return new JSONBool(m_Data); + } + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append((m_Data) ? "true" : "false"); + } + public override bool Equals(object obj) + { + if (obj == null) + return false; + if (obj is bool) + return m_Data == (bool)obj; + return false; + } + public override int GetHashCode() + { + return m_Data.GetHashCode(); + } + } + // End of JSONBool + + public partial class JSONNull : JSONNode + { + static JSONNull m_StaticInstance = new JSONNull(); + public static bool reuseSameInstance = true; + public static JSONNull CreateOrGet() + { + if (reuseSameInstance) + return m_StaticInstance; + return new JSONNull(); + } + private JSONNull() { } + + public override JSONNodeType Tag { get { return JSONNodeType.NullValue; } } + public override bool IsNull { get { return true; } } + public override Enumerator GetEnumerator() { return new Enumerator(); } + + public override string Value + { + get { return "null"; } + set { } + } + public override bool AsBool + { + get { return false; } + set { } + } + + public override JSONNode Clone() + { + return CreateOrGet(); + } + + public override bool Equals(object obj) + { + if (object.ReferenceEquals(this, obj)) + return true; + return (obj is JSONNull); + } + public override int GetHashCode() + { + return 0; + } + + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append("null"); + } + } + // End of JSONNull + + internal partial class JSONLazyCreator : JSONNode + { + private JSONNode m_Node = null; + private string m_Key = null; + public override JSONNodeType Tag { get { return JSONNodeType.None; } } + public override Enumerator GetEnumerator() { return new Enumerator(); } + + public JSONLazyCreator(JSONNode aNode) + { + m_Node = aNode; + m_Key = null; + } + + public JSONLazyCreator(JSONNode aNode, string aKey) + { + m_Node = aNode; + m_Key = aKey; + } + + private T Set<T>(T aVal) where T : JSONNode + { + if (m_Key == null) + m_Node.Add(aVal); + else + m_Node.Add(m_Key, aVal); + m_Node = null; // Be GC friendly. + return aVal; + } + + public override JSONNode this[int aIndex] + { + get { return new JSONLazyCreator(this); } + set { Set(new JSONArray()).Add(value); } + } + + public override JSONNode this[string aKey] + { + get { return new JSONLazyCreator(this, aKey); } + set { Set(new JSONObject()).Add(aKey, value); } + } + + public override void Add(JSONNode aItem) + { + Set(new JSONArray()).Add(aItem); + } + + public override void Add(string aKey, JSONNode aItem) + { + Set(new JSONObject()).Add(aKey, aItem); + } + + public static bool operator ==(JSONLazyCreator a, object b) + { + if (b == null) + return true; + return ReferenceEquals(a, b); + } + + public static bool operator !=(JSONLazyCreator a, object b) + { + return !(a == b); + } + + public override bool Equals(object obj) + { + if (obj == null) + return true; + return ReferenceEquals(this, obj); + } + + public override int GetHashCode() + { + return 0; + } + + public override int AsInt + { + get { Set(new JSONNumber(0)); return 0; } + set { Set(new JSONNumber(value)); } + } + + public override float AsFloat + { + get { Set(new JSONNumber(0.0f)); return 0.0f; } + set { Set(new JSONNumber(value)); } + } + + public override double AsDouble + { + get { Set(new JSONNumber(0.0)); return 0.0; } + set { Set(new JSONNumber(value)); } + } + + public override long AsLong + { + get + { + if (longAsString) + Set(new JSONString("0")); + else + Set(new JSONNumber(0.0)); + return 0L; + } + set + { + if (longAsString) + Set(new JSONString(value.ToString())); + else + Set(new JSONNumber(value)); + } + } + + public override bool AsBool + { + get { Set(new JSONBool(false)); return false; } + set { Set(new JSONBool(value)); } + } + + public override JSONArray AsArray + { + get { return Set(new JSONArray()); } + } + + public override JSONObject AsObject + { + get { return Set(new JSONObject()); } + } + internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode) + { + aSB.Append("null"); + } + } + // End of JSONLazyCreator + + public static class JSON + { + public static JSONNode Parse(string aJSON) + { + return JSONNode.Parse(aJSON); + } + } +} diff --git a/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs.meta b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..951ca6dce6a31a4e1cf636201c5c29b30194ca52 --- /dev/null +++ b/Assets/HTC.UnityPlugin/UPMRegistryTool/Editor/Scripts/Utils/SimpleJSON.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a09985700f7e3a409e9ca16dbf03b67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility.meta b/Assets/HTC.UnityPlugin/Utility.meta new file mode 100644 index 0000000000000000000000000000000000000000..01462c9b26d8c521f18b2a0ede0aba5bb68d0aa4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9554659977a77254ba3497360bc7a4ee +folderAsset: yes +timeCreated: 1464092314 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute.meta b/Assets/HTC.UnityPlugin/Utility/Attribute.meta new file mode 100644 index 0000000000000000000000000000000000000000..0572ce61464242a93e3afafea206acca5b1ae7bc --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8a034b4286e0fec45825ea4a06c0639b +folderAsset: yes +timeCreated: 1495357817 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs b/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..4633af3ef8c96e52dbb82d73ed3181f97e81875f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs @@ -0,0 +1,17 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + public class CustomOrderedEnumAttribute : PropertyAttribute + { + public Type overrideEnumType { get; private set; } + + public CustomOrderedEnumAttribute(Type overrideEnumType = null) + { + this.overrideEnumType = overrideEnumType; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9961adda860af56919a0a6591ce280c6cd93e9f9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/CustomOrderedEnumAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d8ae63e74744f834f849f19cda445b50 +timeCreated: 1498935013 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..cffff0e2c4f183b08d0de9bda1011f6a8c2fd85a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d602d0e2fd1c8f94e85672f202cc08b8 +folderAsset: yes +timeCreated: 1489578079 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..ee5ad687d6c4bedd446806f790fe9bd622121c2d --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs @@ -0,0 +1,68 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + [CustomPropertyDrawer(typeof(CustomOrderedEnumAttribute))] + public class CusromOrderedEnumAttributeDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + // First get the attribute since it contains the range for the slider + var attr = attribute as CustomOrderedEnumAttribute; + + EditorGUI.BeginProperty(position, label, property); + + position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), new GUIContent(property.displayName)); + + // determine which enum type to display + Type displayedEnumType = null; + if (property.propertyType == SerializedPropertyType.Enum) + { + if (attr.overrideEnumType != null && attr.overrideEnumType.IsEnum) + { + displayedEnumType = attr.overrideEnumType; + } + else + { + displayedEnumType = fieldInfo.FieldType; + } + } + else if (property.propertyType == SerializedPropertyType.Integer) + { + if (attr.overrideEnumType != null && attr.overrideEnumType.IsEnum) + { + displayedEnumType = attr.overrideEnumType; + } + } + + // display enum popup if displayedEnumType is determined, otherwise, display the default property field + if (displayedEnumType == null) + { + EditorGUI.PropertyField(position, property); + } + else + { + var enumInfo = EnumUtils.GetDisplayInfo(displayedEnumType); + var displayedNames = enumInfo.displayedNames; + var displayedValues = enumInfo.displayedValues; + + if (!enumInfo.value2displayedIndex.ContainsKey(property.intValue)) + { + displayedNames = displayedNames.Concat(new string[] { property.intValue.ToString() }).ToArray(); + displayedValues = displayedValues.Concat(new int[] { property.intValue }).ToArray(); + } + + property.intValue = EditorGUI.IntPopup(position, property.intValue, displayedNames, displayedValues); + } + + property.serializedObject.ApplyModifiedProperties(); + + EditorGUI.EndProperty(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2ef3c42b4ae1fb284bf83a9e023e24b0e7e4d086 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/CustomOrderedEnumAttributeDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff43dd5c21b34834aa349b5c9f2c88fb +timeCreated: 1498935120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..8995ffe3d0a777c27840f4995116d013955b250b --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs @@ -0,0 +1,184 @@ +//========= Copyright 2016-2019, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + [CustomPropertyDrawer(typeof(FlagsFromEnumAttribute))] + [CanEditMultipleObjects] + public class FlagsFromEnumAttributeDrawer : PropertyDrawer + { + private static GUIStyle s_popup; + private static GUIContent s_tempContent; + private static List<bool> s_displayedMask; + + private bool m_foldoutOpen = false; + + static FlagsFromEnumAttributeDrawer() + { + s_popup = new GUIStyle(EditorStyles.popup); + s_tempContent = new GUIContent(); + s_displayedMask = new List<bool>(); + } + + private bool TryGetEnumInfo(out EnumUtils.EnumDisplayInfo info) + { + var ffeAttribute = attribute as FlagsFromEnumAttribute; + + if (ffeAttribute.EnumType == null || !ffeAttribute.EnumType.IsEnum) + { + info = null; + return false; + } + + info = EnumUtils.GetDisplayInfo(ffeAttribute.EnumType); + return info != null; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + EnumUtils.EnumDisplayInfo enumInfo; + + if (!m_foldoutOpen || !TryGetEnumInfo(out enumInfo)) + { + return EditorGUIUtility.singleLineHeight; + } + else + { + return EditorGUIUtility.singleLineHeight * (enumInfo.displayedMaskNames.Length + 2); + } + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + EnumUtils.EnumDisplayInfo enumInfo; + + if (property.propertyType != SerializedPropertyType.Integer) + { + EditorGUI.LabelField(position, label.text, "Use FlagFromEnum with integer."); + } + else if (!TryGetEnumInfo(out enumInfo)) + { + EditorGUI.LabelField(position, label.text, "Set FlagFromEnum argument with enum type."); + } + else + { + position = EditorGUI.PrefixLabel(position, new GUIContent(property.displayName)); + + // get display mask value + s_displayedMask.Clear(); + var enumDisplayLength = enumInfo.displayedMaskLength; + var realMask = (ulong)property.longValue; + var firstSelected = string.Empty; + for (int i = 0; i < enumDisplayLength; ++i) + { + if (EnumUtils.GetFlag(realMask, enumInfo.displayedMaskValues[i])) + { + s_displayedMask.Add(true); + if (string.IsNullOrEmpty(firstSelected)) { firstSelected = enumInfo.displayedMaskNames[i]; } + } + else + { + s_displayedMask.Add(false); + } + } + + var flagsCount = 0; + for (var i = 0; i < EnumUtils.ULONG_MASK_FIELD_LENGTH; ++i) + { + if (EnumUtils.GetFlag(realMask, i)) { ++flagsCount; } + } + + if (EditorGUI.showMixedValue) + { + s_tempContent.text = " - "; + } + else if (flagsCount == 0) + { + s_tempContent.text = "None"; + } + else if (flagsCount == 1) + { + s_tempContent.text = firstSelected; + } + else if (flagsCount < enumDisplayLength) + { + s_tempContent.text = "Mixed..."; + } + else + { + s_tempContent.text = "All"; + } + + var controlPos = position; + controlPos.height = EditorGUIUtility.singleLineHeight; + var id = GUIUtility.GetControlID(FocusType.Passive, controlPos); + + switch (Event.current.GetTypeForControl(id)) + { + case EventType.MouseDown: + if (controlPos.Contains(Event.current.mousePosition)) + { + GUIUtility.hotControl = id; + GUIUtility.keyboardControl = id; + Event.current.Use(); + } + break; + case EventType.MouseUp: + if (GUIUtility.hotControl == id) + { + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + Event.current.Use(); + m_foldoutOpen = !m_foldoutOpen; + } + break; + case EventType.Repaint: + s_popup.Draw(position, s_tempContent, id, false); + break; + } + + if (m_foldoutOpen) + { + position.y += EditorGUIUtility.singleLineHeight; + + var halfWidth = position.width * 0.5f; + if (GUI.Button(new Rect(position.x, position.y, halfWidth - 1, EditorGUIUtility.singleLineHeight), "All")) + { + realMask = System.Runtime.InteropServices.Marshal.SizeOf(fieldInfo.FieldType) < sizeof(ulong) ? ~0u : ~0ul; + //m_foldoutOpen = false; + } + + //Draw the None button + if (GUI.Button(new Rect(position.x + halfWidth + 1, position.y, halfWidth - 1, EditorGUIUtility.singleLineHeight), "None")) + { + realMask = 0ul; + //m_foldoutOpen = false; + } + + for (int i = 0; i < enumDisplayLength; ++i) + { + position.y += EditorGUIUtility.singleLineHeight; + var toggled = EditorGUI.ToggleLeft(new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight), enumInfo.displayedMaskNames[i], s_displayedMask[i]); + if (s_displayedMask[i] != toggled) + { + s_displayedMask[i] = toggled; + EnumUtils.SetFlag(ref realMask, enumInfo.displayedMaskValues[i], toggled); + //m_foldoutOpen = false; + } + } + + property.longValue = (long)realMask; + } + } + + property.serializedObject.ApplyModifiedProperties(); + + EditorGUI.EndProperty(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..637459219b985a591479d4943793ef6acea07926 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/FlagsFromEnumAttributeDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c0d590f5d0a8d6441951b3a5e3f0e238 +timeCreated: 1489578123 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..b22e31101d944fc476249c331745fca2418a28ea --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7c59746feab6478458c3ba556c57b31e +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs b/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..6b742969f29b4066904296b48c5791ecd9e01d13 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs @@ -0,0 +1,17 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + public class FlagsFromEnumAttribute : PropertyAttribute + { + public Type EnumType { get; private set; } + + public FlagsFromEnumAttribute(Type enumType) + { + EnumType = enumType; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs.meta b/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..87800c60879c7ba151987c59f772060871564704 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Attribute/FlagsFromEnumAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4b6d385cd4b273648885cb9721ea92de +timeCreated: 1489577883 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs b/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs new file mode 100644 index 0000000000000000000000000000000000000000..58a40ed5f144496899a00ef9c5c0f70c0a007a97 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs @@ -0,0 +1,49 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + public static class ChangeProp + { + public static bool Set<T>(ref T currentValue, T newValue, Func<T, T, bool> equalFunc = null) + { + if (equalFunc == null) + { + if (EqualityComparer<T>.Default.Equals(currentValue, newValue)) { return false; } + } + else + { + if (equalFunc(currentValue, newValue)) { return false; } + } + + currentValue = newValue; + return true; + } + + public static bool Vector3Equal(Vector3 a, Vector3 b) { return a == b; } // (a-b).mag < Vector3.kEpsilon + + public static bool Vector3AxisApprox(Vector3 a, Vector3 b) { return Mathf.Approximately(a.x, b.x) && Mathf.Approximately(a.y, b.y) && Mathf.Approximately(a.z, b.z); } + + public static bool Vector3DistanceApprox(Vector3 a, Vector3 b) { return Mathf.Approximately((a - b).sqrMagnitude, 0f); } + + public static bool Vector2Equal(Vector2 a, Vector2 b) { return a == b; } // (a-b).mag < Vector2.kEpsilon + + public static bool Vector2AxisApprox(Vector2 a, Vector2 b) { return Mathf.Approximately(a.x, b.x) && Mathf.Approximately(a.y, b.y); } + + public static bool Vector2DistanceApprox(Vector2 a, Vector2 b) { return Mathf.Approximately((a - b).sqrMagnitude, 0f); } + + public static bool QuaternionEqual(Quaternion a, Quaternion b) { return a == b; } // Dot(a,b) > 1f - Quaternion.kEpsilon + + public static bool QuaternionAngleApprox(Quaternion a, Quaternion b) { return Mathf.Approximately(Quaternion.Angle(a, b), 0f); } + + public static bool StringEmptyEqual(string a, string b) + { + var aEmpty = string.IsNullOrEmpty(a); + var bEmpty = string.IsNullOrEmpty(b); + return aEmpty ? bEmpty : (!bEmpty && a == b); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs.meta b/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..252908b7eb5ac9f9aca63512679ebbde3606cd75 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ChangeProp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 21b30816291318f4a88c43a903b27f57 +timeCreated: 1480510800 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Container.meta b/Assets/HTC.UnityPlugin/Utility/Container.meta new file mode 100644 index 0000000000000000000000000000000000000000..1913dc887b67b2cc598cab1f73c40bdab7916783 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9ed5d76474dad2845bd42ba1ca99891b +folderAsset: yes +timeCreated: 1464676848 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs b/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs new file mode 100644 index 0000000000000000000000000000000000000000..75707cec51996f2ed6d93f26ac2bbcae6a0611fe --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs @@ -0,0 +1,196 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace HTC.UnityPlugin.Utility +{ + public interface IIndexedSetReadOnly<T> : IEnumerable<T> + { + int Count { get; } + + T this[int index] { get; } + bool Contains(T item); + void CopyTo(T[] array, int arrayIndex); + int IndexOf(T item); + } + + public class IndexedSet<T> : IList<T>, IIndexedSetReadOnly<T> + { + private class ReadOnlyWrapper : IIndexedSetReadOnly<T> + { + private IndexedSet<T> m_container; + + public ReadOnlyWrapper(IndexedSet<T> container) { m_container = container; } + + public T this[int index] { get { return m_container[index]; } } + + public int Count { get { return m_container.Count; } } + + public bool Contains(T item) { return m_container.Contains(item); } + + public void CopyTo(T[] array, int arrayIndex) { m_container.CopyTo(array, arrayIndex); } + + public int IndexOf(T item) { return m_container.IndexOf(item); } + + public IEnumerator<T> GetEnumerator() { return m_container.GetEnumerator(); } + + IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)m_container).GetEnumerator(); } + } + + protected readonly Dictionary<T, int> m_Dictionary; + protected readonly List<T> m_List; + protected IIndexedSetReadOnly<T> m_readOnly; + + public IndexedSet() + { + m_Dictionary = new Dictionary<T, int>(); + m_List = new List<T>(); + } + + public IndexedSet(int capacity) + { + m_Dictionary = new Dictionary<T, int>(capacity); + m_List = new List<T>(capacity); + } + + public int Count { get { return m_List.Count; } } + + public bool IsReadOnly { get { return false; } } + + public IIndexedSetReadOnly<T> ReadOnly { get { return m_readOnly ?? (m_readOnly = new ReadOnlyWrapper(this)); } } + + public T this[int index] + { + get { return m_List[index]; } + set + { + T item = m_List[index]; + m_Dictionary.Remove(item); + m_List[index] = value; + m_Dictionary.Add(value, index); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public IEnumerator<T> GetEnumerator() + { + return m_List.GetEnumerator(); + } + + public void Add(T item) + { + m_Dictionary.Add(item, m_List.Count); + m_List.Add(item); + } + + public bool AddUnique(T item) + { + if (m_Dictionary.ContainsKey(item)) { return false; } + + Add(item); + return true; + } + + public bool Remove(T item) + { + int index; + if (!m_Dictionary.TryGetValue(item, out index)) { return false; } + + RemoveAt(index); + return true; + } + + public void Clear() + { + m_List.Clear(); + m_Dictionary.Clear(); + } + + public bool Contains(T item) + { + return m_Dictionary.ContainsKey(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + m_List.CopyTo(array, arrayIndex); + } + + public int IndexOf(T item) + { + int index; + return m_Dictionary.TryGetValue(item, out index) ? index : -1; + } + + public virtual void Insert(int index, T item) + { + throw new NotSupportedException("Not supported, because this container does not guarantee ordering."); + } + + public virtual void RemoveAt(int index) + { + m_Dictionary.Remove(m_List[index]); + + if (index == m_List.Count - 1) + { + m_List.RemoveAt(index); + } + else + { + var replaceItemIndex = m_List.Count - 1; + var replaceItem = m_List[replaceItemIndex]; + m_List[index] = replaceItem; + m_Dictionary[replaceItem] = index; + m_List.RemoveAt(replaceItemIndex); + } + } + + public void RemoveAll(Predicate<T> match) + { + var removed = 0; + + for (int i = 0, imax = m_List.Count; i < imax; ++i) + { + if (match(m_List[i])) + { + m_Dictionary.Remove(m_List[i]); + ++removed; + } + else + { + if (removed != 0) + { + m_Dictionary[m_List[i]] = i - removed; + m_List[i - removed] = m_List[i]; + } + } + } + + for (; removed > 0; --removed) + { + m_List.RemoveAt(m_List.Count - 1); + } + } + + public void Sort(Comparison<T> sortLayoutFunction) + { + m_List.Sort(sortLayoutFunction); + for (int i = m_List.Count - 1; i >= 0; --i) + { + m_Dictionary[m_List[i]] = i; + } + } + + public ReadOnlyCollection<T> AsReadOnly() + { + return m_List.AsReadOnly(); + } + } +} diff --git a/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs.meta b/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0833fe87738615ca220f538e785f91f36f471153 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/IndexedSet.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 16ef55a2c00446c4bbd1925c7ee532ab +timeCreated: 1464171695 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs b/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs new file mode 100644 index 0000000000000000000000000000000000000000..77e92cc929e6424ca3d2aa5bb41535163db07377 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs @@ -0,0 +1,331 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace HTC.UnityPlugin.Utility +{ + public interface IIndexedTableReadOnly<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>> + { + int Count { get; } + ICollection<TKey> Keys { get; } + ICollection<TValue> Values { get; } + + TValue this[TKey key] { get; } + + TKey GetKeyByIndex(int index); + TValue GetValueByIndex(int index); + bool ContainsKey(TKey key); + bool TryGetValue(TKey key, out TValue value); + void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex); + int IndexOf(TKey item); + } + + public class IndexedTable<TKey, TValue> : IDictionary<TKey, TValue>, IIndexedTableReadOnly<TKey, TValue> + { + private class ReadOnlyWrapper : IIndexedTableReadOnly<TKey, TValue> + { + private IndexedTable<TKey, TValue> m_container; + + public ReadOnlyWrapper(IndexedTable<TKey, TValue> container) { m_container = container; } + + public TValue this[TKey key] { get { return m_container[key]; } } + + public int Count { get { return m_container.Count; } } + + public ICollection<TKey> Keys { get { return m_container.Keys; } } + + public ICollection<TValue> Values { get { return m_container.Values; } } + + public bool ContainsKey(TKey key) { return m_container.ContainsKey(key); } + + public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) { m_container.CopyTo(array, arrayIndex); } + + public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() { return m_container.GetEnumerator(); } + + public int IndexOf(TKey item) { return m_container.IndexOf(item); } + + public TKey GetKeyByIndex(int index) { return m_container.GetKeyByIndex(index); } + + public TValue GetValueByIndex(int index) { return m_container.GetValueByIndex(index); } + + public bool TryGetValue(TKey key, out TValue value) { return m_container.TryGetValue(key, out value); } + + IEnumerator IEnumerable.GetEnumerator() { return ((IIndexedTableReadOnly<TKey, TValue>)m_container).GetEnumerator(); } + } + + protected readonly Dictionary<TKey, int> m_Dictionary; + protected readonly List<TKey> m_KeyList; + protected readonly List<TValue> m_ValueList; + protected IIndexedTableReadOnly<TKey, TValue> m_readOnly; + + public IndexedTable() + { + m_Dictionary = new Dictionary<TKey, int>(); + m_KeyList = new List<TKey>(); + m_ValueList = new List<TValue>(); + } + + public IndexedTable(int capacity) + { + m_Dictionary = new Dictionary<TKey, int>(capacity); + m_KeyList = new List<TKey>(capacity); + m_ValueList = new List<TValue>(capacity); + } + + public int Count { get { return m_Dictionary.Count; } } + + public bool IsReadOnly { get { return false; } } + + public IIndexedTableReadOnly<TKey, TValue> ReadOnly { get { return m_readOnly ?? (m_readOnly = new ReadOnlyWrapper(this)); } } + + public TKey GetKeyByIndex(int index) + { + if (index < 0 || index >= m_KeyList.Count) + { + UnityEngine.Debug.LogWarning("index=" + index + " m_Dictionary.Count=" + m_Dictionary.Count + " m_KeyList.Count=" + m_KeyList.Count + " m_ValueList.Count=" + m_ValueList.Count); + string msg = "{ "; + for (int i = 0; i < m_KeyList.Count; ++i) + { + msg += m_KeyList[i].ToString() + ","; + } + UnityEngine.Debug.LogWarning("KeyList=" + msg + " }"); + } + return m_KeyList[index]; + } + + public TValue GetValueByIndex(int index) + { + return m_ValueList[index]; + } + + public void SetValueByIndex(int index, TValue value) + { + m_ValueList[index] = value; + } + + public KeyValuePair<TKey, TValue> GetKeyValuePairByIndex(int index) + { + return new KeyValuePair<TKey, TValue>(m_KeyList[index], m_ValueList[index]); + } + + public ICollection<TKey> Keys { get { return m_Dictionary.Keys; } } + + public ICollection<TValue> Values { get { return new List<TValue>(m_ValueList); } } + + public TValue this[TKey key] + { + get { return m_ValueList[m_Dictionary[key]]; } + set + { + int index; + if (m_Dictionary.TryGetValue(key, out index)) + { + m_ValueList[index] = value; + } + else + { + Add(key, value); + } + } + } + + public void Add(TKey key, TValue value = default(TValue)) + { + m_Dictionary.Add(key, m_Dictionary.Count); + m_KeyList.Add(key); + m_ValueList.Add(value); + } + + public bool AddUniqueKey(TKey key, TValue value = default(TValue)) + { + if (m_Dictionary.ContainsKey(key)) { return false; } + + Add(key, value); + return true; + } + + public bool ContainsKey(TKey key) + { + return m_Dictionary.ContainsKey(key); + } + + public bool Remove(TKey key) + { + int index; + if (!m_Dictionary.TryGetValue(key, out index)) { return false; } + + RemoveAt(index); + return true; + } + + public virtual void RemoveAt(int index) + { + m_Dictionary.Remove(m_KeyList[index]); + + if (index == m_KeyList.Count - 1) + { + m_KeyList.RemoveAt(index); + m_ValueList.RemoveAt(index); + } + else + { + var replaceItemIndex = m_KeyList.Count - 1; + var replaceItemKey = m_KeyList[replaceItemIndex]; + var replaceItemValue = m_ValueList[replaceItemIndex]; + + m_KeyList[index] = replaceItemKey; + m_ValueList[index] = replaceItemValue; + + m_Dictionary[replaceItemKey] = index; + + m_KeyList.RemoveAt(replaceItemIndex); + m_ValueList.RemoveAt(replaceItemIndex); + } + } + + public bool TryGetValue(TKey key, out TValue value) + { + int index; + if (m_Dictionary.TryGetValue(key, out index)) + { + value = m_ValueList[index]; + return true; + } + else + { + value = default(TValue); + return false; + } + } + + public void Add(KeyValuePair<TKey, TValue> item) + { + Add(item.Key, item.Value); + } + + public bool Contains(KeyValuePair<TKey, TValue> item) + { + int index; + if (!m_Dictionary.TryGetValue(item.Key, out index)) { return false; } + return EqualityComparer<KeyValuePair<TKey, TValue>>.Default.Equals(GetKeyValuePairByIndex(index), item); + } + + public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) + { + if (array == null) + { + throw new ArgumentNullException("array is null."); + } + + if (arrayIndex < 0) + { + throw new ArgumentOutOfRangeException("arrayIndex is less than 0."); + } + + if (array.Length - arrayIndex < m_Dictionary.Count) + { + throw new ArgumentException("The number of elements in the source IndexedTable<TKey, TValue> is greater than the available space from arrayIndex to the end of the destination array."); + } + + for (int i = 0, imax = m_Dictionary.Count; i < imax; ++i) + { + array[i + arrayIndex] = new KeyValuePair<TKey, TValue>(m_KeyList[i], m_ValueList[i]); + } + } + + public int IndexOf(TKey item) + { + int index; + return m_Dictionary.TryGetValue(item, out index) ? index : -1; + } + + public bool Remove(KeyValuePair<TKey, TValue> item) + { + if (!Contains(item)) { return false; } + return Remove(item.Key); + } + + public void RemoveAll(Predicate<KeyValuePair<TKey, TValue>> match) + { + var removed = 0; + + for (int i = 0, imax = m_Dictionary.Count; i < imax; ++i) + { + if (match(GetKeyValuePairByIndex(i))) + { + m_Dictionary.Remove(m_KeyList[i]); + ++removed; + } + else + { + if (removed > 0) + { + m_Dictionary[m_KeyList[i]] = i - removed; + m_KeyList[i - removed] = m_KeyList[i]; + m_ValueList[i - removed] = m_ValueList[i]; + } + } + } + + if (removed == 0) + { + return; + } + else if (removed == Count) + { + Clear(); + } + else + { + for (; removed > 0; --removed) + { + m_KeyList.RemoveAt(m_KeyList.Count - 1); + m_ValueList.RemoveAt(m_ValueList.Count - 1); + } + } + } + + private class Enumerator : IEnumerator<KeyValuePair<TKey, TValue>> + { + private int iterator = -1; + private IndexedTable<TKey, TValue> container; + + public Enumerator(IndexedTable<TKey, TValue> c) { container = c; } + + public KeyValuePair<TKey, TValue> Current { get { return container.GetKeyValuePairByIndex(iterator); } } + + object IEnumerator.Current { get { return Current; } } + + public void Dispose() { container = null; } + + public bool MoveNext() { ++iterator; return iterator < container.Count; } + + public void Reset() { iterator = 0; } + } + + public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() + { + return new Enumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Clear() + { + m_Dictionary.Clear(); + m_KeyList.Clear(); + m_ValueList.Clear(); + } + + public ReadOnlyCollection<TKey> AsReadOnly() + { + return m_KeyList.AsReadOnly(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs.meta b/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..348db9d02e4de17f2f09d85c7fa1c596c8dd11e7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/IndexedTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 945f4d561dba4514796d1d45533e4bfb +timeCreated: 1482200252 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs new file mode 100644 index 0000000000000000000000000000000000000000..97c2eca805edddd799a8b15d3626731191e0e01f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs @@ -0,0 +1,71 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +namespace HTC.UnityPlugin.Utility +{ + public class OrderedIndexedSet<T> : IndexedSet<T> + { + public OrderedIndexedSet() : base() { } + + public OrderedIndexedSet(int capacity) : base(capacity) { } + + public override void Insert(int index, T item) + { + m_Dictionary.Add(item, index); + m_List.Insert(index, item); + + for (int i = index + 1, imax = m_List.Count; i < imax; ++i) + { + m_Dictionary[m_List[i]] = i; + } + } + + public override void RemoveAt(int index) + { + m_Dictionary.Remove(m_List[index]); + m_List.RemoveAt(index); + + for (int i = index, imax = m_List.Count; i < imax; ++i) + { + m_Dictionary[m_List[i]] = i; + } + } + + public T GetFirst() + { + return m_List[0]; + } + + public bool TryGetFirst(out T item) + { + if (m_List.Count == 0) + { + item = default(T); + return false; + } + else + { + item = GetFirst(); + return true; + } + } + + public T GetLast() + { + return m_List[m_List.Count - 1]; + } + + public bool TryGetLast(out T item) + { + if (m_List.Count == 0) + { + item = default(T); + return false; + } + else + { + item = GetLast(); + return true; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs.meta b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7f36103784ef5ae5d89d9853069071df1eb2ee1b --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedSet.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5017607f7584d3249880505364a84b16 +timeCreated: 1482209499 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs new file mode 100644 index 0000000000000000000000000000000000000000..f6b7e1d52d0702b0ee6a23d9800727fbaf4cc65a --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs @@ -0,0 +1,106 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; + +namespace HTC.UnityPlugin.Utility +{ + public class OrderedIndexedTable<TKey, TValue> : IndexedTable<TKey, TValue> + { + public OrderedIndexedTable() : base() { } + + public OrderedIndexedTable(int capacity) : base(capacity) { } + + public void Insert(int index, TKey key, TValue value) + { + m_Dictionary.Add(key, index); // exception here if already contains key + m_KeyList.Insert(index, key); + m_ValueList.Insert(index, value); + + for (int i = index + 1, imax = m_Dictionary.Count; i < imax; ++i) + { + m_Dictionary[m_KeyList[i]] = i; + } + } + + public void Insert(int index, KeyValuePair<TKey, TValue> item) + { + Insert(index, item.Key, item.Value); + } + + public override void RemoveAt(int index) + { + m_Dictionary.Remove(m_KeyList[index]); + m_KeyList.RemoveAt(index); + m_ValueList.RemoveAt(index); + + for (int i = index, imax = m_Dictionary.Count; i < imax; ++i) + { + m_Dictionary[m_KeyList[i]] = i; + } + } + + public TKey GetFirstKey() { return m_KeyList[0]; } + + public bool TryGetFirstKey(out TKey item) + { + if (m_Dictionary.Count == 0) + { + item = default(TKey); + return false; + } + else + { + item = GetFirstKey(); + return true; + } + } + + public TKey GetLastKey() { return m_KeyList[m_KeyList.Count - 1]; } + + public bool TryGetLastKey(out TKey item) + { + if (m_Dictionary.Count == 0) + { + item = default(TKey); + return false; + } + else + { + item = GetLastKey(); + return true; + } + } + + public TValue GetFirstValue() { return m_ValueList[0]; } + + public bool TryGetFirstValue(out TValue item) + { + if (m_Dictionary.Count == 0) + { + item = default(TValue); + return false; + } + else + { + item = GetFirstValue(); + return true; + } + } + + public TValue GetLastValue() { return m_ValueList[m_ValueList.Count - 1]; } + + public bool TryGetLastValue(out TValue item) + { + if (m_Dictionary.Count == 0) + { + item = default(TValue); + return false; + } + else + { + item = GetLastValue(); + return true; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs.meta b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..87c648ea55914acfedf0246d9634c71293a56bc1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/Container/OrderedIndexedTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7463f80599f23ab419953af2cadbc05c +timeCreated: 1482213465 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool.meta b/Assets/HTC.UnityPlugin/Utility/ContainerPool.meta new file mode 100644 index 0000000000000000000000000000000000000000..959aff46ee9410f896f3861c4fe759ab6408fa19 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 651761b4969c4514c8993116e21a7582 +folderAsset: yes +timeCreated: 1464092277 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs b/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs new file mode 100644 index 0000000000000000000000000000000000000000..5362791b0af2a5e46268e6e9a6c980899b480f08 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs @@ -0,0 +1,21 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; + +namespace HTC.UnityPlugin.Utility +{ + public static class DictionaryPool<TKey, TValue> + { + private static readonly ObjectPool<Dictionary<TKey, TValue>> pool = new ObjectPool<Dictionary<TKey, TValue>>(() => new Dictionary<TKey, TValue>(), null, e => e.Clear()); + + public static Dictionary<TKey, TValue> Get() + { + return pool.Get(); + } + + public static void Release(Dictionary<TKey, TValue> toRelease) + { + pool.Release(toRelease); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs.meta b/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ca247773a588ca1a6fe38aa7967e5c505ecda3ee --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/DictionaryPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fcd64c240bbf22f4aaf6faa9191fbe29 +timeCreated: 1464097718 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs b/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs new file mode 100644 index 0000000000000000000000000000000000000000..8f6d145d5eaf3fdd60d1fb43142207acaa5921b8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs @@ -0,0 +1,19 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +namespace HTC.UnityPlugin.Utility +{ + public static class IndexedSetPool<T> + { + private static readonly ObjectPool<IndexedSet<T>> pool = new ObjectPool<IndexedSet<T>>(() => new IndexedSet<T>(), null, e => e.Clear()); + + public static IndexedSet<T> Get() + { + return pool.Get(); + } + + public static void Release(IndexedSet<T> toRelease) + { + pool.Release(toRelease); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs.meta b/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..42e14778daebb9acd581e65bc26f30e11152da8f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/IndexedSetPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 10b5b8794a6a6f84eacaf9c50ac66e2e +timeCreated: 1464676904 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs new file mode 100644 index 0000000000000000000000000000000000000000..c9a369beee77d3cb918f94e499eb81e8befbe26e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs @@ -0,0 +1,21 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; + +namespace HTC.UnityPlugin.Utility +{ + public static class ListPool<T> + { + private static readonly ObjectPool<List<T>> pool = new ObjectPool<List<T>>(() => new List<T>(), null, e => e.Clear()); + + public static List<T> Get() + { + return pool.Get(); + } + + public static void Release(List<T> toRelease) + { + pool.Release(toRelease); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs.meta b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c4e0907fa01f085b60591a46bca1cbfcaacf7784 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ListPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: db967d649a06103489f6c98487ba40a0 +timeCreated: 1464092411 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs new file mode 100644 index 0000000000000000000000000000000000000000..d4bd547009c8404bf781eb10a07f7b7b8a5b9b8d --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs @@ -0,0 +1,62 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Utility +{ + public class ObjectPool<T> + { + private readonly Stack<T> stack = new Stack<T>(); + private readonly Func<T> actionOnNew; + private readonly UnityAction<T> actionOnGet; + private readonly UnityAction<T> actionOnRelease; + + public int CountAll { get; private set; } + public int CountInactive { get { return stack.Count; } } + public int CountActive { get { return CountAll - CountInactive; } } + + public ObjectPool(Func<T> onNew, UnityAction<T> onGet = null, UnityAction<T> onRelease = null) + { + actionOnNew = onNew; + actionOnGet = onGet; + actionOnRelease = onRelease; + } + + public T Get() + { + T element; + if (stack.Count == 0) + { + element = actionOnNew == null ? default(T) : actionOnNew.Invoke(); + CountAll++; + } + else + { + element = stack.Pop(); + } + + if (actionOnGet != null) { actionOnGet.Invoke(element); } + return element; + } + + public void Release(T element) + { + if (stack.Count > 0 && ReferenceEquals(stack.Peek(), element)) + { + Debug.LogError("Internal error. Trying to destroy object that is already released to pool."); + } + + if (actionOnRelease != null) { actionOnRelease.Invoke(element); } + + stack.Push(element); + + if (stack.Count > CountAll) + { + CountAll = stack.Count; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs.meta b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..703c39dc141a8bd64060d2919a64c51b4722842f --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/ContainerPool/ObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2084fc7f3907d82448e94c933b09d154 +timeCreated: 1464092373 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs b/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..36c30f8d0e48d1f99653bf10ff32f475eaab503b --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs @@ -0,0 +1,376 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + public static class EnumUtils + { + public const int UINT_MASK_FIELD_LENGTH = sizeof(int) * 8; + public const int ULONG_MASK_FIELD_LENGTH = sizeof(long) * 8; + + // this class pares and stored the enum's names and values in different orders + // + // Example: + // + // public enum SomeEnum + // { + // Invalid = -1, + // AAA, + // BBB, + // zzz = -2, + // CCC = 35, + // Default = 0, + // EEE, + // FFF, + // GGG = 65, + // } + // + // EnumDisplayInfo for typeof(SomeEnum) will be: + // + // rawNames | rawValues + // --------------------- + // AAA | 0 + // Default | 0 + // EEE | 1 + // BBB | 1 + // FFF | 2 + // CCC | 35 + // GGG | 65 + // zzz | -2 + // Invalid | -1 + // + // displayedNames | displayedRawNames | displayedValues + // ----------------------------------------------------- + // Invalid | Invalid | -1 + // AAA | AAA | 0 + // BBB | BBB | 1 + // zzz | zzz | -2 + // CCC | CCC | 35 + // Default (AAA) | Default | 0 + // EEE (BBB) | EEE | 1 + // FFF | FFF | 2 + // GGG | GGG | 65 + // + // displayedMaskNames | displayedMaskRawNames | displayedMaskValues | realMaskField + // --------------------------------------------------------------------------------- + // AAA | AAA | 0 | 1ul << 0 + // BBB | BBB | 1 | 1ul << 1 + // CCC | CCC | 35 | 1ul << 35 + // Default (AAA) | Default | 0 | 1ul << 0 + // EEE (BBB) | EEE | 1 | 1ul << 1 + // FFF | FFF | 2 | 1ul << 2 + + public class EnumDisplayInfo + { + public Type enumType { get; private set; } + + public int minValue { get; private set; } + public int maxValue { get; private set; } + + public string[] rawNames { get; private set; } + public int[] rawValues { get; private set; } + public Dictionary<int, int> rawValue2index { get; private set; } + public Dictionary<string, int> rawName2index { get; private set; } + + public int displayedLength { get { return displayedRawNames.Length; } } + public string[] displayedRawNames { get; private set; } // without parenthesis + public string[] displayedNames { get; private set; } + public int[] displayedValues { get; private set; } + public Dictionary<int, int> value2displayedIndex { get; private set; } + public Dictionary<string, int> name2displayedIndex { get; private set; } + + public int displayedMaskLength { get { return displayedMaskRawNames.Length; } } + public string[] displayedMaskRawNames { get; private set; } // without parenthesis + public string[] displayedMaskNames { get; private set; } + public int[] displayedMaskValues { get; private set; } + public ulong[] displayedMaskRealMaskField { get; private set; } + public Dictionary<int, int> value2displayedMaskIndex { get; private set; } + public Dictionary<string, int> name2displayedMaskIndex { get; private set; } + + public EnumDisplayInfo(Type type) + { + if (type == null) { throw new ArgumentNullException("type"); } + if (!type.IsEnum) { throw new ArgumentException("Must be enum type", "type"); } + + enumType = type; + rawNames = Enum.GetNames(type); + rawValues = Enum.GetValues(type) as int[]; + rawValue2index = new Dictionary<int, int>(); + rawName2index = new Dictionary<string, int>(); + minValue = int.MaxValue; + maxValue = int.MinValue; + + { + var index = 0; + foreach (var value in rawValues) + { + minValue = Mathf.Min(minValue, value); + maxValue = Mathf.Max(maxValue, value); + + rawName2index[rawNames[index]] = index; + + if (!rawValue2index.ContainsKey(value)) { rawValue2index[value] = index; } + + ++index; + } + } + + var displayedRawNamesList = new List<string>(); + var displayedNamesList = new List<string>(); + var displayedValuesList = new List<int>(); + value2displayedIndex = new Dictionary<int, int>(); + name2displayedIndex = new Dictionary<string, int>(); + + var displayedMaskRawNamesList = new List<string>(); + var displayedMaskNamesList = new List<string>(); + var displayedMaskValuesList = new List<int>(); + var displayedMaskRealMaskFieldList = new List<ulong>(); + value2displayedMaskIndex = new Dictionary<int, int>(); + name2displayedMaskIndex = new Dictionary<string, int>(); + + + foreach (FieldInfo fi in type.GetFields() + .Where(fi => fi.IsStatic && fi.GetCustomAttributes(typeof(HideInInspector), true).Length == 0) + .OrderBy(fi => fi.MetadataToken)) + { + int index; + int priorIndex; + var name = fi.Name; + var value = (int)fi.GetValue(null); + + displayedRawNamesList.Add(name); + displayedNamesList.Add(name); + displayedValuesList.Add(value); + index = displayedNamesList.Count - 1; + + name2displayedIndex[name] = index; + + if (!value2displayedIndex.TryGetValue(value, out priorIndex)) + { + value2displayedIndex[value] = index; + } + else + { + displayedNamesList[index] += " (" + displayedNamesList[priorIndex] + ")"; + name2displayedIndex[displayedNamesList[index]] = index; + } + + if (value < 0 || value >= ULONG_MASK_FIELD_LENGTH) { continue; } + + displayedMaskRawNamesList.Add(name); + displayedMaskNamesList.Add(name); + displayedMaskValuesList.Add(value); + displayedMaskRealMaskFieldList.Add(1ul << value); + index = displayedMaskNamesList.Count - 1; + + name2displayedMaskIndex[name] = index; + + if (!value2displayedMaskIndex.TryGetValue(value, out priorIndex)) + { + value2displayedMaskIndex.Add(value, index); + } + else + { + displayedMaskNamesList[index] += " (" + displayedMaskNamesList[priorIndex] + ")"; + name2displayedMaskIndex[displayedMaskNamesList[index]] = index; + } + + } + + displayedRawNames = displayedRawNamesList.ToArray(); + displayedNames = displayedNamesList.ToArray(); + displayedValues = displayedValuesList.ToArray(); + + displayedMaskRawNames = displayedMaskRawNamesList.ToArray(); + displayedMaskNames = displayedMaskNamesList.ToArray(); + displayedMaskValues = displayedMaskValuesList.ToArray(); + displayedMaskRealMaskField = displayedMaskRealMaskFieldList.ToArray(); + } + + [Obsolete] + public int RealToDisplayedMaskField(int realMask) + { + var displayedMask = 0u; + + for (int i = 0; i < UINT_MASK_FIELD_LENGTH && realMask != 0; ++i) + { + if (GetFlag((uint)realMask, i)) + { + UnsetFlag((uint)realMask, i); + if (value2displayedMaskIndex[i] < UINT_MASK_FIELD_LENGTH) + { + displayedMask |= 1u << value2displayedMaskIndex[i]; + } + } + } + + return (int)displayedMask; + } + + [Obsolete] + public int DisplayedToRealMaskField(int displayedMask, bool fillUp = true) + { + var realMask = 0u; + + for (int i = 0; i < UINT_MASK_FIELD_LENGTH && displayedMask != 0; ++i) + { + if (GetFlag((uint)displayedMask, i)) + { + UnsetFlag((uint)displayedMask, i); + if (i < UINT_MASK_FIELD_LENGTH) + { + realMask |= (uint)displayedMaskRealMaskField[i]; + } + } + } + + return (int)realMask; + } + } + + private static Dictionary<Type, EnumDisplayInfo> s_enumInfoTable = new Dictionary<Type, EnumDisplayInfo>(); + + public static EnumDisplayInfo GetDisplayInfo(Type type) + { + EnumDisplayInfo info; + if (!s_enumInfoTable.TryGetValue(type, out info)) + { + info = new EnumDisplayInfo(type); + s_enumInfoTable.Add(type, info); + } + + return info; + } + + public static int GetMinValue(Type enumType) + { + return GetDisplayInfo(enumType).minValue; + } + + public static int GetMaxValue(Type enumType) + { + return GetDisplayInfo(enumType).maxValue; + } + + public static bool GetFlag(uint maskField, int enumValue) + { + if (enumValue < 0 || enumValue >= UINT_MASK_FIELD_LENGTH) { return false; } + return (maskField & (1u << enumValue)) != 0u; + } + + public static void SetFlag(ref uint maskField, int enumValue, bool value) + { + if (enumValue < 0 || enumValue >= UINT_MASK_FIELD_LENGTH) { return; } + if (value) + { + maskField |= (1u << enumValue); + } + else + { + maskField &= ~(1u << enumValue); + } + } + + public static void SetFlag(ref uint maskField, bool value, int enumValue, params int[] enumValues) + { + SetFlag(ref maskField, enumValue, value); + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) { SetFlag(ref maskField, ev, value); } + } + } + + public static uint SetFlag(uint maskField, int enumValue, params int[] enumValues) + { + if (enumValue >= 0 && enumValue < UINT_MASK_FIELD_LENGTH) { maskField |= (1u << enumValue); } + + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) + { + if (ev >= 0 && ev < UINT_MASK_FIELD_LENGTH) { maskField |= (1u << ev); } + } + } + + return maskField; + } + + public static uint UnsetFlag(uint maskField, int enumValue, params int[] enumValues) + { + if (enumValue >= 0 && enumValue < UINT_MASK_FIELD_LENGTH) { maskField &= ~(1u << enumValue); } + + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) + { + if (ev >= 0 && ev < UINT_MASK_FIELD_LENGTH) { maskField &= ~(1u << ev); } + } + } + + return maskField; + } + + public static bool GetFlag(ulong maskField, int enumValue) + { + if (enumValue < 0 || enumValue >= ULONG_MASK_FIELD_LENGTH) { return false; } + return (maskField & (1ul << enumValue)) != 0ul; + } + + public static void SetFlag(ref ulong maskField, int enumValue, bool value) + { + if (enumValue < 0 || enumValue >= ULONG_MASK_FIELD_LENGTH) { return; } + if (value) + { + maskField |= (1ul << enumValue); + } + else + { + maskField &= ~(1ul << enumValue); + } + } + + public static void SetFlag(ref ulong maskField, bool value, int enumValue, params int[] enumValues) + { + SetFlag(ref maskField, enumValue, value); + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) { SetFlag(ref maskField, ev, value); } + } + } + + public static ulong SetFlag(ulong maskField, int enumValue, params int[] enumValues) + { + if (enumValue >= 0 && enumValue < ULONG_MASK_FIELD_LENGTH) { maskField |= (1ul << enumValue); } + + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) + { + if (ev >= 0 && ev < ULONG_MASK_FIELD_LENGTH) { maskField |= (1ul << ev); } + } + } + + return maskField; + } + + public static ulong UnsetFlag(ulong maskField, int enumValue, params int[] enumValues) + { + if (enumValue >= 0 && enumValue < ULONG_MASK_FIELD_LENGTH) { maskField &= ~(1ul << enumValue); } + + if (enumValues != null && enumValues.Length > 0) + { + foreach (var ev in enumValues) + { + if (ev >= 0 && ev < ULONG_MASK_FIELD_LENGTH) { maskField &= ~(1ul << ev); } + } + } + + return maskField; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs.meta b/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1e36e4564791f2bfc8d47fe05171c643a99943fc --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/EnumUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4b03504558ad6a1429cf135338de9293 +timeCreated: 1495598313 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/RigidPose.cs b/Assets/HTC.UnityPlugin/Utility/RigidPose.cs new file mode 100644 index 0000000000000000000000000000000000000000..165bcc782669049c574e38d69b2d3c8ed79d6f30 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/RigidPose.cs @@ -0,0 +1,220 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + [Serializable] + public struct RigidPose + { + public Vector3 pos; + public Quaternion rot; + + public static RigidPose identity + { + get { return new RigidPose(Vector3.zero, Quaternion.identity); } + } + + public RigidPose(Vector3 pos, Quaternion rot) + { + this.pos = pos; + this.rot = rot; + } + + public RigidPose(Transform t, bool useLocal = false) + { + if (t == null) + { + pos = Vector3.zero; + rot = Quaternion.identity; + } + else if (!useLocal) + { + pos = t.position; + rot = t.rotation; + } + else + { + pos = t.localPosition; + rot = t.localRotation; + } + } + + public Vector3 forward { get { return rot * Vector3.forward; } } + + public Vector3 right { get { return rot * Vector3.right; } } + + public Vector3 up { get { return rot * Vector3.up; } } + + + public override bool Equals(object o) + { + if (o is RigidPose) + { + var t = (RigidPose)o; + return pos == t.pos && rot == t.rot; + } + return false; + } + + public override int GetHashCode() + { + return pos.GetHashCode() ^ rot.GetHashCode(); + } + + public static bool operator ==(RigidPose a, RigidPose b) + { + return + a.pos.x == b.pos.x && + a.pos.y == b.pos.y && + a.pos.z == b.pos.z && + a.rot.x == b.rot.x && + a.rot.y == b.rot.y && + a.rot.z == b.rot.z && + a.rot.w == b.rot.w; + } + + public static bool operator !=(RigidPose a, RigidPose b) + { + return !(a == b); + } + + public static RigidPose operator *(RigidPose a, RigidPose b) + { + return new RigidPose + { + rot = a.rot * b.rot, + pos = a.pos + a.rot * b.pos + }; + } + + public void Multiply(RigidPose a, RigidPose b) + { + rot = a.rot * b.rot; + pos = a.pos + a.rot * b.pos; + } + + public void Inverse() + { + rot = Quaternion.Inverse(rot); + pos = -(rot * pos); + } + + public RigidPose GetInverse() + { + var t = new RigidPose(pos, rot); + t.Inverse(); + return t; + } + + public Vector3 InverseTransformPoint(Vector3 point) + { + return Quaternion.Inverse(rot) * (point - pos); + } + + public Vector3 TransformPoint(Vector3 point) + { + return pos + (rot * point); + } + + public static RigidPose Lerp(RigidPose a, RigidPose b, float t) + { + return new RigidPose(Vector3.Lerp(a.pos, b.pos, t), Quaternion.Slerp(a.rot, b.rot, t)); + } + + public void Lerp(RigidPose to, float t) + { + pos = Vector3.Lerp(pos, to.pos, t); + rot = Quaternion.Slerp(rot, to.rot, t); + } + + public static RigidPose LerpUnclamped(RigidPose a, RigidPose b, float t) + { + return new RigidPose(Vector3.LerpUnclamped(a.pos, b.pos, t), Quaternion.SlerpUnclamped(a.rot, b.rot, t)); + } + + public void LerpUnclamped(RigidPose to, float t) + { + pos = Vector3.LerpUnclamped(pos, to.pos, t); + rot = Quaternion.SlerpUnclamped(rot, to.rot, t); + } + + public static void SetPose(Transform target, RigidPose pose, Transform origin = null) + { + if (origin != null && origin != target.parent) + { + target.position = origin.transform.TransformPoint(pose.pos); + target.rotation = origin.rotation * pose.rot; + } + else + { + target.localPosition = pose.pos; + target.localRotation = pose.rot; + } + } + + // proper following duration is larger then 0.02 second, depends on the update rate + public static void SetRigidbodyVelocity(Rigidbody rigidbody, Vector3 from, Vector3 to, float duration) + { + var diffPos = to - from; + if (Mathf.Approximately(diffPos.sqrMagnitude, 0f)) + { + rigidbody.velocity = Vector3.zero; + } + else + { + rigidbody.velocity = diffPos / duration; + } + } + + // proper folloing duration is larger then 0.02 second, depends on the update rate + public static void SetRigidbodyAngularVelocity(Rigidbody rigidbody, Quaternion from, Quaternion to, float duration, bool overrideMaxAngularVelocity = true) + { + float angle; + Vector3 axis; + var fromToRot = to * Quaternion.Inverse(from); + fromToRot.ToAngleAxis(out angle, out axis); + while (angle > 180f) { angle -= 360f; } + + if (Mathf.Approximately(angle, 0f) || float.IsNaN(axis.x) || float.IsNaN(axis.y) || float.IsNaN(axis.z)) + { + rigidbody.angularVelocity = Vector3.zero; + } + else + { + angle *= Mathf.Deg2Rad / duration; // convert to radius speed + if (overrideMaxAngularVelocity && rigidbody.maxAngularVelocity < angle) { rigidbody.maxAngularVelocity = angle; } + rigidbody.angularVelocity = axis * angle; + } + } + + public static RigidPose FromToPose(RigidPose from, RigidPose to) + { + var invRot = Quaternion.Inverse(from.rot); + return new RigidPose(invRot * (to.pos - from.pos), invRot * to.rot); + } + +#if UNITY_2017_2_OR_NEWER + public static implicit operator RigidPose(Pose v) + { + return new RigidPose(v.position, v.rotation); + } + + public static implicit operator Pose(RigidPose v) + { + return new Pose(v.pos, v.rot); + } +#endif + + public override string ToString() + { + return "{p" + pos.ToString() + ",r" + rot.ToString() + "}"; + } + + public string ToString(string format) + { + return "{p" + pos.ToString(format) + ",r" + rot.ToString(format) + "}"; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/RigidPose.cs.meta b/Assets/HTC.UnityPlugin/Utility/RigidPose.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..34d0c64542c9816e2cd014ad67c0e6335a29cb3e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/RigidPose.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0ea9671aeed60374b9eea8907b94584d +timeCreated: 1511161401 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs b/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs new file mode 100644 index 0000000000000000000000000000000000000000..be90d7313de4eda205d15837f0197eca52217735 --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs @@ -0,0 +1,93 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Utility +{ + [DisallowMultipleComponent] + public abstract class SingletonBehaviour<T> : MonoBehaviour where T : SingletonBehaviour<T> + { + private static T s_instance = null; + private static bool s_isApplicationQuitting = false; + private static object s_lock = new object(); + private static Func<GameObject> s_defaultInitGOGetter; + + private bool m_initialized; + + public static bool Active { get { return !s_isApplicationQuitting && s_instance != null; } } + + public bool IsInstance { get { return this == Instance; } } + + protected bool IsApplicationQuitting { get { return s_isApplicationQuitting; } } + + public static T Instance + { + get + { + Initialize(); + return s_instance; + } + } + + public static void Initialize() + { + if (!Application.isPlaying || s_isApplicationQuitting) { return; } + + lock (s_lock) + { + if (s_instance != null) { return; } + + var instances = FindObjectsOfType<T>(); + if (instances.Length > 0) + { + s_instance = instances[0]; + if (instances.Length > 1) { Debug.LogWarning("Multiple " + typeof(T).Name + " not supported!"); } + } + + if (s_instance == null) + { + GameObject defaultInitGO = null; + + if (s_defaultInitGOGetter != null) + { + defaultInitGO = s_defaultInitGOGetter(); + } + + if (defaultInitGO == null) + { + defaultInitGO = new GameObject("[" + typeof(T).Name + "]"); + } + + s_instance = defaultInitGO.AddComponent<T>(); + } + + if (!s_instance.m_initialized) + { + s_instance.m_initialized = true; + s_instance.OnSingletonBehaviourInitialized(); + } + } + } + + /// <summary> + /// Must set before the instance being initialized + /// </summary> + public static void SetDefaultInitGameObjectGetter(Func<GameObject> getter) { s_defaultInitGOGetter = getter; } + + protected virtual void OnSingletonBehaviourInitialized() { } + + protected virtual void OnApplicationQuit() + { + s_isApplicationQuitting = true; + } + + protected virtual void OnDestroy() + { + if (!s_isApplicationQuitting && s_instance == this) + { + s_instance = null; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs.meta b/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9ff478ec57d150e7ec811ee60365236a72478c2e --- /dev/null +++ b/Assets/HTC.UnityPlugin/Utility/SingletonBehaviour.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eec4c287060d7904eb1fa59420904d3b +timeCreated: 1492670918 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule.meta b/Assets/HTC.UnityPlugin/VRModule.meta new file mode 100644 index 0000000000000000000000000000000000000000..73e460bc6f99c399ba52951d9f123aa5960ff16f --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6812a54c86e8c8b498c6bbc618396431 +folderAsset: yes +timeCreated: 1495008662 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Editor.meta b/Assets/HTC.UnityPlugin/VRModule/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..db394016807a5b4969faf2479aa90e7c95fe3855 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2436db39a07811446971801fa8cdd527 +folderAsset: yes +timeCreated: 1495089827 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..3612fd4c265c68f8abc111e52b4b711a60a069a0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 905407d3faa3ed84681ef07539164e38 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..7a8325ab80ba33ddf593f753a3e038c0949fbad7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs @@ -0,0 +1,625 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using HTC.UnityPlugin.Vive; +using UnityEditor; +using UnityEditor.Callbacks; +using UnityEditorInternal.VR; +using UnityEngine; +using Assembly = System.Reflection.Assembly; + +#if UNITY_2018_1_OR_NEWER +using UnityEditor.PackageManager; +using PackageInfo = UnityEditor.PackageManager.PackageInfo; +#endif + +#if UNITY_2017_3_OR_NEWER +using UnityEditor.Compilation; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + // This script manage define symbols used by VIU + public class VRModuleManagerEditor : AssetPostprocessor +#if UNITY_2017_1_OR_NEWER + , UnityEditor.Build.IActiveBuildTargetChanged +#endif + { + public class SymbolRequirement + { + public class ReqFieldInfo + { + public string typeName = string.Empty; + public string name = string.Empty; + public BindingFlags bindingAttr = BindingFlags.Default; + } + + public class ReqMethodInfo + { + public string typeName = string.Empty; + public string name = string.Empty; + public BindingFlags bindingAttr; + public string[] argTypeNames = null; + public ParameterModifier[] argModifiers = null; + } + + public string symbol = string.Empty; + public string[] reqTypeNames = null; + public string[] reqAnyTypeNames = null; + public string[] reqFileNames = null; + public string[] reqAnyFileNames = null; + public ReqFieldInfo[] reqFields = null; + public ReqFieldInfo[] reqAnyFields = null; + public ReqMethodInfo[] reqMethods = null; + public ReqMethodInfo[] reqAnyMethods = null; + public Func<SymbolRequirement, bool> validateFunc = null; + + public static Dictionary<string, Type> s_foundTypes; + + public static void ResetFoundTypes() + { + if (s_foundTypes != null) + { + s_foundTypes.Clear(); + } + } + + public void FindRequiredTypesInAssembly(Assembly assembly) + { + if (reqTypeNames != null) + { + foreach (var name in reqTypeNames) + { + TryAddTypeFromAssembly(name, assembly); + } + } + + if (reqAnyTypeNames != null) + { + foreach (var name in reqAnyTypeNames) + { + TryAddTypeFromAssembly(name, assembly); + } + } + + if (reqFields != null) + { + foreach (var field in reqFields) + { + TryAddTypeFromAssembly(field.typeName, assembly); + } + } + + if (reqAnyFields != null) + { + foreach (var field in reqAnyFields) + { + TryAddTypeFromAssembly(field.typeName, assembly); + } + } + + if (reqMethods != null) + { + foreach (var method in reqMethods) + { + TryAddTypeFromAssembly(method.typeName, assembly); + + if (method.argTypeNames != null) + { + foreach (var typeName in method.argTypeNames) + { + TryAddTypeFromAssembly(typeName, assembly); + } + } + } + } + + if (reqAnyMethods != null) + { + foreach (var method in reqAnyMethods) + { + TryAddTypeFromAssembly(method.typeName, assembly); + + if (method.argTypeNames != null) + { + foreach (var typeName in method.argTypeNames) + { + TryAddTypeFromAssembly(typeName, assembly); + } + } + } + } + } + + private bool TryAddTypeFromAssembly(string name, Assembly assembly) + { + if (string.IsNullOrEmpty(name) || RequiredTypeFound(name)) { return false; } + var type = assembly.GetType(name); + if (type == null) { return false; } + if (s_foundTypes == null) { s_foundTypes = new Dictionary<string, Type>(); } + s_foundTypes.Add(name, type); + + return true; + } + + private bool RequiredTypeFound(string name) + { + return s_foundTypes == null ? false : s_foundTypes.ContainsKey(name); + } + + public bool Validate() + { + if (s_foundTypes == null) { return false; } + + if (reqTypeNames != null) + { + foreach (var name in reqTypeNames) + { + if (!s_foundTypes.ContainsKey(name)) { return false; } + } + } + + if (reqAnyTypeNames != null) + { + var found = false; + + foreach (var name in reqAnyTypeNames) + { + if (s_foundTypes.ContainsKey(name)) + { + found = true; + break; + } + } + + if (!found) { return false; } + } + + if (reqFileNames != null) + { + foreach (var requiredFile in reqFileNames) + { + if (!DoesFileExist(requiredFile)) + { + return false; + } + } + } + + if (reqAnyFileNames != null) + { + var found = false; + + foreach (var requiredFile in reqAnyFileNames) + { + var files = Directory.GetFiles(Application.dataPath, requiredFile, SearchOption.AllDirectories); + if (files != null && files.Length > 0) + { + found = true; + break; + } + } + + if (!found) { return false; } + } + + if (reqFields != null) + { + foreach (var field in reqFields) + { + Type type; + if (!s_foundTypes.TryGetValue(field.typeName, out type)) { return false; } + if (type.GetField(field.name, field.bindingAttr) == null) { return false; } + } + } + + if (reqAnyFields != null) + { + var found = false; + + foreach (var field in reqAnyFields) + { + Type type; + if (!s_foundTypes.TryGetValue(field.typeName, out type)) { continue; } + if (type.GetField(field.name, field.bindingAttr) == null) { continue; } + + found = true; + break; + } + + if (!found) { return false; } + } + + if (reqMethods != null) + { + foreach (var method in reqMethods) + { + Type type; + if (!s_foundTypes.TryGetValue(method.typeName, out type)) { return false; } + + var argTypes = new Type[method.argTypeNames == null ? 0 : method.argTypeNames.Length]; + for (int i = argTypes.Length - 1; i >= 0; --i) + { + if (!s_foundTypes.TryGetValue(method.argTypeNames[i], out argTypes[i])) { return false; } + } + + if (type.GetMethod(method.name, method.bindingAttr, null, CallingConventions.Any, argTypes, method.argModifiers ?? new ParameterModifier[0]) == null) { return false; } + } + } + + if (reqAnyMethods != null) + { + var found = false; + + foreach (var method in reqAnyMethods) + { + Type type; + if (!s_foundTypes.TryGetValue(method.typeName, out type)) { continue; } + + if (method.argTypeNames == null) + { + continue; + } + + bool isAllArgTypesFound = true; + var argTypes = new Type[method.argTypeNames.Length]; + for (int i = argTypes.Length - 1; i >= 0; --i) + { + if (!s_foundTypes.TryGetValue(method.argTypeNames[i], out argTypes[i])) + { + isAllArgTypesFound = false; + break; + } + } + + if (!isAllArgTypesFound) + { + continue; + } + + if (type.GetMethod(method.name, method.bindingAttr, null, CallingConventions.Any, argTypes, method.argModifiers ?? new ParameterModifier[0]) == null) { continue; } + + found = true; + break; + } + + if (!found) { return false; } + } + + if (validateFunc != null) + { + if (!validateFunc(this)) { return false; } + } + + return true; + } + } + + public abstract class SymbolRequirementCollection : List<SymbolRequirement> { } + + private static List<SymbolRequirement> s_symbolReqList; + private static HashSet<string> s_referencedAssemblyNameSet; + + static VRModuleManagerEditor() + { + s_symbolReqList = new List<SymbolRequirement>(); + + foreach (var type in Assembly.GetAssembly(typeof(SymbolRequirementCollection)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(SymbolRequirementCollection)))) + { + s_symbolReqList.AddRange((SymbolRequirementCollection)Activator.CreateInstance(type)); + } + + s_symbolReqList.Add(new SymbolRequirement() + { + symbol = "VIU_PLUGIN", + validateFunc = (req) => true, + }); + + s_symbolReqList.Add(new SymbolRequirement() + { + symbol = "VIU_PACKAGE", + validateFunc = (req) => VIUSettingsEditor.PackageManagerHelper.IsPackageInList(VIUSettingsEditor.VIUPackageName), + }); + + s_symbolReqList.Add(new SymbolRequirement() + { + symbol = "VIU_SIUMULATOR_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportSimulator, + }); + + // Obsolete symbol, will be removed in all condition + s_symbolReqList.Add(new SymbolRequirement() + { + symbol = "VIU_EXTERNAL_CAMERA_SWITCH", + validateFunc = (req) => false, + }); + + // Obsolete symbol, will be removed in all condition + s_symbolReqList.Add(new SymbolRequirement() + { + symbol = "VIU_BINDING_INTERFACE_SWITCH", + validateFunc = (req) => false, + }); + +#if !UNITY_2017_1_OR_NEWER + EditorUserBuildSettings.activeBuildTargetChanged += UpdateScriptingDefineSymbols; +#endif + } + +#if UNITY_2017_1_OR_NEWER + public int callbackOrder { get { return 0; } } + + public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget) + { + UpdateScriptingDefineSymbols(); + } +#endif + + [DidReloadScripts] + public static void UpdateScriptingDefineSymbols() + { + if (!s_isUpdatingScriptingDefineSymbols) + { + s_isUpdatingScriptingDefineSymbols = true; + EditorApplication.update += DoUpdateScriptingDefineSymbols; + } + } + + // From UnityEditor.AssetPostprocessor + public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + foreach (string assetPath in deletedAssets) + { + string deletedFileName = Path.GetFileName(assetPath); + bool isFound = s_symbolReqList.Exists((req) => + { + if (req == null || req.reqFileNames == null) + { + return false; + } + + foreach (string fileName in req.reqFileNames) + { + if (fileName == deletedFileName) + { + return true; + } + } + + return false; + }); + + if (isFound) + { + if (!s_delayCallRemoveRegistered) + { + s_delayCallRemoveRegistered = true; + EditorApplication.delayCall += RemoveAllVIUSymbols; + } + break; + } + } + } + + private static bool s_isUpdatingScriptingDefineSymbols = false; + private static void DoUpdateScriptingDefineSymbols() + { + if (EditorApplication.isPlaying) { EditorApplication.update -= DoUpdateScriptingDefineSymbols; return; } + + // some symbolRequirement depends on installed packages (only works when UNITY_2018_1_OR_NEWER) + Vive.VIUSettingsEditor.PackageManagerHelper.PreparePackageList(); + + if (Vive.VIUSettingsEditor.PackageManagerHelper.isPreparingList) { return; } + + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + if (!IsReferenced(assembly)) + { + continue; + } + + try + { + foreach (var symbolReq in s_symbolReqList) + { + symbolReq.FindRequiredTypesInAssembly(assembly); + } + } + catch (ReflectionTypeLoadException e) + { + Debug.LogWarning(e); + Debug.LogWarning("load assembly " + assembly.FullName + " fail"); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + + var defineSymbols = GetDefineSymbols(); + var defineSymbolsChanged = false; + + foreach (var symbolReq in s_symbolReqList) + { + if (symbolReq.Validate()) + { + if (!defineSymbols.Contains(symbolReq.symbol)) + { + defineSymbols.Add(symbolReq.symbol); + defineSymbolsChanged = true; + } + } + else + { + if (defineSymbols.RemoveAll((symbol) => symbol == symbolReq.symbol) > 0) + { + defineSymbolsChanged = true; + } + } + } + + if (defineSymbolsChanged) + { + SetDefineSymbols(defineSymbols); + } + + SymbolRequirement.ResetFoundTypes(); + + s_isUpdatingScriptingDefineSymbols = false; + EditorApplication.update -= DoUpdateScriptingDefineSymbols; + } + + private static bool s_delayCallRemoveRegistered; + + private static void RemoveAllVIUSymbols() + { + s_delayCallRemoveRegistered = false; + EditorApplication.delayCall -= RemoveAllVIUSymbols; + + var defineSymbols = GetDefineSymbols(); + + foreach (var symbolReq in s_symbolReqList) + { + defineSymbols.Remove(symbolReq.symbol); + } + + SetDefineSymbols(defineSymbols); + } + + private static List<string> GetDefineSymbols() + { + return new List<string>(PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)).Split(';')); + } + + private static void SetDefineSymbols(List<string> symbols) + { + PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget), string.Join(";", symbols.ToArray())); + } + + private static bool IsReferenced(Assembly assembly) + { + return GetReferencedAssemblyNameSet().Contains(assembly.GetName().Name); + } + + private static HashSet<string> GetReferencedAssemblyNameSet() + { + if (s_referencedAssemblyNameSet != null) + { + return s_referencedAssemblyNameSet; + } + + s_referencedAssemblyNameSet = new HashSet<string>(); + Assembly playerAssembly = typeof(VRModule).Assembly; + Assembly editorAssembly = typeof(VRModuleManagerEditor).Assembly; + + // C# player referenced assemblies + foreach (AssemblyName asmName in playerAssembly.GetReferencedAssemblies()) + { + s_referencedAssemblyNameSet.Add(asmName.Name); + } + + // C# editor referenced assemblies + foreach (AssemblyName asmName in editorAssembly.GetReferencedAssemblies()) + { + s_referencedAssemblyNameSet.Add(asmName.Name); + } + +#if UNITY_2018_1_OR_NEWER + // Unity player referenced assemblies + UnityEditor.Compilation.Assembly playerUnityAsm = FindUnityAssembly(playerAssembly.GetName().Name, AssembliesType.Player); + if (playerUnityAsm != null) + { + foreach (UnityEditor.Compilation.Assembly asm in playerUnityAsm.assemblyReferences) + { + s_referencedAssemblyNameSet.Add(asm.name); + } + } + else + { + Debug.LogWarning("Player assembly not found."); + } + + // Unity editor referenced assemblies + UnityEditor.Compilation.Assembly editorUnityAsm = FindUnityAssembly(editorAssembly.GetName().Name, AssembliesType.Editor); + if (editorUnityAsm != null) + { + foreach (UnityEditor.Compilation.Assembly asm in editorUnityAsm.assemblyReferences) + { + s_referencedAssemblyNameSet.Add(asm.name); + } + } + else + { + Debug.LogWarning("Editor assembly not found."); + } +#elif UNITY_2017_3_OR_NEWER + UnityEditor.Compilation.Assembly[] assemblies = CompilationPipeline.GetAssemblies(); + foreach (UnityEditor.Compilation.Assembly asm in assemblies) + { + s_referencedAssemblyNameSet.Add(asm.name); + } +#endif + + return s_referencedAssemblyNameSet; + } + +#if UNITY_2018_1_OR_NEWER + private static UnityEditor.Compilation.Assembly FindUnityAssembly(string name, AssembliesType type) + { + UnityEditor.Compilation.Assembly foundAssembly = null; + UnityEditor.Compilation.Assembly[] assemblies = CompilationPipeline.GetAssemblies(type); + foreach (UnityEditor.Compilation.Assembly asm in assemblies) + { + if (asm.name == name) + { + foundAssembly = asm; + break; + } + } + + return foundAssembly; + } +#endif + + private static bool DoesFileExist(string fileName) + { + string[] fileNamesInAsset = Directory.GetFiles(Application.dataPath, fileName, SearchOption.AllDirectories); + if (fileNamesInAsset != null && fileNamesInAsset.Length > 0) + { + return true; + } +#if UNITY_2018_1_OR_NEWER + PackageCollection packages = VIUSettingsEditor.PackageManagerHelper.GetPackageList(); + foreach (UnityEditor.PackageManager.PackageInfo package in packages) + { + if (package == null) + { + continue; + } + + if (package.source == PackageSource.BuiltIn) + { + continue; + } + + var resolvedPath = package.resolvedPath.Trim(); + if (string.IsNullOrEmpty(resolvedPath)) + { + continue; + } + + string[] fileNamesInPackage = Directory.GetFiles(resolvedPath, fileName, SearchOption.AllDirectories); + if (fileNamesInPackage != null && fileNamesInPackage.Length > 0) + { + return true; + } + } +#endif + return false; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..bd1bf2e64ed3128823570efdfa94988b8404381b --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Editor/VRModuleManagerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 971f2b1383825c64caf7fbef7ed749b7 +timeCreated: 1495089835 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules.meta b/Assets/HTC.UnityPlugin/VRModule/Modules.meta new file mode 100644 index 0000000000000000000000000000000000000000..3d576a3e031b6ea99f5fb55ad9c0064477988d8d --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aefc8dff2aaff6244be201d7c53d4fec +folderAsset: yes +timeCreated: 1495102008 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..bc95aeaaf04b2080d02a66f6c6f49fe9209a9028 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4c4ec66ec3052444bad0f200dac46749 +folderAsset: yes +timeCreated: 1495173599 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..bd3fb69411a88a966cddb0a08fe2ff02d74fbed8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs @@ -0,0 +1,33 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using SymbolRequirement = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirement; +using SymbolRequirementCollection = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirementCollection; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public class GoogleVRSymbolRequirementCollection : SymbolRequirementCollection + { + public GoogleVRSymbolRequirementCollection() + { + Add(new SymbolRequirement() + { + symbol = "VIU_GOOGLEVR_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportDaydream, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_GOOGLEVR", + reqTypeNames = new string[] { "GvrUnitySdkVersion" }, + reqFileNames = new string[] { "GvrUnitySdkVersion.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_GOOGLEVR_1_150_0_NEWER", + reqTypeNames = new string[] { "GvrControllerInputDevice" }, + reqFileNames = new string[] { "GvrControllerInputDevice.cs" }, + }); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2abefb7a7ac37e0bbd388a19522bf7f357c8459e --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/GoogleVRModuleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ed2561d406e73a48af2cdd0594e9516 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..d4afd9452c2cdfde14595de4bec44cee3d9b9d8e --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f53c583fdc8ea3243b85b9986da25cd9 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..09f7d4e59e893fdcce3b5e62aacb21a395310b56 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs @@ -0,0 +1,148 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Reflection; +using UnityEngine; +using SymbolRequirement = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirement; +using SymbolRequirementCollection = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirementCollection; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public class OculusVRSymbolRequirementCollection : SymbolRequirementCollection + { + public OculusVRSymbolRequirementCollection() + { + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_DESKTOP_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportOculus, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_ANDROID_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportOculusGo, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR", + reqTypeNames = new string[] { "OVRInput" }, + reqFileNames = new string[] { "OVRInput.cs" }, + }); + + Add(new SymbolRequirement + { + symbol = "VIU_OCULUSVR_AVATAR", + reqTypeNames = new string[] { "OvrAvatar" }, + reqFileNames = new string[] { "OvrAvatar.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_1_32_0_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "OvrAvatarSDKManager", + name = "RequestAvatarSpecification", + argTypeNames = new string[] + { + "System.UInt64", + "specificationCallback", + "System.Boolean", + "ovrAvatarAssetLevelOfDetail", + "System.Boolean", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + } + }, + reqFileNames = new string[] { "OvrAvatarSDKManager.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_1_36_0_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "OvrAvatarSDKManager", + name = "RequestAvatarSpecification", + argTypeNames = new string[] + { + "System.UInt64", + "specificationCallback", + "System.Boolean", + "ovrAvatarAssetLevelOfDetail", + "System.Boolean", + "ovrAvatarLookAndFeelVersion", + "ovrAvatarLookAndFeelVersion", + "System.Boolean", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + } + }, + reqFileNames = new string[] { "OvrAvatarSDKManager.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_1_37_0_OR_NEWER", + reqTypeNames = new string[] { "OVRPlugin+SystemHeadset" }, + validateFunc = (req) => + { + Type oculusQuest; + if (SymbolRequirement.s_foundTypes.TryGetValue("OVRPlugin+SystemHeadset", out oculusQuest) && oculusQuest.IsEnum) + { + if (Enum.IsDefined(oculusQuest, "Oculus_Quest") && Enum.IsDefined(oculusQuest, "Rift_S")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "OVRPlugin.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_16_0_OR_NEWER", + reqTypeNames = new string[] { "OVRPlugin+SystemHeadset" }, + validateFunc = (req) => + { + Type oculusQuest; + if (SymbolRequirement.s_foundTypes.TryGetValue("OVRPlugin+SystemHeadset", out oculusQuest) && oculusQuest.IsEnum) + { + if (Enum.IsDefined(oculusQuest, "Oculus_Link_Quest")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "OVRPlugin.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OCULUSVR_19_0_OR_NEWER", + reqTypeNames = new string[] { "OVRPlugin+SystemHeadset" }, + validateFunc = (req) => + { + Type oculusGo; + if (SymbolRequirement.s_foundTypes.TryGetValue("OVRPlugin+SystemHeadset", out oculusGo) && oculusGo.IsEnum) + { + if (!Enum.IsDefined(oculusGo, "Oculus_Go")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "OVRPlugin.cs" }, + }); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2ad7f3e44c6545f63e6e0d745cfbdbb7561f0f7b --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/OculusVRModuleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcd15f6aecadeae40a05d47638446aeb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..dda157c20e7f92b50ef9267270f2ddab8519f64d --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs @@ -0,0 +1,180 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Reflection; +using SymbolRequirement = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirement; +using SymbolRequirementCollection = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirementCollection; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public class SteamVRSymbolRequirementCollection : SymbolRequirementCollection + { + public SteamVRSymbolRequirementCollection() + { + Add(new SymbolRequirement() + { + symbol = "VIU_OPENVR_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportOpenVR, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_OPENVR_API", + reqTypeNames = new string[] { "Valve.VR.OpenVR" }, + reqFileNames = new string[] { "openvr_api.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR", + reqTypeNames = new string[] { "Valve.VR.OpenVR" }, + reqAnyTypeNames = new string[] { "SteamVR", "Valve.VR.SteamVR" }, + reqFileNames = new string[] { "openvr_api.cs", "SteamVR.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_1_1_1", + reqTypeNames = new string[] { "SteamVR_Utils+Event" }, + reqFileNames = new string[] { "SteamVR_Utils.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_1_2_0_OR_NEWER", + reqAnyTypeNames = new string[] { "SteamVR_Events", "Valve.VR.SteamVR_Events" }, + reqFileNames = new string[] { "SteamVR_Events.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_1_2_1_OR_NEWER", + reqAnyMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "SteamVR_Events", + name = "System", + argTypeNames = new string[] { "Valve.VR.EVREventType" }, + bindingAttr = BindingFlags.Public | BindingFlags.Static, + }, + new SymbolRequirement.ReqMethodInfo() + { + typeName = "Valve.VR.SteamVR_Events", + name = "System", + argTypeNames = new string[] { "Valve.VR.EVREventType" }, + bindingAttr = BindingFlags.Public | BindingFlags.Static, + } + }, + reqFileNames = new string[] { "SteamVR_Events.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_1_2_2_OR_NEWER", + reqAnyFields = new SymbolRequirement.ReqFieldInfo[] + { + new SymbolRequirement.ReqFieldInfo() + { + typeName = "SteamVR_ExternalCamera+Config", + name = "r", + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + }, + new SymbolRequirement.ReqFieldInfo() + { + typeName = "Valve.VR.SteamVR_ExternalCamera+Config", + name = "r", + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + } + }, + reqFileNames = new string[] { "SteamVR_ExternalCamera.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_1_2_3_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "Valve.VR.CVRSystem", + name = "IsInputAvailable", + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + } + }, + reqFileNames = new string[] { "openvr_api.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_2_0_0_OR_NEWER", + reqTypeNames = new string[] { "Valve.VR.SteamVR" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_2_1_0_OR_NEWER", + reqTypeNames = new string[] { "Valve.VR.SteamVR_ActionSet_Manager" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_2_2_0_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "Valve.VR.SteamVR_ActionSet_Manager", + name = "UpdateActionStates", + argTypeNames = new string[] + { + "System.Boolean", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Static, + } + }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_2_4_0_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "Valve.VR.SteamVR_Input", + name = "GetActionsFilePath", + argTypeNames = new string[] + { + "System.Boolean", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Static, + } + }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_STEAMVR_2_6_0_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "Valve.VR.CVROverlay", + name = "ShowKeyboard", + argTypeNames = new string[] + { + "System.Int32", + "System.Int32", + "System.UInt32", + "System.String", + "System.UInt32", + "System.String", + "System.UInt64", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Instance, + } + }, + }); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6b545262632357dbf78eb3ff3b27325b43c23bbe --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/SteamVRModuleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de219d81bd5f2054fb730d1e02ca64dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..bd19e8acd6cda959d276539706fa1b566bfcd7d6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs @@ -0,0 +1,125 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using HTC.UnityPlugin.Vive; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public static class UnityVRModuleEditor + { +#if UNITY_5_5_OR_NEWER && !UNITY_2020_1_OR_NEWER + [InitializeOnLoadMethod] + private static void StartCheckEnforceInputManagerBindings() + { + EditorApplication.update += EnforceInputManagerBindings; + } + + // Add joystick axis input bindings to InputManager + // See OpenVR/Oculus left/right controllers mapping at + // https://docs.unity3d.com/Manual/OpenVRControllers.html + private static void EnforceInputManagerBindings() + { + try + { + var inputSettings = AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/InputManager.asset"); + if (inputSettings == null || inputSettings.Length <= 0) { return; } + + var serializedInputSettings = new SerializedObject(inputSettings); + + var axisObj = new Axis(); + for (int i = 0, imax = UnityEngineVRModule.GetUnityAxisCount(); i < imax; ++i) + { + axisObj.name = UnityEngineVRModule.GetUnityAxisNameByIndex(i); + axisObj.axis = UnityEngineVRModule.GetUnityAxisIdByIndex(i) - 1; + BindAxis(serializedInputSettings, axisObj); + } + + EditorApplication.update -= EnforceInputManagerBindings; + } + catch (Exception e) + { + Debug.LogError(e + " Failed to apply Vive Input Utility input manager bindings."); + } + } + + private class Axis + { + public string name = string.Empty; + public string descriptiveName = string.Empty; + public string descriptiveNegativeName = string.Empty; + public string negativeButton = string.Empty; + public string positiveButton = string.Empty; + public string altNegativeButton = string.Empty; + public string altPositiveButton = string.Empty; + public float gravity = 0.0f; + public float dead = 0.001f; + public float sensitivity = 5.0f; + public bool snap = false; + public bool invert = false; + public int type = 2; + public int axis = 0; + public int joyNum = 0; + } + + private static void BindAxis(SerializedObject serializedInputSettings, Axis axis) + { + var axesProperty = serializedInputSettings.FindProperty("m_Axes"); + + var axisIter = axesProperty.Copy(); + axisIter.Next(true); + axisIter.Next(true); + while (axisIter.Next(false)) + { + if (axisIter.FindPropertyRelative("m_Name").stringValue == axis.name) + { + // Axis already exists. Don't create binding. + return; + } + } + + axesProperty.arraySize++; + serializedInputSettings.ApplyModifiedProperties(); + + SerializedProperty axisProperty = axesProperty.GetArrayElementAtIndex(axesProperty.arraySize - 1); + axisProperty.FindPropertyRelative("m_Name").stringValue = axis.name; + axisProperty.FindPropertyRelative("descriptiveName").stringValue = axis.descriptiveName; + axisProperty.FindPropertyRelative("descriptiveNegativeName").stringValue = axis.descriptiveNegativeName; + axisProperty.FindPropertyRelative("negativeButton").stringValue = axis.negativeButton; + axisProperty.FindPropertyRelative("positiveButton").stringValue = axis.positiveButton; + axisProperty.FindPropertyRelative("altNegativeButton").stringValue = axis.altNegativeButton; + axisProperty.FindPropertyRelative("altPositiveButton").stringValue = axis.altPositiveButton; + axisProperty.FindPropertyRelative("gravity").floatValue = axis.gravity; + axisProperty.FindPropertyRelative("dead").floatValue = axis.dead; + axisProperty.FindPropertyRelative("sensitivity").floatValue = axis.sensitivity; + axisProperty.FindPropertyRelative("snap").boolValue = axis.snap; + axisProperty.FindPropertyRelative("invert").boolValue = axis.invert; + axisProperty.FindPropertyRelative("type").intValue = axis.type; + axisProperty.FindPropertyRelative("axis").intValue = axis.axis; + axisProperty.FindPropertyRelative("joyNum").intValue = axis.joyNum; + serializedInputSettings.ApplyModifiedProperties(); + } +#endif + } + + public class UnityEngineVRSymbolRequirementCollection : VRModuleManagerEditor.SymbolRequirementCollection + { + public UnityEngineVRSymbolRequirementCollection() + { + Add(new VRModuleManagerEditor.SymbolRequirement() + { + symbol = "VIU_XR_GENERAL_SETTINGS", + reqTypeNames = new string[] { "UnityEngine.XR.Management.XRGeneralSettings" }, + reqFileNames = new string[] { "XRGeneralSettings.cs" }, + }); + + Add(new VRModuleManagerEditor.SymbolRequirement() + { + symbol = "VIU_XR_PACKAGE_METADATA_STORE", + reqTypeNames = new string[] { "UnityEditor.XR.Management.Metadata.XRPackageMetadataStore" }, + reqFileNames = new string[] { "XRPackageMetadata.cs" }, + }); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d86bf3ec0150f37cadff26f138863c79837dc080 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/UnityEngineVRModuleEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b0504fe5a4f391a419cf1ebd6d696c56 +timeCreated: 1495173744 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..657b96a59492906e2e616a007cd04655c99f49b3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs @@ -0,0 +1,132 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; +using System.Reflection; +using HTC.UnityPlugin.Vive; +using SymbolRequirement = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirement; +using SymbolRequirementCollection = HTC.UnityPlugin.VRModuleManagement.VRModuleManagerEditor.SymbolRequirementCollection; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public class WaveVRSymbolRequirementCollection : SymbolRequirementCollection + { + public WaveVRSymbolRequirementCollection() + { + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_SUPPORT", + validateFunc = (req) => Vive.VIUSettingsEditor.supportWaveVR, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR", + reqTypeNames = new string[] { "WaveVR" }, + reqFileNames = new string[] { "WaveVR.cs" }, + }); + + Add(new VRModuleManagerEditor.SymbolRequirement() + { + symbol = "VIU_WAVEXR_ESSENCE_RENDERMODEL", + reqTypeNames = new string[] { "Wave.Essence.Controller.RenderModel", "Wave.Essence.Controller.ButtonEffect", "Wave.Essence.Controller.ShowIndicator" }, + reqFileNames = new string[] { "RenderModel.cs", "ButtonEffect.cs", "ShowIndicator.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_2_0_32_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "wvr.Interop", + name = "WVR_GetInputDeviceState", + argTypeNames = new string[] + { + "wvr.WVR_DeviceType", + "System.UInt32", + "System.UInt32&", + "System.UInt32&", + "wvr.WVR_AnalogState_t[]", + "System.UInt32", + }, + bindingAttr = BindingFlags.Public | BindingFlags.Static, + } + }, + reqFileNames = new string[] { "wvr.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_2_1_0_OR_NEWER", + reqTypeNames = new string[] { "wvr.WVR_InputId" }, + validateFunc = (req) => + { + Type wvrInputIdType; + if (SymbolRequirement.s_foundTypes.TryGetValue("wvr.WVR_InputId", out wvrInputIdType) && wvrInputIdType.IsEnum) + { + if (Enum.IsDefined(wvrInputIdType, "WVR_InputId_Alias1_Digital_Trigger")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "wvr.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_3_0_0_OR_NEWER", + reqTypeNames = new string[] { "wvr.WVR_Eye" }, + validateFunc = (req) => + { + Type wvrEyeType; + if (SymbolRequirement.s_foundTypes.TryGetValue("wvr.WVR_Eye", out wvrEyeType) && wvrEyeType.IsEnum) + { + if (Enum.IsDefined(wvrEyeType, "WVR_Eye_Both")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "wvr.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_3_1_0_OR_NEWER", + reqTypeNames = new string[] { "wvr.WVR_Intensity" }, + validateFunc = (req) => + { + Type wvrIntensityType; + if (SymbolRequirement.s_foundTypes.TryGetValue("wvr.WVR_Intensity", out wvrIntensityType) && wvrIntensityType.IsEnum) + { + if (Enum.IsDefined(wvrIntensityType, "WVR_Intensity_Normal")) + { + return true; + } + } + return false; + }, + reqFileNames = new string[] { "wvr.cs" }, + }); + + Add(new SymbolRequirement() + { + symbol = "VIU_WAVEVR_3_1_3_OR_NEWER", + reqMethods = new SymbolRequirement.ReqMethodInfo[] + { + new SymbolRequirement.ReqMethodInfo() + { + typeName = "wvr.Interop", + name = "WVR_PostInit", + bindingAttr = BindingFlags.Public | BindingFlags.Static, + } + }, + reqFileNames = new string[] { "wvr.cs" }, + }); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fdeaf8d9d9f40b39673aad802f980ea7a91e111c --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/Editor/WaveVRModuleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc02ecd46efaec0469f5c9a170948d4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..36903d14dedd84825ba13bc8f1cb0c587d036db2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs @@ -0,0 +1,451 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +#if VIU_GOOGLEVR && UNITY_5_6_OR_NEWER +using UnityEngine; +using HTC.UnityPlugin.Vive; + +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#else +using XRSettings = UnityEngine.VR.VRSettings; +using XRDevice = UnityEngine.VR.VRDevice; +using XRNode = UnityEngine.VR.VRNode; +using InputTracking = UnityEngine.VR.InputTracking; +#endif + +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public static readonly bool isGoogleVRPluginDetected = +#if VIU_GOOGLEVR + true; +#else + false; +#endif + public static readonly bool isGoogleVRSupported = +#if VIU_GOOGLEVR_SUPPORT + true; +#else + false; +#endif + } + + public sealed class GoogleVRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.DayDream; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.DayDream; } } + +#if VIU_GOOGLEVR && UNITY_5_6_OR_NEWER + private const uint HEAD_INDEX = 0u; + + private uint m_rightIndex = INVALID_DEVICE_INDEX; + private uint m_leftIndex = INVALID_DEVICE_INDEX; + + public override uint GetRightControllerDeviceIndex() { return m_rightIndex; } + + public override uint GetLeftControllerDeviceIndex() { return m_leftIndex; } + + public override bool ShouldActiveModule() + { + return VIUSettings.activateGoogleVRModule && XRSettings.enabled && XRSettings.loadedDeviceName == "daydream"; + } + + public override void Update() + { + UpdateDeviceInput(); + ProcessDeviceInputChanged(); + } + + public override void BeforeRenderUpdate() + { + FlushDeviceState(); + UpdateConnectedDevices(); + ProcessConnectedDeviceChanged(); + UpdateDevicePose(); + ProcessDevicePoseChanged(); + } + +#if VIU_GOOGLEVR_1_150_0_NEWER + private const uint RIGHT_HAND_INDEX = 1u; + private const uint LEFT_HAND_INDEX = 2u; + + private GvrControllerInputDevice m_rightDevice; + private GvrControllerInputDevice m_leftDevice; + private GvrArmModel m_rightArm; + private GvrArmModel m_leftArm; + + public override void OnActivated() + { + EnsureDeviceStateLength(3); + + if (Object.FindObjectOfType<GvrHeadset>() == null) + { + VRModule.Instance.gameObject.AddComponent<GvrHeadset>(); + } + + if (Object.FindObjectOfType<GvrControllerInput>() == null) + { + VRModule.Instance.gameObject.AddComponent<GvrControllerInput>(); + } + + m_rightDevice = GvrControllerInput.GetDevice(GvrControllerHand.Dominant); + m_leftDevice = GvrControllerInput.GetDevice(GvrControllerHand.Dominant); + + var armModels = VRModule.Instance.GetComponents<GvrArmModel>(); + + if (armModels != null && armModels.Length >= 1) + { + m_rightArm = armModels[0]; + } + else + { + m_rightArm = VRModule.Instance.GetComponent<GvrArmModel>(); + + if (m_rightArm == null) + { + m_rightArm = VRModule.Instance.gameObject.AddComponent<GvrArmModel>(); + } + } + m_rightArm.ControllerInputDevice = m_rightDevice; + + if (armModels != null && armModels.Length >= 2) + { + m_leftArm = armModels[1]; + } + else + { + m_leftArm = VRModule.Instance.GetComponent<GvrArmModel>(); + + if (m_leftArm == null) + { + m_leftArm = VRModule.Instance.gameObject.AddComponent<GvrArmModel>(); + } + } + m_leftArm.ControllerInputDevice = m_leftDevice; + } + + // update connected devices + private void UpdateConnectedDevices() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(HEAD_INDEX, out prevState, out currState); + if (!XRDevice.isPresent) + { + if (prevState.isConnected) + { + currState.Reset(); + } + } + else + { + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = VRModuleDeviceClass.HMD; + currState.serialNumber = XRDevice.model + " HMD"; + currState.modelNumber = XRDevice.model + " HMD"; + currState.deviceModel = VRModuleDeviceModel.DaydreamHMD; + currState.renderModelName = string.Empty; + } + } + + EnsureValidDeviceState(RIGHT_HAND_INDEX, out prevState, out currState); + if (m_rightDevice.State != GvrConnectionState.Connected) + { + if (prevState.isConnected) + { + currState.Reset(); + m_rightIndex = INVALID_DEVICE_INDEX; + } + } + else + { + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = VRModuleDeviceClass.Controller; + currState.serialNumber = XRDevice.model + " Controller Right"; + currState.modelNumber = XRDevice.model + " Controller Right"; + currState.deviceModel = VRModuleDeviceModel.DaydreamController; + currState.renderModelName = string.Empty; + currState.input2DType = VRModuleInput2DType.TouchpadOnly; + m_rightIndex = RIGHT_HAND_INDEX; + } + } + + EnsureValidDeviceState(LEFT_HAND_INDEX, out prevState, out currState); + if (m_leftDevice.State != GvrConnectionState.Connected) + { + if (prevState.isConnected) + { + currState.Reset(); + m_leftIndex = INVALID_DEVICE_INDEX; + } + } + else + { + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = VRModuleDeviceClass.Controller; + currState.serialNumber = XRDevice.model + " Controller Left"; + currState.modelNumber = XRDevice.model + " Controller Left"; + currState.deviceModel = VRModuleDeviceModel.DaydreamController; + currState.renderModelName = string.Empty; + currState.input2DType = VRModuleInput2DType.TouchpadOnly; + m_leftIndex = RIGHT_HAND_INDEX; + } + } + } + + private void UpdateDevicePose() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(HEAD_INDEX, out prevState, out currState); + if (currState.isConnected) + { + currState.position = InputTracking.GetLocalPosition(XRNode.Head); + currState.rotation = InputTracking.GetLocalRotation(XRNode.Head); + currState.isPoseValid = currState.pose != RigidPose.identity; + } + + EnsureValidDeviceState(RIGHT_HAND_INDEX, out prevState, out currState); + if (currState.isConnected) + { + currState.position = m_rightArm.ControllerPositionFromHead; + currState.rotation = m_rightArm.ControllerRotationFromHead; + currState.isPoseValid = m_rightDevice.Orientation != Quaternion.identity; + } + + EnsureValidDeviceState(LEFT_HAND_INDEX, out prevState, out currState); + if (currState.isConnected) + { + currState.position = m_leftArm.ControllerPositionFromHead; + currState.rotation = m_leftArm.ControllerRotationFromHead; + currState.isPoseValid = m_leftDevice.Orientation != Quaternion.identity; + } + } + + private void UpdateDeviceInput() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(RIGHT_HAND_INDEX, out prevState, out currState); + if (currState.isConnected) + { + var appPressed = m_rightDevice.GetButton(GvrControllerButton.App); + var systemPressed = m_rightDevice.GetButton(GvrControllerButton.System); + var padPressed = m_rightDevice.GetButton(GvrControllerButton.TouchPadButton); + var padTouched = m_rightDevice.GetButton(GvrControllerButton.TouchPadTouch); + var padAxis = m_rightDevice.TouchPos; + + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPressed); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, appPressed); + currState.SetButtonPress(VRModuleRawButton.System, systemPressed); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouched); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padAxis.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, padAxis.y); + + if (VIUSettings.daydreamSyncPadPressToTrigger) + { + currState.SetButtonPress(VRModuleRawButton.Trigger, padPressed); + currState.SetButtonTouch(VRModuleRawButton.Trigger, padTouched); + currState.SetAxisValue(VRModuleRawAxis.Trigger, padPressed ? 1f : 0f); + } + } + + EnsureValidDeviceState(LEFT_HAND_INDEX, out prevState, out currState); + if (currState.isConnected) + { + var appPressed = m_leftDevice.GetButton(GvrControllerButton.App); + var systemPressed = m_leftDevice.GetButton(GvrControllerButton.System); + var padPressed = m_leftDevice.GetButton(GvrControllerButton.TouchPadButton); + var padTouched = m_leftDevice.GetButton(GvrControllerButton.TouchPadTouch); + var padAxis = m_leftDevice.TouchPos; + + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPressed); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, appPressed); + currState.SetButtonPress(VRModuleRawButton.System, systemPressed); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouched); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padAxis.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, padAxis.y); + + if (VIUSettings.daydreamSyncPadPressToTrigger) + { + currState.SetButtonPress(VRModuleRawButton.Trigger, padPressed); + currState.SetButtonTouch(VRModuleRawButton.Trigger, padTouched); + currState.SetAxisValue(VRModuleRawAxis.Trigger, padPressed ? 1f : 0f); + } + } + } +#else + public const uint CONTROLLER_INDEX = 1u; + + private GvrArmModel m_gvrArmModel; + + public override void OnActivated() + { + EnsureDeviceStateLength(2); + + if (Object.FindObjectOfType<GvrHeadset>() == null) + { + VRModule.Instance.gameObject.AddComponent<GvrHeadset>(); + } + + if (Object.FindObjectOfType<GvrControllerInput>() == null) + { + VRModule.Instance.gameObject.AddComponent<GvrControllerInput>(); + } + + m_gvrArmModel = VRModule.Instance.GetComponent<GvrArmModel>(); + if (m_gvrArmModel == null) + { + m_gvrArmModel = VRModule.Instance.gameObject.AddComponent<GvrArmModel>(); + } + } + + // update connected devices + private void UpdateConnectedDevices() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(HEAD_INDEX, out prevState, out currState); + if (!XRDevice.isPresent) + { + if (prevState.isConnected) + { + currState.Reset(); + } + } + else + { + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = VRModuleDeviceClass.HMD; + currState.serialNumber = XRDevice.model + " HMD"; + currState.modelNumber = XRDevice.model + " HMD"; + currState.deviceModel = VRModuleDeviceModel.DaydreamHMD; + currState.renderModelName = string.Empty; + } + } + + var controllerRoleChanged = false; + EnsureValidDeviceState(CONTROLLER_INDEX, out prevState, out currState); + if (GvrControllerInput.State != GvrConnectionState.Connected) + { + if (prevState.isConnected) + { + currState.Reset(); + } + } + else + { + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = VRModuleDeviceClass.Controller; + currState.serialNumber = XRDevice.model + " Controller"; + currState.modelNumber = XRDevice.model + " Controller"; + currState.deviceModel = VRModuleDeviceModel.DaydreamController; + currState.renderModelName = string.Empty; + } + + switch (GvrSettings.Handedness) + { + case GvrSettings.UserPrefsHandedness.Right: + controllerRoleChanged = !VRModule.IsValidDeviceIndex(m_rightIndex) && m_leftIndex == CONTROLLER_INDEX; + m_rightIndex = CONTROLLER_INDEX; + m_leftIndex = INVALID_DEVICE_INDEX; + break; + case GvrSettings.UserPrefsHandedness.Left: + controllerRoleChanged = m_rightIndex == CONTROLLER_INDEX && !VRModule.IsValidDeviceIndex(m_leftIndex); + m_rightIndex = INVALID_DEVICE_INDEX; + m_leftIndex = CONTROLLER_INDEX; + break; + case GvrSettings.UserPrefsHandedness.Error: + default: + Debug.LogError("GvrSettings.Handedness error"); + break; + } + } + + if (controllerRoleChanged) + { + InvokeControllerRoleChangedEvent(); + } + } + + private void UpdateDevicePose() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(HEAD_INDEX, out prevState, out currState); + if (currState.isConnected) + { + currState.position = InputTracking.GetLocalPosition(XRNode.Head); + currState.rotation = InputTracking.GetLocalRotation(XRNode.Head); + currState.isPoseValid = currState.pose != RigidPose.identity; + } + + EnsureValidDeviceState(CONTROLLER_INDEX, out prevState, out currState); + if (currState.isConnected) + { + currState.position = m_gvrArmModel.ControllerPositionFromHead; + currState.rotation = m_gvrArmModel.ControllerRotationFromHead; + currState.isPoseValid = GvrControllerInput.Orientation != Quaternion.identity; + } + } + + private void UpdateDeviceInput() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + EnsureValidDeviceState(CONTROLLER_INDEX, out prevState, out currState); + if (currState.isConnected) + { + var appPressed = GvrControllerInput.AppButton; + var homePressed = GvrControllerInput.HomeButtonState; + var padPressed = GvrControllerInput.ClickButton; + var padTouched = GvrControllerInput.IsTouching; + var padAxis = GvrControllerInput.TouchPosCentered; + + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPressed); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, appPressed); + currState.SetButtonPress(VRModuleRawButton.System, homePressed); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouched); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padAxis.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, padAxis.y); + + if (VIUSettings.daydreamSyncPadPressToTrigger) + { + currState.SetButtonPress(VRModuleRawButton.Trigger, padPressed); + currState.SetButtonTouch(VRModuleRawButton.Trigger, padTouched); + currState.SetAxisValue(VRModuleRawAxis.Trigger, padPressed ? 1f : 0f); + } + } + } +#endif + +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..f4c47aa000566d57b533c2e1a4f9b91b87992d85 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/GoogleVRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ef8bf44feed5f7b48a5112ffd141ec77 +timeCreated: 1507691720 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..eb9a924225ea48b62154cb4f5b485f67a3b8cd06 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs @@ -0,0 +1,469 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +#if VIU_OCULUSVR +using UnityEngine; +using HTC.UnityPlugin.Vive; +using HTC.UnityPlugin.Vive.OculusVRExtension; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#else +using XRDevice = UnityEngine.VR.VRDevice; +using XRSettings = UnityEngine.VR.VRSettings; +#endif +#if VIU_XR_GENERAL_SETTINGS +using UnityEngine.XR.Management; +using UnityEngine.SpatialTracking; +#endif +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public static readonly bool isOculusVRPluginDetected = +#if VIU_OCULUSVR + true; +#else + false; +#endif + public static readonly bool isOculusVRDesktopSupported = +#if VIU_OCULUSVR_DESKTOP_SUPPORT + true; +#else + false; +#endif + public static readonly bool isOculusVRAndroidSupported = +#if VIU_OCULUSVR_ANDROID_SUPPORT + true; +#else + false; +#endif + + public static readonly bool isOculusVRAvatarSupported = +#if VIU_OCULUSVR_AVATAR + true; +#else + false; +#endif + } + + public sealed class OculusVRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.OculusVR; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.OculusVR; } } + + public const string OCULUS_XR_LOADER_NAME = "Oculus Loader"; + public const string OCULUS_XR_LOADER_CLASS_NAME = "OculusLoader"; + +#if VIU_OCULUSVR + private class CameraCreator : VRCameraHook.CameraCreator + { + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void CreateCamera(VRCameraHook hook) + { +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + if (hook.GetComponent<TrackedPoseDriver>() == null) + { + hook.gameObject.AddComponent<TrackedPoseDriver>(); + } +#endif + } + } +#endif + +#if VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER + private class RenderModelCreator : RenderModelHook.RenderModelCreator + { + private uint m_index = INVALID_DEVICE_INDEX; + private VIUOculusVRRenderModel m_model; + + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void UpdateRenderModel() + { + if (!ChangeProp.Set(ref m_index, hook.GetModelDeviceIndex())) { return; } + + if (VRModule.IsValidDeviceIndex(m_index)) + { + // create object for render model + if (m_model == null) + { + var go = new GameObject("Model"); + go.transform.SetParent(hook.transform, false); + m_model = go.AddComponent<VIUOculusVRRenderModel>(); + } + + // set render model index + m_model.gameObject.SetActive(true); + m_model.shaderOverride = hook.overrideShader; +#if VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER + m_model.gameObject.AddComponent(System.Type.GetType("OvrAvatarTouchController")); +#endif + m_model.SetDeviceIndex(m_index); + } + else + { + // deacitvate object for render model + if (m_model != null) + { + m_model.gameObject.SetActive(false); + } + } + } + + public override void CleanUpRenderModel() + { + if (m_model != null) + { + Object.Destroy(m_model.gameObject); + m_model = null; + m_index = INVALID_DEVICE_INDEX; + } + } + } + + private static OculusVRModule s_moduleInstance; +#endif + +#if VIU_OCULUSVR + public const int VALID_NODE_COUNT = 7; + private static readonly OVRPlugin.Node[] s_index2node; + private static readonly uint[] s_node2index; + private static readonly VRModuleDeviceClass[] s_node2class; + + private OVRPlugin.TrackingOrigin m_prevTrackingSpace; + + static OculusVRModule() + { + s_index2node = new OVRPlugin.Node[VALID_NODE_COUNT]; + for (int i = 0; i < s_index2node.Length; ++i) { s_index2node[i] = OVRPlugin.Node.None; } + s_index2node[0] = OVRPlugin.Node.Head; + s_index2node[1] = OVRPlugin.Node.HandLeft; + s_index2node[2] = OVRPlugin.Node.HandRight; + s_index2node[3] = OVRPlugin.Node.TrackerZero; + s_index2node[4] = OVRPlugin.Node.TrackerOne; + s_index2node[5] = OVRPlugin.Node.TrackerTwo; + s_index2node[6] = OVRPlugin.Node.TrackerThree; + + s_node2index = new uint[(int)OVRPlugin.Node.Count]; + for (int i = 0; i < s_node2index.Length; ++i) { s_node2index[i] = INVALID_DEVICE_INDEX; } + s_node2index[(int)OVRPlugin.Node.Head] = 0; + s_node2index[(int)OVRPlugin.Node.HandLeft] = 1; + s_node2index[(int)OVRPlugin.Node.HandRight] = 2; + s_node2index[(int)OVRPlugin.Node.TrackerZero] = 3; + s_node2index[(int)OVRPlugin.Node.TrackerOne] = 4; + s_node2index[(int)OVRPlugin.Node.TrackerTwo] = 5; + s_node2index[(int)OVRPlugin.Node.TrackerThree] = 6; + + s_node2class = new VRModuleDeviceClass[(int)OVRPlugin.Node.Count]; + for (int i = 0; i < s_node2class.Length; ++i) { s_node2class[i] = VRModuleDeviceClass.Invalid; } + s_node2class[(int)OVRPlugin.Node.Head] = VRModuleDeviceClass.HMD; + s_node2class[(int)OVRPlugin.Node.HandLeft] = VRModuleDeviceClass.Controller; + s_node2class[(int)OVRPlugin.Node.HandRight] = VRModuleDeviceClass.Controller; + s_node2class[(int)OVRPlugin.Node.TrackerZero] = VRModuleDeviceClass.TrackingReference; + s_node2class[(int)OVRPlugin.Node.TrackerOne] = VRModuleDeviceClass.TrackingReference; + s_node2class[(int)OVRPlugin.Node.TrackerTwo] = VRModuleDeviceClass.TrackingReference; + s_node2class[(int)OVRPlugin.Node.TrackerThree] = VRModuleDeviceClass.TrackingReference; + } + + public override bool ShouldActiveModule() + { +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + return VIUSettings.activateOculusVRModule && (UnityXRModule.HasActiveLoader(OCULUS_XR_LOADER_NAME) || + XRSettings.enabled && XRSettings.loadedDeviceName == "Oculus"); +#else + return VIUSettings.activateOculusVRModule && XRSettings.enabled && XRSettings.loadedDeviceName == "Oculus"; +#endif + } + + public override void OnActivated() + { + m_prevTrackingSpace = OVRPlugin.GetTrackingOriginType(); + UpdateTrackingSpaceType(); + + EnsureDeviceStateLength(VALID_NODE_COUNT); + +#if VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER + s_moduleInstance = this; +#endif + } + + public override void OnDeactivated() + { + OVRPlugin.SetTrackingOriginType(m_prevTrackingSpace); + } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.RoomScale: +#if !VIU_OCULUSVR_19_0_OR_NEWER + if (OVRPlugin.GetSystemHeadsetType().Equals(OVRPlugin.SystemHeadset.Oculus_Go)) + { + OVRPlugin.SetTrackingOriginType(OVRPlugin.TrackingOrigin.EyeLevel); + } + else +#endif + { + OVRPlugin.SetTrackingOriginType(OVRPlugin.TrackingOrigin.FloorLevel); + } + break; + case VRModuleTrackingSpaceType.Stationary: + OVRPlugin.SetTrackingOriginType(OVRPlugin.TrackingOrigin.EyeLevel); + break; + } + } + + public override void Update() + { + // set physics update rate to vr render rate + if (VRModule.lockPhysicsUpdateRateToRenderFrequency && Time.timeScale > 0.0f) + { + // FIXME: VRDevice.refreshRate returns zero in Unity 5.6.0 or older version +#if !UNITY_5_6_0 && UNITY_5_6_OR_NEWER + Time.fixedDeltaTime = 1f / XRDevice.refreshRate; +#else + Time.fixedDeltaTime = 1f / 90f; +#endif + } + } + + public override uint GetLeftControllerDeviceIndex() + { + return s_node2index[(int)OVRPlugin.Node.HandLeft]; + } + + public override uint GetRightControllerDeviceIndex() + { + return s_node2index[(int)OVRPlugin.Node.HandRight]; + } + + private static RigidPose ToPose(OVRPlugin.Posef value) + { + var ovrPose = value.ToOVRPose(); + return new RigidPose(ovrPose.position, ovrPose.orientation); + } + + public override void BeforeRenderUpdate() + { + FlushDeviceState(); + + for (uint i = 0u, imax = GetDeviceStateLength(); i < imax; ++i) + { + var node = s_index2node[i]; + if (node == OVRPlugin.Node.None) { continue; } + + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + EnsureValidDeviceState(i, out prevState, out currState); + + if (!OVRPlugin.GetNodePresent(node)) + { + if (prevState.isConnected) + { + currState.Reset(); + } + + continue; + } + + // update device connected state + if (!prevState.isConnected) + { + var platform = OVRPlugin.GetSystemHeadsetType(); + var ovrProductName = platform.ToString(); + var deviceClass = s_node2class[(int)node]; + + currState.isConnected = true; + currState.deviceClass = deviceClass; + // FIXME: how to get device id from OVRPlugin? + currState.modelNumber = ovrProductName + " " + deviceClass; + currState.renderModelName = ovrProductName + " " + deviceClass; + currState.serialNumber = ovrProductName + " " + node; + + switch (deviceClass) + { + case VRModuleDeviceClass.HMD: + currState.deviceModel = VRModuleDeviceModel.OculusHMD; + break; + case VRModuleDeviceClass.TrackingReference: + currState.deviceModel = VRModuleDeviceModel.OculusSensor; + break; + case VRModuleDeviceClass.Controller: + switch (platform) + { +#if !VIU_OCULUSVR_19_0_OR_NEWER + case OVRPlugin.SystemHeadset.Oculus_Go: + currState.deviceModel = VRModuleDeviceModel.OculusGoController; + currState.input2DType = VRModuleInput2DType.TouchpadOnly; + break; + + case OVRPlugin.SystemHeadset.GearVR_R320: + case OVRPlugin.SystemHeadset.GearVR_R321: + case OVRPlugin.SystemHeadset.GearVR_R322: + case OVRPlugin.SystemHeadset.GearVR_R323: + case OVRPlugin.SystemHeadset.GearVR_R324: + case OVRPlugin.SystemHeadset.GearVR_R325: + currState.deviceModel = VRModuleDeviceModel.OculusGearVrController; + currState.input2DType = VRModuleInput2DType.TouchpadOnly; + break; +#endif + case OVRPlugin.SystemHeadset.Rift_DK1: + case OVRPlugin.SystemHeadset.Rift_DK2: + case OVRPlugin.SystemHeadset.Rift_CV1: + switch (node) + { + case OVRPlugin.Node.HandLeft: + currState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; + break; + case OVRPlugin.Node.HandRight: + default: + currState.deviceModel = VRModuleDeviceModel.OculusTouchRight; + break; + } + currState.input2DType = VRModuleInput2DType.JoystickOnly; + break; +#if VIU_OCULUSVR_16_0_OR_NEWER + case OVRPlugin.SystemHeadset.Oculus_Link_Quest: +#endif +#if VIU_OCULUSVR_1_37_0_OR_NEWER + case OVRPlugin.SystemHeadset.Oculus_Quest: + case OVRPlugin.SystemHeadset.Rift_S: + switch (node) + { + case OVRPlugin.Node.HandLeft: + currState.deviceModel = VRModuleDeviceModel.OculusQuestControllerLeft; + break; + case OVRPlugin.Node.HandRight: + default: + currState.deviceModel = VRModuleDeviceModel.OculusQuestControllerRight; + break; + } + currState.input2DType = VRModuleInput2DType.JoystickOnly; + break; +#endif + } + break; + } + } + + // update device pose + currState.pose = ToPose(OVRPlugin.GetNodePose(node, OVRPlugin.Step.Render)); + currState.velocity = OVRPlugin.GetNodeVelocity(node, OVRPlugin.Step.Render).FromFlippedZVector3f(); + currState.angularVelocity = OVRPlugin.GetNodeAngularVelocity(node, OVRPlugin.Step.Render).FromFlippedZVector3f(); + currState.isPoseValid = currState.pose != RigidPose.identity; + currState.isConnected = OVRPlugin.GetNodePresent(node); + + // update device input + switch (currState.deviceModel) + { + case VRModuleDeviceModel.OculusTouchLeft: + case VRModuleDeviceModel.OculusQuestControllerLeft: + { + var ctrlState = OVRPlugin.GetControllerState((uint)OVRPlugin.Controller.LTouch); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, (ctrlState.Buttons & (uint)OVRInput.RawButton.Y) != 0u); + currState.SetButtonPress(VRModuleRawButton.A, (ctrlState.Buttons & (uint)OVRInput.RawButton.X) != 0u); + currState.SetButtonPress(VRModuleRawButton.Touchpad, (ctrlState.Buttons & (uint)OVRInput.RawButton.LThumbstick) != 0u); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(currState.GetButtonPress(VRModuleRawButton.Trigger), ctrlState.LIndexTrigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, AxisToPress(currState.GetButtonPress(VRModuleRawButton.Grip), ctrlState.LHandTrigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.CapSenseGrip, AxisToPress(currState.GetButtonPress(VRModuleRawButton.CapSenseGrip), ctrlState.LHandTrigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.System, (ctrlState.Buttons & (uint)OVRInput.RawButton.Start) != 0u); + + currState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, (ctrlState.Touches & (uint)OVRInput.RawTouch.Y) != 0u); + currState.SetButtonTouch(VRModuleRawButton.A, (ctrlState.Touches & (uint)OVRInput.RawTouch.X) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Touchpad, (ctrlState.Touches & (uint)OVRInput.RawTouch.LThumbstick) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Trigger, (ctrlState.Touches & (uint)OVRInput.RawTouch.LIndexTrigger) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Grip, AxisToPress(currState.GetButtonTouch(VRModuleRawButton.Grip), ctrlState.LHandTrigger, 0.25f, 0.20f)); + currState.SetButtonTouch(VRModuleRawButton.CapSenseGrip, AxisToPress(currState.GetButtonTouch(VRModuleRawButton.CapSenseGrip), ctrlState.LHandTrigger, 0.25f, 0.20f)); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, ctrlState.LThumbstick.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, ctrlState.LThumbstick.y); + currState.SetAxisValue(VRModuleRawAxis.Trigger, ctrlState.LIndexTrigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, ctrlState.LHandTrigger); + break; + } + case VRModuleDeviceModel.OculusTouchRight: + case VRModuleDeviceModel.OculusQuestControllerRight: + { + var ctrlState = OVRPlugin.GetControllerState((uint)OVRPlugin.Controller.RTouch); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, (ctrlState.Buttons & (uint)OVRInput.RawButton.B) != 0u); + currState.SetButtonPress(VRModuleRawButton.A, (ctrlState.Buttons & (uint)OVRInput.RawButton.A) != 0u); + currState.SetButtonPress(VRModuleRawButton.Touchpad, (ctrlState.Buttons & (uint)OVRInput.RawButton.RThumbstick) != 0u); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(currState.GetButtonPress(VRModuleRawButton.Trigger), ctrlState.RIndexTrigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, AxisToPress(currState.GetButtonPress(VRModuleRawButton.Grip), ctrlState.RHandTrigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.CapSenseGrip, AxisToPress(currState.GetButtonPress(VRModuleRawButton.CapSenseGrip), ctrlState.RHandTrigger, 0.55f, 0.45f)); + + currState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, (ctrlState.Touches & (uint)OVRInput.RawTouch.B) != 0u); + currState.SetButtonTouch(VRModuleRawButton.A, (ctrlState.Touches & (uint)OVRInput.RawTouch.A) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Touchpad, (ctrlState.Touches & (uint)OVRInput.RawTouch.RThumbstick) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Trigger, (ctrlState.Touches & (uint)OVRInput.RawTouch.RIndexTrigger) != 0u); + currState.SetButtonTouch(VRModuleRawButton.Grip, AxisToPress(currState.GetButtonTouch(VRModuleRawButton.Grip), ctrlState.RHandTrigger, 0.25f, 0.20f)); + currState.SetButtonTouch(VRModuleRawButton.CapSenseGrip, AxisToPress(currState.GetButtonTouch(VRModuleRawButton.CapSenseGrip), ctrlState.RHandTrigger, 0.25f, 0.20f)); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, ctrlState.RThumbstick.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, ctrlState.RThumbstick.y); + currState.SetAxisValue(VRModuleRawAxis.Trigger, ctrlState.RIndexTrigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, ctrlState.RHandTrigger); + break; + } +#if !VIU_OCULUSVR_19_0_OR_NEWER + case VRModuleDeviceModel.OculusGoController: + case VRModuleDeviceModel.OculusGearVrController: + switch (node) + { + case OVRPlugin.Node.HandLeft: + { + var ctrlState = OVRPlugin.GetControllerState4((uint)OVRPlugin.Controller.LTrackedRemote); + + currState.SetButtonPress(VRModuleRawButton.Touchpad, (ctrlState.Buttons & (uint)OVRInput.RawButton.LTouchpad) != 0u); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, (ctrlState.Buttons & (uint)OVRInput.RawButton.Back) != 0u); + currState.SetButtonPress(VRModuleRawButton.Trigger, (ctrlState.Buttons & (uint)(OVRInput.RawButton.A | OVRInput.RawButton.LIndexTrigger)) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadLeft, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadLeft) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadUp, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadUp) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadRight, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadRight) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadDown, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadDown) != 0u); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, (ctrlState.Touches & (uint)OVRInput.RawTouch.LTouchpad) != 0u); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, ctrlState.LTouchpad.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, ctrlState.LTouchpad.y); + } + break; + case OVRPlugin.Node.HandRight: + default: + { + var ctrlState = OVRPlugin.GetControllerState4((uint)OVRPlugin.Controller.RTrackedRemote); + + currState.SetButtonPress(VRModuleRawButton.Touchpad, (ctrlState.Buttons & unchecked((uint)OVRInput.RawButton.RTouchpad)) != 0u); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, (ctrlState.Buttons & (uint)OVRInput.RawButton.Back) != 0u); + currState.SetButtonPress(VRModuleRawButton.Trigger, (ctrlState.Buttons & (uint)(OVRInput.RawButton.A | OVRInput.RawButton.RIndexTrigger)) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadLeft, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadLeft) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadUp, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadUp) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadRight, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadRight) != 0u); + currState.SetButtonPress(VRModuleRawButton.DPadDown, (ctrlState.Buttons & (uint)OVRInput.RawButton.DpadDown) != 0u); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, (ctrlState.Touches & unchecked((uint)OVRInput.RawTouch.RTouchpad)) != 0u); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, ctrlState.RTouchpad.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, ctrlState.RTouchpad.y); + } + break; + } + break; +#endif + } + } + + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + ProcessDeviceInputChanged(); + } +#endif + } + } diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..31cfddf62b86646ecf89ef94aec6482eba35fed2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/OculusVRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7c2308c7558878b469ce44fab128787a +timeCreated: 1495737154 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..807230b3f5a7a214f040c31581ba1cc0601df04f --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs @@ -0,0 +1,860 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Vive; +using HTC.UnityPlugin.Utility; +using UnityEngine; +using System; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#else +using XRSettings = UnityEngine.VR.VRSettings; +using XRDevice = UnityEngine.VR.VRDevice; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public static readonly bool isSimulatorSupported = +#if VIU_SIUMULATOR_SUPPORT + true; +#else + false; +#endif + } + + public interface ISimulatorVRModule + { + event Action onActivated; + event Action onDeactivated; + event SimulatorVRModule.UpdateDeviceStateHandler onUpdateDeviceState; + } + + public sealed class SimulatorVRModule : VRModule.ModuleBase, ISimulatorVRModule + { + public delegate void UpdateDeviceStateHandler(IVRModuleDeviceState[] prevState, IVRModuleDeviceStateRW[] currState); + + public const uint SIMULATOR_MAX_DEVICE_COUNT = 16u; + private const uint RIGHT_INDEX = 1; + private const uint LEFT_INDEX = 2; + + private static readonly RigidPose s_initHmdPose = new RigidPose(new Vector3(0f, 1.75f, 0f), Quaternion.identity); + private static RigidPose s_offsetLeftController = RigidPose.identity; + private static RigidPose s_offsetRightController = RigidPose.identity; + private static RigidPose s_offsetTracker = RigidPose.identity; + + private bool m_prevXREnabled; + private bool m_resetDevices; + private IMGUIHandle m_guiHandle; + private IVRModuleDeviceState[] m_prevStates; + private IVRModuleDeviceStateRW[] m_currStates; + + public event Action onActivated; + public event Action onDeactivated; + public event UpdateDeviceStateHandler onUpdateDeviceState; + + public override int moduleOrder { get { return (int)DefaultModuleOrder.Simulator; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.Simulator; } } + + public uint selectedDeviceIndex { get; private set; } + + public bool hasControlFocus { get; private set; } + + public override bool ShouldActiveModule() { return VIUSettings.activateSimulatorModule; } + + public override void OnActivated() + { + if (m_prevXREnabled = XRSettings.enabled) + { + XRSettings.enabled = false; + } + + m_resetDevices = true; + hasControlFocus = true; + selectedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; + + // Simulator instructions GUI + m_guiHandle = VRModule.Instance.gameObject.GetComponent<IMGUIHandle>(); + if (m_guiHandle == null) + { + m_guiHandle = VRModule.Instance.gameObject.AddComponent<IMGUIHandle>(); + m_guiHandle.simulator = this; + } + + m_prevStates = new IVRModuleDeviceState[SIMULATOR_MAX_DEVICE_COUNT]; + m_currStates = new IVRModuleDeviceStateRW[SIMULATOR_MAX_DEVICE_COUNT]; + EnsureDeviceStateLength(SIMULATOR_MAX_DEVICE_COUNT); + for (uint i = 0u; i < SIMULATOR_MAX_DEVICE_COUNT; ++i) + { + EnsureValidDeviceState(i, out m_prevStates[i], out m_currStates[i]); + } + + if (onActivated != null) + { + onActivated(); + } + } + + public override void OnDeactivated() + { + if (m_guiHandle != null) + { + m_guiHandle.simulator = null; + UnityEngine.Object.Destroy(m_guiHandle); + m_guiHandle = null; + } + + UpdateMainCamTracking(); + + XRSettings.enabled = m_prevXREnabled; + + if (onDeactivated != null) + { + onDeactivated(); + } + } + + public override uint GetRightControllerDeviceIndex() { return RIGHT_INDEX; } + + public override uint GetLeftControllerDeviceIndex() { return LEFT_INDEX; } + + public override void Update() + { + if (VIUSettings.enableSimulatorKeyboardMouseControl) + { + UpdateKeyDown(); + + Cursor.visible = !hasControlFocus; + Cursor.lockState = hasControlFocus ? CursorLockMode.Locked : CursorLockMode.None; + } + } + + public override void BeforeRenderUpdate() + { + FlushDeviceState(); + InternalUpdateDeviceState(m_prevStates, m_currStates); + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + ProcessDeviceInputChanged(); + } + + public void InternalUpdateDeviceState(IVRModuleDeviceState[] prevState, IVRModuleDeviceStateRW[] currState) + { + if (VIUSettings.enableSimulatorKeyboardMouseControl && hasControlFocus) + { + if (IsEscapeKeyDown()) + { + if (IsDeviceSelected()) + { + DeselectDevice(); + } + else + { + //SetSimulatorActive(false); + hasControlFocus = false; + } + } + + // reset to default state + if (m_resetDevices || IsResetAllKeyDown()) + { + m_resetDevices = false; + + foreach (var state in currState) + { + switch (state.deviceIndex) + { + case VRModule.HMD_DEVICE_INDEX: + case RIGHT_INDEX: + case LEFT_INDEX: + InitializeDevice(currState[VRModule.HMD_DEVICE_INDEX], state); + break; + default: + if (state.isConnected) + { + state.Reset(); + } + break; + } + } + + DeselectDevice(); + } + + // align devices with hmd + if (IsResetDevicesKeyDown()) + { + foreach (var state in currState) + { + switch (state.deviceIndex) + { + case VRModule.HMD_DEVICE_INDEX: + break; + case RIGHT_INDEX: + state.pose = currState[VRModule.HMD_DEVICE_INDEX].pose * s_offsetRightController; + break; + case LEFT_INDEX: + state.pose = currState[VRModule.HMD_DEVICE_INDEX].pose * s_offsetLeftController; + break; + default: + if (state.isConnected) + { + state.pose = currState[VRModule.HMD_DEVICE_INDEX].pose * s_offsetTracker; + } + break; + } + } + } + + // select/deselect device + IVRModuleDeviceStateRW keySelectDevice; + if (GetDeviceByInputDownKeyCode(currState, out keySelectDevice)) + { + if (IsShiftKeyPressed()) + { + // remove device + if (keySelectDevice.isConnected && keySelectDevice.deviceIndex != VRModule.HMD_DEVICE_INDEX) + { + if (IsSelectedDevice(keySelectDevice)) + { + DeselectDevice(); + } + + keySelectDevice.Reset(); + } + } + else + { + if (IsSelectedDevice(keySelectDevice)) + { + DeselectDevice(); + } + else + { + // select device + if (!keySelectDevice.isConnected) + { + InitializeDevice(currState[VRModule.HMD_DEVICE_INDEX], keySelectDevice); + } + + SelectDevice(keySelectDevice); + } + } + } + + var selectedDevice = VRModule.IsValidDeviceIndex(selectedDeviceIndex) && currState[selectedDeviceIndex].isConnected ? currState[selectedDeviceIndex] : null; + if (selectedDevice != null) + { + // control selected device + ControlDevice(selectedDevice); + + if (selectedDevice.deviceClass == VRModuleDeviceClass.Controller || selectedDevice.deviceClass == VRModuleDeviceClass.GenericTracker) + { + HandleDeviceInput(selectedDevice); + } + } + else if (hasControlFocus) + { + // control device group + ControlDeviceGroup(currState); + } + + // control camera (TFGH) + if (currState[VRModule.HMD_DEVICE_INDEX].isConnected) + { + ControlCamera(currState[VRModule.HMD_DEVICE_INDEX]); + } + } + else if (IsDeviceSelected()) + { + DeselectDevice(); + } + + if (onUpdateDeviceState != null) + { + onUpdateDeviceState(prevState, currState); + } + + UpdateMainCamTracking(); + } + + private bool m_autoTrackMainCam; + private RigidPose m_mainCamStartPose; + private void UpdateMainCamTracking() + { + if (VIUSettings.simulatorAutoTrackMainCamera) + { + if (!m_autoTrackMainCam) + { + m_autoTrackMainCam = true; + m_mainCamStartPose = new RigidPose(Camera.main.transform, true); + } + + if (Camera.main != null) + { + var hmd = VRModule.GetDeviceState(VRModule.HMD_DEVICE_INDEX); + if (hmd.isConnected) + { + RigidPose.SetPose(Camera.main.transform, hmd.pose); + } + } + } + else + { + if (m_autoTrackMainCam) + { + m_autoTrackMainCam = false; + + if (Camera.main != null) + { + RigidPose.SetPose(Camera.main.transform, m_mainCamStartPose); + } + } + } + } + + private bool IsSelectedDevice(IVRModuleDeviceStateRW state) + { + return selectedDeviceIndex == state.deviceIndex; + } + + private bool IsDeviceSelected() + { + return VRModule.IsValidDeviceIndex(selectedDeviceIndex); + } + + private void SelectDevice(IVRModuleDeviceStateRW state) + { + selectedDeviceIndex = state.deviceIndex; + } + + private void DeselectDevice() + { + selectedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; + } + + // Input.GetKeyDown in UpdateDeviceState is not working + private bool m_menuKeyPressed; + private bool m_resetDevicesKeyPressed; + private bool m_resetAllKeyPressed; + private bool m_escapeKeyPressed; + private bool m_shiftKeyPressed; + private bool m_backQuotePressed; + private bool[] m_alphaKeyDownState = new bool[10]; + + private void UpdateKeyDown() + { + m_menuKeyPressed = Input.GetKeyDown(KeyCode.M); + m_resetDevicesKeyPressed = Input.GetKeyDown(KeyCode.F2); + m_resetAllKeyPressed = Input.GetKeyDown(KeyCode.F3); + m_escapeKeyPressed = Input.GetKeyDown(KeyCode.Escape); + m_shiftKeyPressed = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift); + m_backQuotePressed = Input.GetKey(KeyCode.BackQuote); + m_alphaKeyDownState[0] = Input.GetKeyDown(KeyCode.Alpha0) || Input.GetKeyDown(KeyCode.Keypad0); + m_alphaKeyDownState[1] = Input.GetKeyDown(KeyCode.Alpha1) || Input.GetKeyDown(KeyCode.Keypad1); + m_alphaKeyDownState[2] = Input.GetKeyDown(KeyCode.Alpha2) || Input.GetKeyDown(KeyCode.Keypad2); + m_alphaKeyDownState[3] = Input.GetKeyDown(KeyCode.Alpha3) || Input.GetKeyDown(KeyCode.Keypad3); + m_alphaKeyDownState[4] = Input.GetKeyDown(KeyCode.Alpha4) || Input.GetKeyDown(KeyCode.Keypad4); + m_alphaKeyDownState[5] = Input.GetKeyDown(KeyCode.Alpha5) || Input.GetKeyDown(KeyCode.Keypad5); + m_alphaKeyDownState[6] = Input.GetKeyDown(KeyCode.Alpha6) || Input.GetKeyDown(KeyCode.Keypad6); + m_alphaKeyDownState[7] = Input.GetKeyDown(KeyCode.Alpha7) || Input.GetKeyDown(KeyCode.Keypad7); + m_alphaKeyDownState[8] = Input.GetKeyDown(KeyCode.Alpha8) || Input.GetKeyDown(KeyCode.Keypad8); + m_alphaKeyDownState[9] = Input.GetKeyDown(KeyCode.Alpha9) || Input.GetKeyDown(KeyCode.Keypad9); + } + + private bool IsMenuKeyDown() { return m_menuKeyPressed; } + private bool IsResetAllKeyDown() { return m_resetAllKeyPressed; } + private bool IsResetDevicesKeyDown() { return m_resetDevicesKeyPressed; } + private bool IsEscapeKeyDown() { return m_escapeKeyPressed; } + private bool IsShiftKeyPressed() { return m_shiftKeyPressed; } + + private bool GetDeviceByInputDownKeyCode(IVRModuleDeviceStateRW[] deviceStates, out IVRModuleDeviceStateRW deviceState) + { + if (!m_backQuotePressed) + { + if (m_alphaKeyDownState[0]) { deviceState = deviceStates[0]; return true; } + if (m_alphaKeyDownState[1]) { deviceState = deviceStates[1]; return true; } + if (m_alphaKeyDownState[2]) { deviceState = deviceStates[2]; return true; } + if (m_alphaKeyDownState[3]) { deviceState = deviceStates[3]; return true; } + if (m_alphaKeyDownState[4]) { deviceState = deviceStates[4]; return true; } + if (m_alphaKeyDownState[5]) { deviceState = deviceStates[5]; return true; } + if (m_alphaKeyDownState[6]) { deviceState = deviceStates[6]; return true; } + if (m_alphaKeyDownState[7]) { deviceState = deviceStates[7]; return true; } + if (m_alphaKeyDownState[8]) { deviceState = deviceStates[8]; return true; } + if (m_alphaKeyDownState[9]) { deviceState = deviceStates[9]; return true; } + } + else + { + if (m_alphaKeyDownState[0]) { deviceState = deviceStates[10]; return true; } + if (m_alphaKeyDownState[1]) { deviceState = deviceStates[11]; return true; } + if (m_alphaKeyDownState[2]) { deviceState = deviceStates[12]; return true; } + if (m_alphaKeyDownState[3]) { deviceState = deviceStates[13]; return true; } + if (m_alphaKeyDownState[4]) { deviceState = deviceStates[14]; return true; } + if (m_alphaKeyDownState[5]) { deviceState = deviceStates[15]; return true; } + } + + deviceState = null; + return false; + } + + private void InitializeDevice(IVRModuleDeviceStateRW hmdState, IVRModuleDeviceStateRW deviceState) + { + switch (deviceState.deviceIndex) + { + case VRModule.HMD_DEVICE_INDEX: + { + deviceState.isConnected = true; + deviceState.deviceClass = VRModuleDeviceClass.HMD; + deviceState.serialNumber = "VIU Simulator HMD Device"; + deviceState.modelNumber = deviceState.serialNumber; + deviceState.renderModelName = deviceState.serialNumber; + deviceState.deviceModel = VRModuleDeviceModel.ViveHMD; + + deviceState.isPoseValid = true; + deviceState.pose = s_initHmdPose; + + break; + } + case RIGHT_INDEX: + { + deviceState.isConnected = true; + deviceState.deviceClass = VRModuleDeviceClass.Controller; + deviceState.serialNumber = "VIU Simulator Controller Device " + RIGHT_INDEX; + deviceState.modelNumber = deviceState.serialNumber; + deviceState.renderModelName = deviceState.serialNumber; + deviceState.deviceModel = VIUSettings.simulatorRightControllerModel; + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + + var pose = new RigidPose(new Vector3(0.3f, -0.25f, 0.7f), Quaternion.identity); + deviceState.isPoseValid = true; + deviceState.pose = (hmdState.isConnected ? hmdState.pose : s_initHmdPose) * pose; + s_offsetRightController = RigidPose.FromToPose(hmdState.isConnected ? hmdState.pose : s_initHmdPose, deviceState.pose); + deviceState.buttonPressed = 0ul; + deviceState.buttonTouched = 0ul; + deviceState.ResetAxisValues(); + break; + } + case LEFT_INDEX: + { + deviceState.isConnected = true; + deviceState.deviceClass = VRModuleDeviceClass.Controller; + deviceState.serialNumber = "VIU Simulator Controller Device " + LEFT_INDEX; + deviceState.modelNumber = deviceState.serialNumber; + deviceState.renderModelName = deviceState.serialNumber; + deviceState.deviceModel = VIUSettings.simulatorLeftControllerModel; + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + + var pose = new RigidPose(new Vector3(-0.3f, -0.25f, 0.7f), Quaternion.identity); + deviceState.isPoseValid = true; + deviceState.pose = (hmdState.isConnected ? hmdState.pose : s_initHmdPose) * pose; + s_offsetLeftController = RigidPose.FromToPose(hmdState.isConnected ? hmdState.pose : s_initHmdPose, deviceState.pose); + deviceState.buttonPressed = 0ul; + deviceState.buttonTouched = 0ul; + deviceState.ResetAxisValues(); + break; + } + default: + { + deviceState.isConnected = true; + deviceState.deviceClass = VRModuleDeviceClass.GenericTracker; + deviceState.serialNumber = "VIU Simulator Generic Tracker Device " + deviceState.deviceIndex; + deviceState.modelNumber = deviceState.serialNumber; + deviceState.renderModelName = deviceState.serialNumber; + deviceState.deviceModel = VIUSettings.simulatorOtherModel; + + var pose = new RigidPose(new Vector3(0f, -0.25f, 0.7f), Quaternion.identity); + deviceState.isPoseValid = true; + deviceState.pose = (hmdState.isConnected ? hmdState.pose : s_initHmdPose) * pose; + s_offsetTracker = RigidPose.FromToPose(hmdState.isConnected ? hmdState.pose : s_initHmdPose, deviceState.pose); + deviceState.buttonPressed = 0ul; + deviceState.buttonTouched = 0ul; + deviceState.ResetAxisValues(); + break; + } + } + } + + private void ControlDevice(IVRModuleDeviceStateRW deviceState) + { + var pose = deviceState.pose; + var poseEuler = pose.rot.eulerAngles; + var deltaAngle = Time.unscaledDeltaTime * VIUSettings.simulatorMouseRotateSpeed; + var deltaKeyAngle = Time.unscaledDeltaTime * VIUSettings.simulatorKeyRotateSpeed; + + poseEuler.x = Mathf.Repeat(poseEuler.x + 180f, 360f) - 180f; + + if (!IsShiftKeyPressed()) + { + var pitchDelta = -Input.GetAxisRaw("Mouse Y") * deltaAngle; + if (pitchDelta > 0f) + { + if (poseEuler.x < 90f && poseEuler.x > -180f) + { + poseEuler.x = Mathf.Min(90f, poseEuler.x + pitchDelta); + } + } + else if (pitchDelta < 0f) + { + if (poseEuler.x < 180f && poseEuler.x > -90f) + { + poseEuler.x = Mathf.Max(-90f, poseEuler.x + pitchDelta); + } + } + + poseEuler.y += Input.GetAxisRaw("Mouse X") * deltaAngle; + } + + if (Input.GetKey(KeyCode.DownArrow)) + { + if (poseEuler.x < 90f && poseEuler.x > -180f) + { + poseEuler.x = Mathf.Min(90f, poseEuler.x + deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.UpArrow)) + { + if (poseEuler.x < 180f && poseEuler.x > -90f) + { + poseEuler.x = Mathf.Max(-90f, poseEuler.x - deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.RightArrow)) { poseEuler.y += deltaKeyAngle; } + if (Input.GetKey(KeyCode.LeftArrow)) { poseEuler.y -= deltaKeyAngle; } + if (Input.GetKey(KeyCode.C)) { poseEuler.z += deltaKeyAngle; } + if (Input.GetKey(KeyCode.Z)) { poseEuler.z -= deltaKeyAngle; } + if (Input.GetKey(KeyCode.X)) { poseEuler.z = 0f; } + + pose.rot = Quaternion.Euler(poseEuler); + + var deltaMove = Time.unscaledDeltaTime * VIUSettings.simulatorKeyMoveSpeed; + var moveForward = Quaternion.Euler(0f, poseEuler.y, 0f) * Vector3.forward; + var moveRight = Quaternion.Euler(0f, poseEuler.y, 0f) * Vector3.right; + if (Input.GetKey(KeyCode.D)) { pose.pos += moveRight * deltaMove; } + if (Input.GetKey(KeyCode.A)) { pose.pos -= moveRight * deltaMove; } + if (Input.GetKey(KeyCode.E)) { pose.pos += Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.Q)) { pose.pos -= Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.W)) { pose.pos += moveForward * deltaMove; } + if (Input.GetKey(KeyCode.S)) { pose.pos -= moveForward * deltaMove; } + + deviceState.pose = pose; + } + + private void ControlDeviceGroup(IVRModuleDeviceStateRW[] deviceStates) + { + var hmdPose = deviceStates[VRModule.HMD_DEVICE_INDEX].pose; + var hmdPoseEuler = hmdPose.rot.eulerAngles; + + var oldRigPose = new RigidPose(hmdPose.pos, Quaternion.Euler(0f, hmdPoseEuler.y, 0f)); + + var deltaAngle = Time.unscaledDeltaTime * VIUSettings.simulatorMouseRotateSpeed; + var deltaKeyAngle = Time.unscaledDeltaTime * VIUSettings.simulatorKeyRotateSpeed; + + // translate and rotate HMD + hmdPoseEuler.x = Mathf.Repeat(hmdPoseEuler.x + 180f, 360f) - 180f; + + var pitchDelta = -Input.GetAxisRaw("Mouse Y") * deltaAngle; + if (pitchDelta > 0f) + { + if (hmdPoseEuler.x < 90f && hmdPoseEuler.x > -180f) + { + hmdPoseEuler.x = Mathf.Min(90f, hmdPoseEuler.x + pitchDelta); + } + } + else if (pitchDelta < 0f) + { + if (hmdPoseEuler.x < 180f && hmdPoseEuler.x > -90f) + { + hmdPoseEuler.x = Mathf.Max(-90f, hmdPoseEuler.x + pitchDelta); + } + } + + if (Input.GetKey(KeyCode.DownArrow)) + { + if (hmdPoseEuler.x < 90f && hmdPoseEuler.x > -180f) + { + hmdPoseEuler.x = Mathf.Min(90f, hmdPoseEuler.x + deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.UpArrow)) + { + if (hmdPoseEuler.x < 180f && hmdPoseEuler.x > -90f) + { + hmdPoseEuler.x = Mathf.Max(-90f, hmdPoseEuler.x - deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.RightArrow)) { hmdPoseEuler.y += deltaKeyAngle; } + if (Input.GetKey(KeyCode.LeftArrow)) { hmdPoseEuler.y -= deltaKeyAngle; } + if (Input.GetKey(KeyCode.C)) { hmdPoseEuler.z += deltaKeyAngle; } + if (Input.GetKey(KeyCode.Z)) { hmdPoseEuler.z -= deltaKeyAngle; } + if (Input.GetKey(KeyCode.X)) { hmdPoseEuler.z = 0f; } + + hmdPoseEuler.y += Input.GetAxisRaw("Mouse X") * deltaAngle; + + hmdPose.rot = Quaternion.Euler(hmdPoseEuler); + + var deltaMove = Time.unscaledDeltaTime * VIUSettings.simulatorKeyMoveSpeed; + var moveForward = Quaternion.Euler(0f, hmdPoseEuler.y, 0f) * Vector3.forward; + var moveRight = Quaternion.Euler(0f, hmdPoseEuler.y, 0f) * Vector3.right; + if (Input.GetKey(KeyCode.D)) { hmdPose.pos += moveRight * deltaMove; } + if (Input.GetKey(KeyCode.A)) { hmdPose.pos -= moveRight * deltaMove; } + if (Input.GetKey(KeyCode.E)) { hmdPose.pos += Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.Q)) { hmdPose.pos -= Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.W)) { hmdPose.pos += moveForward * deltaMove; } + if (Input.GetKey(KeyCode.S)) { hmdPose.pos -= moveForward * deltaMove; } + + deviceStates[VRModule.HMD_DEVICE_INDEX].pose = hmdPose; + + var rigPoseOffset = new RigidPose(hmdPose.pos, Quaternion.Euler(0f, hmdPose.rot.eulerAngles.y, 0f)) * oldRigPose.GetInverse(); + + for (int i = deviceStates.Length - 1; i >= 0; --i) + { + if (i == VRModule.HMD_DEVICE_INDEX) { continue; } + + var state = deviceStates[i]; + if (!state.isConnected) { continue; } + + state.pose = rigPoseOffset * state.pose; + } + } + + private void ControlCamera(IVRModuleDeviceStateRW deviceState) + { + var pose = deviceState.pose; + var poseEuler = pose.rot.eulerAngles; + var deltaKeyAngle = Time.unscaledDeltaTime * VIUSettings.simulatorKeyRotateSpeed; + + poseEuler.x = Mathf.Repeat(poseEuler.x + 180f, 360f) - 180f; + + if (Input.GetKey(KeyCode.K)) + { + if (poseEuler.x < 90f && poseEuler.x > -180f) + { + poseEuler.x = Mathf.Min(90f, poseEuler.x + deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.I)) + { + if (poseEuler.x < 180f && poseEuler.x > -90f) + { + poseEuler.x = Mathf.Max(-90f, poseEuler.x - deltaKeyAngle); + } + } + + if (Input.GetKey(KeyCode.L)) { poseEuler.y += deltaKeyAngle; } + if (Input.GetKey(KeyCode.J)) { poseEuler.y -= deltaKeyAngle; } + + if (Input.GetKey(KeyCode.N)) { poseEuler.z += deltaKeyAngle; } + if (Input.GetKey(KeyCode.V)) { poseEuler.z -= deltaKeyAngle; } + if (Input.GetKey(KeyCode.B)) { poseEuler.z = 0f; } + + pose.rot = Quaternion.Euler(poseEuler); + + var deltaMove = Time.unscaledDeltaTime * VIUSettings.simulatorKeyMoveSpeed; + var moveForward = Quaternion.Euler(0f, poseEuler.y, 0f) * Vector3.forward; + var moveRight = Quaternion.Euler(0f, poseEuler.y, 0f) * Vector3.right; + if (Input.GetKey(KeyCode.H)) { pose.pos += moveRight * deltaMove; } + if (Input.GetKey(KeyCode.F)) { pose.pos -= moveRight * deltaMove; } + if (Input.GetKey(KeyCode.Y)) { pose.pos += Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.R)) { pose.pos -= Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.T)) { pose.pos += moveForward * deltaMove; } + if (Input.GetKey(KeyCode.G)) { pose.pos -= moveForward * deltaMove; } + + deviceState.pose = pose; + } + + private void HandleDeviceInput(IVRModuleDeviceStateRW deviceState) + { + var leftPressed = Input.GetMouseButton(0); + var rightPressed = Input.GetMouseButton(1); + var midPressed = Input.GetMouseButton(2); + + deviceState.SetButtonPress(VRModuleRawButton.Trigger, leftPressed); + deviceState.SetButtonTouch(VRModuleRawButton.Trigger, leftPressed); + deviceState.SetAxisValue(VRModuleRawAxis.Trigger, leftPressed ? 1f : 0f); + + deviceState.SetButtonPress(VRModuleRawButton.Grip, midPressed); + deviceState.SetButtonTouch(VRModuleRawButton.Grip, midPressed); + deviceState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, midPressed ? 1f : 0f); + + deviceState.SetButtonPress(VRModuleRawButton.Touchpad, rightPressed); + + deviceState.SetButtonPress(VRModuleRawButton.ApplicationMenu, IsMenuKeyDown()); + deviceState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, IsMenuKeyDown()); + + if (VIUSettings.simulateTrackpadTouch && IsShiftKeyPressed()) + { + deviceState.SetButtonTouch(VRModuleRawButton.Touchpad, true); + deviceState.SetAxisValue(VRModuleRawAxis.TouchpadX, deviceState.GetAxisValue(VRModuleRawAxis.TouchpadX) + (Input.GetAxisRaw("Mouse X") * 0.1f)); + deviceState.SetAxisValue(VRModuleRawAxis.TouchpadY, deviceState.GetAxisValue(VRModuleRawAxis.TouchpadY) + (Input.GetAxisRaw("Mouse Y") * 0.1f)); + } + else + { + deviceState.SetButtonTouch(VRModuleRawButton.Touchpad, rightPressed); + deviceState.SetAxisValue(VRModuleRawAxis.TouchpadX, 0f); + deviceState.SetAxisValue(VRModuleRawAxis.TouchpadY, 0f); + } + } + + private class IMGUIHandle : MonoBehaviour + { + public SimulatorVRModule simulator { get; set; } + + private bool showGUI { get; set; } + + private void Start() + { + showGUI = true; + } + + private void Update() + { + if (Input.GetKeyDown(KeyCode.F1)) + { + showGUI = !showGUI; + } + } + + private static string Bold(string s) { return "<b>" + s + "</b>"; } + + private static string SetColor(string s, string color) { return "<color=" + color + ">" + s + "</color>"; } + + private void OnGUI() + { + if (!VIUSettings.enableSimulatorKeyboardMouseControl) { return; } + + if (!showGUI || simulator == null) { return; } + + var hints = string.Empty; + + if (simulator.hasControlFocus) + { + GUI.skin.box.stretchWidth = false; + GUI.skin.box.stretchHeight = false; + GUI.skin.box.alignment = TextAnchor.UpperLeft; + GUI.skin.button.alignment = TextAnchor.MiddleCenter; + GUI.skin.box.normal.textColor = Color.white; + + // device status grids + GUI.skin.box.padding = new RectOffset(10, 10, 5, 5); + + GUILayout.BeginArea(new Rect(5f, 5f, Screen.width, 30f)); + GUILayout.BeginHorizontal(); + + for (uint i = 0u; i < SIMULATOR_MAX_DEVICE_COUNT; ++i) + { + var isHmd = i == VRModule.HMD_DEVICE_INDEX; + var isSelectedDevice = i == simulator.selectedDeviceIndex; + var isConndected = VRModule.GetCurrentDeviceState(i).isConnected; + + var deviceName = isHmd ? "HMD 0" : i.ToString(); + var colorName = !isConndected ? "grey" : isSelectedDevice ? "lime" : "white"; + + GUILayout.Box(SetColor(Bold(deviceName), colorName)); + } + + GUILayout.EndHorizontal(); + GUILayout.EndArea(); + + var selectedDeviceClass = VRModule.GetCurrentDeviceState(simulator.selectedDeviceIndex).deviceClass; + // instructions + if (selectedDeviceClass == VRModuleDeviceClass.Invalid) + { + hints += "Pause simulator: " + Bold("ESC") + "\n"; + hints += "Toggle instructions: " + Bold("F1") + "\n"; + hints += "Align devices to HMD: " + Bold("F2") + "\n"; + hints += "Reset all devices to initial state: " + Bold("F3") + "\n\n"; + + hints += "Move: " + Bold("WASD / QE") + "\n"; + hints += "Rotate: " + Bold("Mouse") + "\n"; + hints += "Add and select a device: \n"; + hints += " [N] " + Bold("Num 0~9") + "\n"; + hints += " [10+N] " + Bold("` + Num 0~5") + "\n"; + hints += "Remove and deselect a device: \n"; + hints += " [N] " + Bold("Shift + Num 0~9") + "\n"; + hints += " [10+N] " + Bold("Shift + ` + Num 0~5") + "\n"; + } + else + { + hints += "Toggle instructions: " + Bold("F1") + "\n"; + hints += "Align devices with HMD: " + Bold("F2") + "\n"; + hints += "Reset all devices to initial state: " + Bold("F3") + "\n\n"; + + hints += "Currently controlling "; + hints += SetColor(Bold("Device " + simulator.selectedDeviceIndex.ToString()) + " " + Bold("(" + selectedDeviceClass.ToString() + ")") + "\n", "lime"); + if (simulator.selectedDeviceIndex <= 9) + { + hints += "Deselect this device: " + Bold("ESC") + " / " + Bold("Num " + simulator.selectedDeviceIndex) + "\n"; + } + else + { + hints += "Deselect this device: " + Bold("ESC") + " / " + Bold("` + Num " + simulator.selectedDeviceIndex) + "\n"; + } + hints += "Add and select a device: \n"; + hints += " [N] " + Bold("Num 0~9") + "\n"; + hints += " [10+N] " + Bold("` + Num 0~5") + "\n"; + hints += "Remove and deselect a device: \n"; + hints += " [N] " + Bold("Shift + Num 0~9") + "\n"; + hints += " [10+N] " + Bold("Shift + ` + Num 0~5") + "\n"; + + hints += "\n"; + hints += "Move: " + Bold("WASD / QE") + "\n"; + hints += "Rotate (pitch and yaw): " + Bold("Mouse") + " or " + Bold("Arrow Keys") + "\n"; + hints += "Rotate (roll): " + Bold("ZC") + "\n"; + hints += "Reset roll: " + Bold("X") + "\n"; + + if (selectedDeviceClass == VRModuleDeviceClass.Controller || selectedDeviceClass == VRModuleDeviceClass.GenericTracker) + { + hints += "\n"; + hints += "Trigger press: " + Bold("Mouse Left") + "\n"; + hints += "Grip press: " + Bold("Mouse Middle") + "\n"; + hints += "Trackpad press: " + Bold("Mouse Right") + "\n"; + hints += "Trackpad touch: " + Bold("Hold Shift") + " + " + Bold("Mouse") + "\n"; + hints += "Menu button press: " + Bold("M") + "\n"; + } + } + + hints += "\n"; + hints += "HMD Move: " + Bold("TFGH / RY") + "\n"; + hints += "HMD Rotate (pitch and yaw): " + Bold("IJKL") + "\n"; + hints += "HMD Rotate (roll): " + Bold("VN") + "\n"; + hints += "HMD Reset roll: " + Bold("B"); + + GUI.skin.box.padding = new RectOffset(10, 10, 10, 10); + + GUILayout.BeginArea(new Rect(5f, 35f, Screen.width, Screen.height)); + GUILayout.Box(hints); + GUILayout.EndArea(); + } + else + { + // simulator resume button + int buttonHeight = 30; + int buttonWidth = 130; + Rect ButtonRect = new Rect((Screen.width * 0.5f) - (buttonWidth * 0.5f), (Screen.height * 0.5f) - buttonHeight, buttonWidth, buttonHeight); + + if (GUI.Button(ButtonRect, Bold("Back to simulator"))) + { + simulator.hasControlFocus = true; + } + + GUI.skin.box.padding = new RectOffset(10, 10, 5, 5); + + GUILayout.BeginArea(new Rect(5f, 5f, Screen.width, 30f)); + GUILayout.BeginHorizontal(); + + hints += "Toggle instructions: " + Bold("F1"); + GUILayout.Box(hints); + + GUILayout.EndHorizontal(); + GUILayout.EndArea(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7c91b8c416e701fb7ee3b98e0fcdc7f9f7d388c6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SimulatorModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0e0e5ed4e9ca6be48a06942c46602703 +timeCreated: 1512120896 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..92afa67d610fcfddd5053130a7316c1f0db8ebc2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs @@ -0,0 +1,437 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +#if VIU_STEAMVR && UNITY_STANDALONE +using HTC.UnityPlugin.Vive; +using HTC.UnityPlugin.Vive.SteamVRExtension; +using System.Text; +using UnityEngine; +using Valve.VR; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#elif UNITY_5_4_OR_NEWER +using XRSettings = UnityEngine.VR.VRSettings; +#endif +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public static readonly bool isSteamVRPluginDetected = +#if VIU_STEAMVR + true; +#else + false; +#endif + public static readonly bool isOpenVRSupported = +#if VIU_OPENVR_SUPPORT + true; +#else + false; +#endif + } + + public sealed partial class SteamVRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.SteamVR; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.SteamVR; } } + +#if VIU_STEAMVR && UNITY_STANDALONE + private class CameraCreator : VRCameraHook.CameraCreator + { + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void CreateCamera(VRCameraHook hook) + { +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + if (hook.GetComponent<UnityEngine.SpatialTracking.TrackedPoseDriver>() == null) + { + hook.gameObject.AddComponent<UnityEngine.SpatialTracking.TrackedPoseDriver>(); + } +#else + if (hook.GetComponent<SteamVR_Camera>() == null) + { + hook.gameObject.AddComponent<SteamVR_Camera>(); + } +#endif + } + } + + private class RenderModelCreator : RenderModelHook.RenderModelCreator + { + private uint m_index = INVALID_DEVICE_INDEX; + private VIUSteamVRRenderModel m_model; + + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void UpdateRenderModel() + { + if (!ChangeProp.Set(ref m_index, hook.GetModelDeviceIndex())) { return; } + + if (VRModule.IsValidDeviceIndex(m_index)) + { + // create object for render model + if (m_model == null) + { + var go = new GameObject("Model"); + go.transform.SetParent(hook.transform, false); + m_model = go.AddComponent<VIUSteamVRRenderModel>(); + } + + // set render model index + m_model.gameObject.SetActive(true); + m_model.shaderOverride = hook.overrideShader; + m_model.SetDeviceIndex(m_index); + } + else + { + // deacitvate object for render model + if (m_model != null) + { + m_model.gameObject.SetActive(false); + } + } + } + + public override void CleanUpRenderModel() + { + if (m_model != null) + { + Object.Destroy(m_model.gameObject); + m_model = null; + m_index = INVALID_DEVICE_INDEX; + } + } + } + + private static SteamVRModule s_moduleInstance; +#endif + +#if VIU_STEAMVR && !VIU_STEAMVR_2_0_0_OR_NEWER + private static readonly uint s_sizeOfControllerStats = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VRControllerState_t)); + + private ETrackingUniverseOrigin m_prevTrackingSpace; + private bool m_hasInputFocus = true; + + public override bool ShouldActiveModule() + { +#if UNITY_5_4_OR_NEWER + return VIUSettings.activateSteamVRModule && XRSettings.enabled && XRSettings.loadedDeviceName == "OpenVR"; +#else + return VIUSettings.activateSteamVRModule && SteamVR.enabled; +#endif + } + + public override void OnActivated() + { + // Make sure SteamVR_Render instance exist. It Polls New Poses Event + if (SteamVR_Render.instance == null) { } + + // setup tracking space + m_prevTrackingSpace = trackingSpace; + UpdateTrackingSpaceType(); + + EnsureDeviceStateLength(OpenVR.k_unMaxTrackedDeviceCount); + + m_hasInputFocus = inputFocus; + +#if VIU_STEAMVR_1_2_1_OR_NEWER + SteamVR_Events.NewPoses.AddListener(OnSteamVRNewPose); + SteamVR_Events.InputFocus.AddListener(OnInputFocus); + SteamVR_Events.System(EVREventType.VREvent_TrackedDeviceRoleChanged).AddListener(OnTrackedDeviceRoleChanged); +#elif VIU_STEAMVR_1_2_0_OR_NEWER + SteamVR_Events.NewPoses.AddListener(OnSteamVRNewPose); + SteamVR_Events.InputFocus.AddListener(OnInputFocus); + SteamVR_Events.System("TrackedDeviceRoleChanged").AddListener(OnTrackedDeviceRoleChanged); +#elif VIU_STEAMVR_1_1_1 + SteamVR_Utils.Event.Listen("new_poses", OnSteamVRNewPoseArgs); + SteamVR_Utils.Event.Listen("input_focus", OnInputFocusArgs); + SteamVR_Utils.Event.Listen("TrackedDeviceRoleChanged", OnTrackedDeviceRoleChangedArgs); +#endif + s_moduleInstance = this; + } + + public override void OnDeactivated() + { + trackingSpace = m_prevTrackingSpace; + +#if VIU_STEAMVR_1_2_1_OR_NEWER + SteamVR_Events.NewPoses.RemoveListener(OnSteamVRNewPose); + SteamVR_Events.InputFocus.RemoveListener(OnInputFocus); + SteamVR_Events.System(EVREventType.VREvent_TrackedDeviceRoleChanged).RemoveListener(OnTrackedDeviceRoleChanged); +#elif VIU_STEAMVR_1_2_0_OR_NEWER + SteamVR_Events.NewPoses.RemoveListener(OnSteamVRNewPose); + SteamVR_Events.InputFocus.RemoveListener(OnInputFocus); + SteamVR_Events.System("TrackedDeviceRoleChanged").RemoveListener(OnTrackedDeviceRoleChanged); +#elif VIU_STEAMVR_1_1_1 + SteamVR_Utils.Event.Remove("new_poses", OnSteamVRNewPoseArgs); + SteamVR_Utils.Event.Remove("input_focus", OnInputFocusArgs); + SteamVR_Utils.Event.Remove("TrackedDeviceRoleChanged", OnTrackedDeviceRoleChangedArgs); +#endif + s_moduleInstance = null; + } + + public override void Update() + { + if (SteamVR.active) + { + SteamVR_Render.instance.lockPhysicsUpdateRateToRenderFrequency = VRModule.lockPhysicsUpdateRateToRenderFrequency; + } + + UpdateDeviceInput(); + ProcessDeviceInputChanged(); + } + + private void UpdateConnectedDevice(TrackedDevicePose_t[] poses) + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + var system = OpenVR.System; + + if (system == null) + { + for (uint i = 0, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (TryGetValidDeviceState(i, out prevState, out currState) && currState.isConnected) + { + currState.Reset(); + } + } + + return; + } + + for (uint i = 0u, imax = (uint)poses.Length; i < imax; ++i) + { + if (!poses[i].bDeviceIsConnected) + { + if (TryGetValidDeviceState(i, out prevState, out currState) && prevState.isConnected) + { + currState.Reset(); + } + } + else + { + EnsureValidDeviceState(i, out prevState, out currState); + + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = (VRModuleDeviceClass)system.GetTrackedDeviceClass(i); + currState.serialNumber = QueryDeviceStringProperty(system, i, ETrackedDeviceProperty.Prop_SerialNumber_String); + currState.modelNumber = QueryDeviceStringProperty(system, i, ETrackedDeviceProperty.Prop_ModelNumber_String); + currState.renderModelName = QueryDeviceStringProperty(system, i, ETrackedDeviceProperty.Prop_RenderModelName_String); + + SetupKnownDeviceModel(currState); + } + } + } + } + + private void UpdateDevicePose(TrackedDevicePose_t[] poses) + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + for (uint i = 0u, imax = (uint)poses.Length; i < imax; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState) || !currState.isConnected) { continue; } + + // update device status + currState.isPoseValid = poses[i].bPoseIsValid; + currState.isOutOfRange = poses[i].eTrackingResult == ETrackingResult.Running_OutOfRange || poses[i].eTrackingResult == ETrackingResult.Calibrating_OutOfRange; + currState.isCalibrating = poses[i].eTrackingResult == ETrackingResult.Calibrating_InProgress || poses[i].eTrackingResult == ETrackingResult.Calibrating_OutOfRange; + currState.isUninitialized = poses[i].eTrackingResult == ETrackingResult.Uninitialized; + currState.velocity = new Vector3(poses[i].vVelocity.v0, poses[i].vVelocity.v1, -poses[i].vVelocity.v2); + currState.angularVelocity = new Vector3(-poses[i].vAngularVelocity.v0, -poses[i].vAngularVelocity.v1, poses[i].vAngularVelocity.v2); + + // update poses + if (poses[i].bPoseIsValid) + { + var rigidTransform = new SteamVR_Utils.RigidTransform(poses[i].mDeviceToAbsoluteTracking); + currState.position = rigidTransform.pos; + currState.rotation = rigidTransform.rot; + } + else if (prevState.isPoseValid) + { + currState.pose = RigidPose.identity; + } + } + } + + private void UpdateDeviceInput() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + VRControllerState_t ctrlState; + var system = OpenVR.System; + + for (uint i = 0; i < OpenVR.k_unMaxTrackedDeviceCount; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState) || !currState.isConnected) { continue; } + + // get device state from openvr api + GetConrollerState(system, i, out ctrlState); + + // update device input button + currState.buttonPressed = ctrlState.ulButtonPressed; + currState.buttonTouched = ctrlState.ulButtonTouched; + + // update device input axis + currState.SetAxisValue(VRModuleRawAxis.Axis0X, ctrlState.rAxis0.x); + currState.SetAxisValue(VRModuleRawAxis.Axis0Y, ctrlState.rAxis0.y); + currState.SetAxisValue(VRModuleRawAxis.Axis1X, ctrlState.rAxis1.x); + currState.SetAxisValue(VRModuleRawAxis.Axis1Y, ctrlState.rAxis1.y); + currState.SetAxisValue(VRModuleRawAxis.Axis2X, ctrlState.rAxis2.x); + currState.SetAxisValue(VRModuleRawAxis.Axis2Y, ctrlState.rAxis2.y); + currState.SetAxisValue(VRModuleRawAxis.Axis3X, ctrlState.rAxis3.x); + currState.SetAxisValue(VRModuleRawAxis.Axis3Y, ctrlState.rAxis3.y); + currState.SetAxisValue(VRModuleRawAxis.Axis4X, ctrlState.rAxis4.x); + currState.SetAxisValue(VRModuleRawAxis.Axis4Y, ctrlState.rAxis4.y); + } + } + + private void UpdateInputFocusState() + { + if (ChangeProp.Set(ref m_hasInputFocus, inputFocus)) + { + InvokeInputFocusEvent(m_hasInputFocus); + } + } + + private static ETrackingUniverseOrigin trackingSpace + { + get + { + var compositor = OpenVR.Compositor; + if (compositor == null) { return default(ETrackingUniverseOrigin); } + + return compositor.GetTrackingSpace(); + } + set + { + var compositor = OpenVR.Compositor; + if (compositor == null) { return; } + + compositor.SetTrackingSpace(value); + } + } + + private static bool inputFocus + { + get + { + var system = OpenVR.System; + if (system == null) { return false; } + +#if VIU_STEAMVR_1_2_3_OR_NEWER + return system.IsInputAvailable(); +#else + return !system.IsInputFocusCapturedByAnotherProcess(); +#endif + } + } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.RoomScale: + trackingSpace = ETrackingUniverseOrigin.TrackingUniverseStanding; + break; + case VRModuleTrackingSpaceType.Stationary: + trackingSpace = ETrackingUniverseOrigin.TrackingUniverseSeated; + break; + } + } + + private static void GetConrollerState(CVRSystem system, uint index, out VRControllerState_t ctrlState) + { + ctrlState = default(VRControllerState_t); + + if (system != null) + { +#if VIU_STEAMVR_1_2_0_OR_NEWER + system.GetControllerState(index, ref ctrlState, s_sizeOfControllerStats); +#else + system.GetControllerState(index, ref ctrlState); +#endif + } + } + + private void OnSteamVRNewPoseArgs(params object[] args) { OnSteamVRNewPose((TrackedDevicePose_t[])args[0]); } + private void OnSteamVRNewPose(TrackedDevicePose_t[] poses) + { + FlushDeviceState(); + + UpdateConnectedDevice(poses); + ProcessConnectedDeviceChanged(); + + UpdateDevicePose(poses); + ProcessDevicePoseChanged(); + + UpdateInputFocusState(); + } + + private void OnInputFocusArgs(params object[] args) { OnInputFocus((bool)args[0]); } + private void OnInputFocus(bool value) + { + m_hasInputFocus = value; + InvokeInputFocusEvent(value); + } + + private void OnTrackedDeviceRoleChangedArgs(params object[] args) { OnTrackedDeviceRoleChanged((VREvent_t)args[0]); } + private void OnTrackedDeviceRoleChanged(VREvent_t arg) + { + InvokeControllerRoleChangedEvent(); + } + + public override bool HasInputFocus() + { + return m_hasInputFocus; + } + + public override uint GetLeftControllerDeviceIndex() + { + var system = OpenVR.System; + return system == null ? INVALID_DEVICE_INDEX : system.GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole.LeftHand); + } + + public override uint GetRightControllerDeviceIndex() + { + var system = OpenVR.System; + return system == null ? INVALID_DEVICE_INDEX : system.GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole.RightHand); + } + + public override void TriggerViveControllerHaptic(uint deviceIndex, ushort durationMicroSec = 500) + { + var system = OpenVR.System; + if (system != null) + { + system.TriggerHapticPulse(deviceIndex, (uint)EVRButtonId.k_EButton_SteamVR_Touchpad - (uint)EVRButtonId.k_EButton_Axis0, (char)durationMicroSec); + } + } + + private StringBuilder m_sb; + private string QueryDeviceStringProperty(CVRSystem system, uint deviceIndex, ETrackedDeviceProperty prop) + { + var error = default(ETrackedPropertyError); + var capacity = (int)system.GetStringTrackedDeviceProperty(deviceIndex, prop, null, 0, ref error); + if (capacity <= 1 || capacity > 128) { return string.Empty; } + + if (m_sb == null) { m_sb = new StringBuilder(capacity); } + else { m_sb.EnsureCapacity(capacity); } + + system.GetStringTrackedDeviceProperty(deviceIndex, prop, m_sb, (uint)m_sb.Capacity, ref error); + if (error != ETrackedPropertyError.TrackedProp_Success) { return string.Empty; } + + var result = m_sb.ToString(); + m_sb.Length = 0; + + return result; + } +#endif + } +} diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4994914e4ae2c7b0db850f3a937b0467554f7197 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d16d22094763fa4faee238061ad8b07 +timeCreated: 1495102034 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs new file mode 100644 index 0000000000000000000000000000000000000000..fea2b1d0b3b02d0f33e95c0d3ff39a3ac1541ab3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs @@ -0,0 +1,712 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#if VIU_STEAMVR && UNITY_STANDALONE +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.Vive; +using System.Text; +using UnityEngine; +using Valve.VR; +using System; +using System.Runtime.InteropServices; +using System.Collections.Generic; +using System.Collections; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#elif UNITY_5_4_OR_NEWER +using XRSettings = UnityEngine.VR.VRSettings; +#endif +#if VIU_XR_GENERAL_SETTINGS +using UnityEngine.XR.Management; +#endif +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public sealed partial class SteamVRModule : VRModule.ModuleBase + { + public const string OPENVR_XR_LOADER_NAME = "Open VR Loader"; + public const string OPENVR_XR_LOADER_CLASS_NAME = "OpenVRLoader"; + +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE + public class ActionArray<T> where T : struct + { + private static readonly EnumUtils.EnumDisplayInfo s_enumInfo; + private static readonly T[] s_enums; + private static readonly ulong[] s_actionOrigins; + public static readonly int Len; + + private string m_pathPrefix; + private string m_dataType; + private string[] m_aliases; + private string[] m_paths; + private ulong[] m_handles; + + private int m_iterator = -1; + private int m_originIterator = -1; + + static ActionArray() + { + s_enumInfo = EnumUtils.GetDisplayInfo(typeof(T)); + Len = s_enumInfo.maxValue - s_enumInfo.minValue + 1; + + var ints = new int[Len]; + for (int i = 0; i < Len; ++i) + { + ints[i] = s_enumInfo.minValue + i; + } + + s_enums = ints as T[]; + + s_actionOrigins = new ulong[OpenVR.k_unMaxActionOriginCount]; + } + + public ActionArray(string pathPrefix, string dataType) + { + m_pathPrefix = pathPrefix; + m_dataType = dataType; + + m_aliases = new string[Len]; + m_paths = new string[Len]; + m_handles = new ulong[Len]; + + } + + public string DataType { get { return m_dataType; } } + public T Current { get { return s_enums[m_iterator]; } } + public string CurrentAlias { get { return m_aliases[m_iterator]; } } + public string CurrentPath { get { return m_paths[m_iterator]; } } + public ulong CurrentHandle { get { return m_handles[m_iterator]; } } + public void MoveNext() { ++m_iterator; } + public bool IsCurrentValid() { return m_iterator >= 0 && m_iterator < Len; } + public void Reset() { m_iterator = 0; } + + public ulong CurrentOrigin { get { return s_actionOrigins[m_originIterator]; } } + public void MoveNextOrigin() { ++m_originIterator; } + public bool IsCurrentOriginValid() { return m_originIterator >= 0 && m_originIterator < s_actionOrigins.Length && s_actionOrigins[m_originIterator] != OpenVR.k_ulInvalidInputValueHandle; } + public void ResetOrigins(CVRInput vrInput) + { + if (CurrentHandle == OpenVR.k_ulInvalidActionHandle) + { + m_originIterator = -1; + return; + } + + m_originIterator = 0; + var error = vrInput.GetActionOrigins(s_actionSetHandle, CurrentHandle, s_actionOrigins); + if (error != EVRInputError.None) + { + Debug.LogError("GetActionOrigins failed! action=" + CurrentPath + " error=" + error); + } + } + + public bool TryGetCurrentDigitalData(CVRInput vrInput, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState, ref InputDigitalActionData_t data) + { + ulong originDevicePath; + if (!TryGetCurrentOriginDataAndDeviceState(vrInput, out prevState, out currState, out originDevicePath)) { return false; } + + var error = vrInput.GetDigitalActionData(CurrentHandle, ref data, s_moduleInstance.m_digitalDataSize, originDevicePath); + if (error != EVRInputError.None) + { + Debug.LogError("GetDigitalActionData failed! action=" + CurrentPath + " error=" + error); + return false; + } + + return true; + } + + public bool TryGetCurrentAnalogData(CVRInput vrInput, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState, ref InputAnalogActionData_t data) + { + ulong originDevicePath; + if (!TryGetCurrentOriginDataAndDeviceState(vrInput, out prevState, out currState, out originDevicePath)) { return false; } + + var error = vrInput.GetAnalogActionData(CurrentHandle, ref data, s_moduleInstance.m_analogDataSize, originDevicePath); + if (error != EVRInputError.None) + { + Debug.LogError("GetAnalogActionData failed! action=" + CurrentPath + " error=" + error); + return false; + } + + return true; + } + + private bool TryGetCurrentOriginDataAndDeviceState(CVRInput vrInput, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState, out ulong originDevicePath) + { + OriginData originData; + EVRInputError error; + if (!s_moduleInstance.TryGetDeviceIndexFromOrigin(vrInput, CurrentOrigin, out originData, out error)) + { + Debug.LogError("GetOriginTrackedDeviceInfo failed! error=" + error + " action=" + pressActions.CurrentPath); + prevState = null; + currState = null; + originDevicePath = 0ul; + return false; + } + + originDevicePath = originData.devicePath; + return s_moduleInstance.TryGetValidDeviceState(originData.deviceIndex, out prevState, out currState) && currState.isConnected; + } + + public void Set(T e, string pathName, string alias) + { + var index = EqualityComparer<T>.Default.GetHashCode(e) - s_enumInfo.minValue; + m_aliases[index] = alias; + m_paths[index] = ACTION_SET_PATH + m_pathPrefix + pathName; + } + + public void InitiateHandles(CVRInput vrInput) + { + for (int i = 0; i < Len; ++i) + { + m_handles[i] = SafeGetActionHandle(vrInput, m_paths[i]); + } + } + } + + public enum HapticStruct { Haptic } + + public const string ACTION_SET_NAME = "htc_viu"; + public const string ACTION_SET_PATH = "/actions/" + ACTION_SET_NAME; + + private static bool s_pathInitialized; + private static bool s_actionInitialized; + + public static ActionArray<VRModuleRawButton> pressActions { get; private set; } + public static ActionArray<VRModuleRawButton> touchActions { get; private set; } + public static ActionArray<VRModuleRawAxis> v1Actions { get; private set; } + public static ActionArray<VRModuleRawAxis> v2Actions { get; private set; } + public static ActionArray<HapticStruct> vibrateActions { get; private set; } + + private static ulong[] s_devicePathHandles; + private static ulong s_actionSetHandle; + + private uint m_digitalDataSize; + private uint m_analogDataSize; + private uint m_originInfoSize; + + private ETrackingUniverseOrigin m_prevTrackingSpace; + private bool m_hasInputFocus = true; + private TrackedDevicePose_t[] m_poses; + private TrackedDevicePose_t[] m_gamePoses; + private VRActiveActionSet_t[] m_activeActionSets; + + private struct OriginData + { + public ulong devicePath; + public uint deviceIndex; + } + + private Dictionary<ulong, OriginData> m_originDataCache; + + private static ETrackingUniverseOrigin trackingSpace + { + get + { + var compositor = OpenVR.Compositor; + if (compositor == null) { return default(ETrackingUniverseOrigin); } + + return compositor.GetTrackingSpace(); + } + set + { + var compositor = OpenVR.Compositor; + if (compositor == null) { return; } + + compositor.SetTrackingSpace(value); + } + } + + private static bool inputFocus + { + get + { + var system = OpenVR.System; + if (system == null) { return false; } + return system.IsInputAvailable(); + } + } + + public static void InitializePaths() + { + if (s_pathInitialized) { return; } + s_pathInitialized = true; + + pressActions = new ActionArray<VRModuleRawButton>("/in/viu_press_", "boolean"); + pressActions.Set(VRModuleRawButton.System, "00", "Press00 (System)"); + pressActions.Set(VRModuleRawButton.ApplicationMenu, "01", "Press01 (ApplicationMenu)"); + pressActions.Set(VRModuleRawButton.Grip, "02", "Press02 (Grip)"); + pressActions.Set(VRModuleRawButton.DPadLeft, "03", "Press03 (DPadLeft)"); + pressActions.Set(VRModuleRawButton.DPadUp, "04", "Press04 (DPadUp)"); + pressActions.Set(VRModuleRawButton.DPadRight, "05", "Press05 (DPadRight)"); + pressActions.Set(VRModuleRawButton.DPadDown, "06", "Press06 (DPadDown)"); + pressActions.Set(VRModuleRawButton.A, "07", "Press07 (A)"); + pressActions.Set(VRModuleRawButton.ProximitySensor, "31", "Press31 (ProximitySensor)"); + pressActions.Set(VRModuleRawButton.Touchpad, "32", "Press32 (Touchpad)"); + pressActions.Set(VRModuleRawButton.Trigger, "33", "Press33 (Trigger)"); + pressActions.Set(VRModuleRawButton.CapSenseGrip, "34", "Press34 (CapSenseGrip)"); + pressActions.Set(VRModuleRawButton.Bumper, "35", "Press35 (Bumper)"); + + touchActions = new ActionArray<VRModuleRawButton>("/in/viu_touch_", "boolean"); + touchActions.Set(VRModuleRawButton.System, "00", "Touch00 (System)"); + touchActions.Set(VRModuleRawButton.ApplicationMenu, "01", "Touch01 (ApplicationMenu)"); + touchActions.Set(VRModuleRawButton.Grip, "02", "Touch02 (Grip)"); + touchActions.Set(VRModuleRawButton.DPadLeft, "03", "Touch03 (DPadLeft)"); + touchActions.Set(VRModuleRawButton.DPadUp, "04", "Touch04 (DPadUp)"); + touchActions.Set(VRModuleRawButton.DPadRight, "05", "Touch05 (DPadRight)"); + touchActions.Set(VRModuleRawButton.DPadDown, "06", "Touch06 (DPadDown)"); + touchActions.Set(VRModuleRawButton.A, "07", "Touch07 (A)"); + touchActions.Set(VRModuleRawButton.ProximitySensor, "31", "Touch31 (ProximitySensor)"); + touchActions.Set(VRModuleRawButton.Touchpad, "32", "Touch32 (Touchpad)"); + touchActions.Set(VRModuleRawButton.Trigger, "33", "Touch33 (Trigger)"); + touchActions.Set(VRModuleRawButton.CapSenseGrip, "34", "Touch34 (CapSenseGrip)"); + touchActions.Set(VRModuleRawButton.Bumper, "35", "Touch35 (Bumper)"); + + v1Actions = new ActionArray<VRModuleRawAxis>("/in/viu_axis_", "vector1"); + v1Actions.Set(VRModuleRawAxis.Axis0X, "0x", "Axis0 X (TouchpadX)"); + v1Actions.Set(VRModuleRawAxis.Axis0Y, "0y", "Axis0 Y (TouchpadY)"); + v1Actions.Set(VRModuleRawAxis.Axis1X, "1x", "Axis1 X (Trigger)"); + v1Actions.Set(VRModuleRawAxis.Axis1Y, "1y", "Axis1 Y"); + v1Actions.Set(VRModuleRawAxis.Axis2X, "2x", "Axis2 X (CapSenseGrip)"); + v1Actions.Set(VRModuleRawAxis.Axis2Y, "2y", "Axis2 Y"); + v1Actions.Set(VRModuleRawAxis.Axis3X, "3x", "Axis3 X (IndexCurl)"); + v1Actions.Set(VRModuleRawAxis.Axis3Y, "3y", "Axis3 Y (MiddleCurl)"); + v1Actions.Set(VRModuleRawAxis.Axis4X, "4x", "Axis4 X (RingCurl)"); + v1Actions.Set(VRModuleRawAxis.Axis4Y, "4y", "Axis4 Y (PinkyCurl)"); + + v2Actions = new ActionArray<VRModuleRawAxis>("/in/viu_axis_", "vector2"); + v2Actions.Set(VRModuleRawAxis.Axis0X, "0xy", "Axis0 X&Y (Touchpad)"); + v2Actions.Set(VRModuleRawAxis.Axis1X, "1xy", "Axis1 X&Y"); + v2Actions.Set(VRModuleRawAxis.Axis2X, "2xy", "Axis2 X&Y (Thumbstick)"); + v2Actions.Set(VRModuleRawAxis.Axis3X, "3xy", "Axis3 X&Y"); + v2Actions.Set(VRModuleRawAxis.Axis4X, "4xy", "Axis4 X&Y"); + + vibrateActions = new ActionArray<HapticStruct>("/out/viu_vib_", "vibration"); + vibrateActions.Set(HapticStruct.Haptic, "01", "Vibration"); + } + + public static void InitializeHandles() + { + if (!Application.isPlaying || s_actionInitialized) { return; } + s_actionInitialized = true; + + InitializePaths(); + + SteamVR.Initialize(); +#if VIU_STEAMVR_2_2_0_OR_NEWER + SteamVR_ActionSet_Manager.UpdateActionStates(); +#elif VIU_STEAMVR_2_1_0_OR_NEWER + SteamVR_ActionSet_Manager.UpdateActionSetsState(); +#else + SteamVR_ActionSet.UpdateActionSetsState(); +#endif + + var vrInput = OpenVR.Input; + if (vrInput == null) + { + Debug.LogError("Fail loading OpenVR.Input"); + return; + } + + pressActions.InitiateHandles(vrInput); + touchActions.InitiateHandles(vrInput); + v1Actions.InitiateHandles(vrInput); + v2Actions.InitiateHandles(vrInput); + vibrateActions.InitiateHandles(vrInput); + + s_actionSetHandle = SafeGetActionSetHandle(vrInput, ACTION_SET_PATH); + } + + private static ulong SafeGetActionSetHandle(CVRInput vrInput, string path) + { + if (string.IsNullOrEmpty(path)) { return 0ul; } + + var handle = OpenVR.k_ulInvalidActionHandle; + var error = vrInput.GetActionSetHandle(path, ref handle); + if (error != EVRInputError.None) + { + Debug.LogError("Load " + path + " action failed! error=" + error); + return OpenVR.k_ulInvalidActionHandle; + } + else + { + return handle; + } + } + + private static ulong SafeGetActionHandle(CVRInput vrInput, string path) + { + if (string.IsNullOrEmpty(path)) { return 0ul; } + + var handle = OpenVR.k_ulInvalidActionHandle; + var error = vrInput.GetActionHandle(path, ref handle); + if (error != EVRInputError.None) + { + Debug.LogError("Load " + path + " action failed! error=" + error); + return OpenVR.k_ulInvalidActionHandle; + } + else + { + return handle; + } + } + + public static ulong GetInputSourceHandleForDevice(uint deviceIndex) + { + if (s_devicePathHandles == null || deviceIndex >= s_devicePathHandles.Length) + { + return OpenVR.k_ulInvalidInputValueHandle; + } + else + { + return s_devicePathHandles[deviceIndex]; + } + } + + public override bool ShouldActiveModule() + { +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + return VIUSettings.activateSteamVRModule && (UnityXRModule.HasActiveLoader(OPENVR_XR_LOADER_NAME) || + (XRSettings.enabled && XRSettings.loadedDeviceName == "OpenVR")); +#elif UNITY_5_4_OR_NEWER + return VIUSettings.activateSteamVRModule && XRSettings.enabled && XRSettings.loadedDeviceName == "OpenVR"; +#else + return VIUSettings.activateSteamVRModule && SteamVR.enabled; +#endif + } + + public override void OnActivated() + { + m_digitalDataSize = (uint)Marshal.SizeOf(new InputDigitalActionData_t()); + m_analogDataSize = (uint)Marshal.SizeOf(new InputAnalogActionData_t()); + m_originInfoSize = (uint)Marshal.SizeOf(new InputOriginInfo_t()); + + + m_poses = new TrackedDevicePose_t[OpenVR.k_unMaxTrackedDeviceCount]; + m_gamePoses = new TrackedDevicePose_t[0]; + m_originDataCache = new Dictionary<ulong, OriginData>((int)OpenVR.k_unMaxActionOriginCount); + + InitializeHandles(); + +#if VIU_STEAMVR_2_1_0_OR_NEWER + SteamVR_Input.GetActionSet(ACTION_SET_NAME).Activate(SteamVR_Input_Sources.Any, 0, false); +#else + var actionSet = SteamVR_Input.GetActionSetFromPath(ACTION_SET_PATH); + if (actionSet != null) + { + actionSet.ActivatePrimary(); + } +#endif + +#if !VIU_STEAMVR_2_1_0_OR_NEWER + m_activeActionSets = new VRActiveActionSet_t[1] { new VRActiveActionSet_t() { ulActionSet = s_actionSetHandle, } }; +#endif + +#if VIU_STEAMVR_2_2_0_OR_NEWER + SteamVR_Input.onNonVisualActionsUpdated += UpdateDeviceInput; + SteamVR_Input.onPosesUpdated += UpdateDevicePose; +#else + SteamVR_Input.OnNonVisualActionsUpdated += UpdateDeviceInput; + SteamVR_Input.OnPosesUpdated += UpdateDevicePose; +#endif + + s_devicePathHandles = new ulong[OpenVR.k_unMaxTrackedDeviceCount]; + EnsureDeviceStateLength(OpenVR.k_unMaxTrackedDeviceCount); + + // preserve previous tracking space + m_prevTrackingSpace = trackingSpace; + + m_hasInputFocus = inputFocus; + + SteamVR_Events.InputFocus.AddListener(OnInputFocus); + SteamVR_Events.System(EVREventType.VREvent_TrackedDeviceRoleChanged).AddListener(OnTrackedDeviceRoleChanged); + + s_moduleInstance = this; + } + + public override void OnDeactivated() + { + SteamVR_Events.InputFocus.RemoveListener(OnInputFocus); + SteamVR_Events.System(EVREventType.VREvent_TrackedDeviceRoleChanged).RemoveListener(OnTrackedDeviceRoleChanged); + +#if VIU_STEAMVR_2_2_0_OR_NEWER + SteamVR_Input.onNonVisualActionsUpdated -= UpdateDeviceInput; + SteamVR_Input.onPosesUpdated -= UpdateDevicePose; +#else + SteamVR_Input.OnNonVisualActionsUpdated -= UpdateDeviceInput; + SteamVR_Input.OnPosesUpdated -= UpdateDevicePose; +#endif + + trackingSpace = m_prevTrackingSpace; + + s_moduleInstance = null; + } + + private void UpdateDeviceInput() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + var vrInput = OpenVR.Input; + if (vrInput == null) + { + for (uint i = 0, iMax = GetDeviceStateLength(); i < iMax; ++i) + { + if (TryGetValidDeviceState(i, out prevState, out currState) && currState.isConnected) + { + currState.buttonPressed = 0ul; + currState.buttonTouched = 0ul; + currState.ResetAxisValues(); + } + } + } + else + { + m_originDataCache.Clear(); + + for (pressActions.Reset(); pressActions.IsCurrentValid(); pressActions.MoveNext()) + { + for (pressActions.ResetOrigins(vrInput); pressActions.IsCurrentOriginValid(); pressActions.MoveNextOrigin()) + { + var data = default(InputDigitalActionData_t); + if (pressActions.TryGetCurrentDigitalData(vrInput, out prevState, out currState, ref data)) + { + currState.SetButtonPress(pressActions.Current, data.bState); + } + } + } + + for (touchActions.Reset(); touchActions.IsCurrentValid(); touchActions.MoveNext()) + { + for (touchActions.ResetOrigins(vrInput); touchActions.IsCurrentOriginValid(); touchActions.MoveNextOrigin()) + { + var data = default(InputDigitalActionData_t); + if (touchActions.TryGetCurrentDigitalData(vrInput, out prevState, out currState, ref data)) + { + currState.SetButtonTouch(touchActions.Current, data.bState); + } + } + } + + for (v1Actions.Reset(); v1Actions.IsCurrentValid(); v1Actions.MoveNext()) + { + for (v1Actions.ResetOrigins(vrInput); v1Actions.IsCurrentOriginValid(); v1Actions.MoveNextOrigin()) + { + var data = default(InputAnalogActionData_t); + if (v1Actions.TryGetCurrentAnalogData(vrInput, out prevState, out currState, ref data)) + { + currState.SetAxisValue(v1Actions.Current, data.x); + } + } + } + + for (v2Actions.Reset(); v2Actions.IsCurrentValid(); v2Actions.MoveNext()) + { + for (v2Actions.ResetOrigins(vrInput); v2Actions.IsCurrentOriginValid(); v2Actions.MoveNextOrigin()) + { + var data = default(InputAnalogActionData_t); + if (v2Actions.TryGetCurrentAnalogData(vrInput, out prevState, out currState, ref data)) + { + currState.SetAxisValue(v2Actions.Current, data.x); + currState.SetAxisValue(v2Actions.Current + 1, data.y); + } + } + } + } + + ProcessDeviceInputChanged(); + } + + private void UpdateDevicePose(bool obj) + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + FlushDeviceState(); + + var vrSystem = OpenVR.System; + var vrCompositor = OpenVR.Compositor; + if (vrSystem == null || vrCompositor == null) + { + for (uint i = 0, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (TryGetValidDeviceState(i, out prevState, out currState) && currState.isConnected) + { + currState.Reset(); + } + } + + return; + } + + vrCompositor.GetLastPoses(m_poses, m_gamePoses); + + for (uint i = 0u, imax = (uint)m_poses.Length; i < imax; ++i) + { + if (!m_poses[i].bDeviceIsConnected) + { + if (TryGetValidDeviceState(i, out prevState, out currState) && prevState.isConnected) + { + s_devicePathHandles[i] = OpenVR.k_ulInvalidInputValueHandle; + currState.Reset(); + } + } + else + { + EnsureValidDeviceState(i, out prevState, out currState); + + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = (VRModuleDeviceClass)vrSystem.GetTrackedDeviceClass(i); + currState.serialNumber = QueryDeviceStringProperty(vrSystem, i, ETrackedDeviceProperty.Prop_SerialNumber_String); + currState.modelNumber = QueryDeviceStringProperty(vrSystem, i, ETrackedDeviceProperty.Prop_ModelNumber_String); + currState.renderModelName = QueryDeviceStringProperty(vrSystem, i, ETrackedDeviceProperty.Prop_RenderModelName_String); + + SetupKnownDeviceModel(currState); + + m_originDataCache.Clear(); + } + + // update device status + currState.isPoseValid = m_poses[i].bPoseIsValid; + currState.isOutOfRange = m_poses[i].eTrackingResult == ETrackingResult.Running_OutOfRange || m_poses[i].eTrackingResult == ETrackingResult.Calibrating_OutOfRange; + currState.isCalibrating = m_poses[i].eTrackingResult == ETrackingResult.Calibrating_InProgress || m_poses[i].eTrackingResult == ETrackingResult.Calibrating_OutOfRange; + currState.isUninitialized = m_poses[i].eTrackingResult == ETrackingResult.Uninitialized; + currState.velocity = new Vector3(m_poses[i].vVelocity.v0, m_poses[i].vVelocity.v1, -m_poses[i].vVelocity.v2); + currState.angularVelocity = new Vector3(-m_poses[i].vAngularVelocity.v0, -m_poses[i].vAngularVelocity.v1, m_poses[i].vAngularVelocity.v2); + + var rigidTransform = new SteamVR_Utils.RigidTransform(m_poses[i].mDeviceToAbsoluteTracking); + currState.position = rigidTransform.pos; + currState.rotation = rigidTransform.rot; + } + } + + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + } + + public override void Update() + { + if (SteamVR.active) + { + SteamVR_Settings.instance.lockPhysicsUpdateRateToRenderFrequency = VRModule.lockPhysicsUpdateRateToRenderFrequency; + } + } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.RoomScale: + trackingSpace = ETrackingUniverseOrigin.TrackingUniverseStanding; + break; + case VRModuleTrackingSpaceType.Stationary: + trackingSpace = ETrackingUniverseOrigin.TrackingUniverseSeated; + break; + } + } + + private bool TryGetDeviceIndexFromOrigin(CVRInput vrInput, ulong origin, out OriginData originData, out EVRInputError error) + { + if (!m_originDataCache.TryGetValue(origin, out originData)) + { + var originInfo = default(InputOriginInfo_t); + error = vrInput.GetOriginTrackedDeviceInfo(origin, ref originInfo, m_originInfoSize); + if (error != EVRInputError.None) + { + originData = new OriginData() + { + devicePath = OpenVR.k_ulInvalidInputValueHandle, + deviceIndex = OpenVR.k_unTrackedDeviceIndexInvalid, + }; + return false; + } + else + { + originData = new OriginData() + { + devicePath = originInfo.devicePath, + deviceIndex = originInfo.trackedDeviceIndex, + }; + + s_devicePathHandles[originInfo.trackedDeviceIndex] = originInfo.devicePath; + //Debug.Log("Set device path " + originInfo.trackedDeviceIndex + " to " + originInfo.devicePath); + m_originDataCache.Add(origin, originData); + return true; + } + } + else + { + error = EVRInputError.None; + return true; + } + } + + private void OnInputFocus(bool value) + { + m_hasInputFocus = value; + InvokeInputFocusEvent(value); + } + + public override bool HasInputFocus() { return m_hasInputFocus; } + + private void OnTrackedDeviceRoleChanged(VREvent_t arg) + { + InvokeControllerRoleChangedEvent(); + } + + public override uint GetLeftControllerDeviceIndex() + { + var system = OpenVR.System; + return system == null ? INVALID_DEVICE_INDEX : system.GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole.LeftHand); + } + + public override uint GetRightControllerDeviceIndex() + { + var system = OpenVR.System; + return system == null ? INVALID_DEVICE_INDEX : system.GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole.RightHand); + } + + private StringBuilder m_sb; + private string QueryDeviceStringProperty(CVRSystem system, uint deviceIndex, ETrackedDeviceProperty prop) + { + var error = default(ETrackedPropertyError); + var capacity = (int)system.GetStringTrackedDeviceProperty(deviceIndex, prop, null, 0, ref error); + if (capacity <= 1 || capacity > 128) { return string.Empty; } + + if (m_sb == null) { m_sb = new StringBuilder(capacity); } + else { m_sb.EnsureCapacity(capacity); } + + system.GetStringTrackedDeviceProperty(deviceIndex, prop, m_sb, (uint)m_sb.Capacity, ref error); + if (error != ETrackedPropertyError.TrackedProp_Success) { return string.Empty; } + + var result = m_sb.ToString(); + m_sb.Length = 0; + + return result; + } + + public override void TriggerViveControllerHaptic(uint deviceIndex, ushort durationMicroSec = 500) + { + TriggerHapticVibration(deviceIndex, 0.01f, 85f, Mathf.InverseLerp(0, 4000, durationMicroSec), 0f); + } + + public override void TriggerHapticVibration(uint deviceIndex, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + var handle = GetInputSourceHandleForDevice(deviceIndex); + if (handle == OpenVR.k_ulInvalidDriverHandle) { return; } + + var vrInput = OpenVR.Input; + if (vrInput != null) + { + vibrateActions.Reset(); + + var error = vrInput.TriggerHapticVibrationAction(vibrateActions.CurrentHandle, startSecondsFromNow, durationSeconds, frequency, amplitude, handle); + if (error != EVRInputError.None) + { + Debug.LogError("TriggerViveControllerHaptic failed! error=" + error); + } + } + } +#endif + } +} diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..08a74d7b83b9ec3a1fdf0d6c3a9609b048db019c --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/SteamVRv2Module.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63112e2cdad1c0945ade1ed20474623b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..b585f42762e6c3991332af434fc255c00f9d7d04 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs @@ -0,0 +1,411 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using HTC.UnityPlugin.Vive; + +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#else +using XRSettings = UnityEngine.VR.VRSettings; +using XRDevice = UnityEngine.VR.VRDevice; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public sealed partial class UnityEngineVRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.UnityNativeVR; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.UnityNativeVR; } } + +#if !UNITY_2020_1_OR_NEWER + private static KeyCode[] s_keyCodes = new KeyCode[] + { + KeyCode.JoystickButton0, + KeyCode.JoystickButton1, + KeyCode.JoystickButton2, + KeyCode.JoystickButton3, + KeyCode.JoystickButton4, + KeyCode.JoystickButton5, + KeyCode.JoystickButton6, + KeyCode.JoystickButton7, + KeyCode.JoystickButton8, + KeyCode.JoystickButton9, + KeyCode.JoystickButton10, + KeyCode.JoystickButton11, + KeyCode.JoystickButton12, + KeyCode.JoystickButton13, + KeyCode.JoystickButton14, + KeyCode.JoystickButton15, + KeyCode.JoystickButton16, + KeyCode.JoystickButton17, + KeyCode.JoystickButton18, + KeyCode.JoystickButton19, + }; + + private static string[] s_axisNames = new string[] + { + "HTC_VIU_UnityAxis1", + "HTC_VIU_UnityAxis2", + "HTC_VIU_UnityAxis3", + "HTC_VIU_UnityAxis4", + "HTC_VIU_UnityAxis5", + "HTC_VIU_UnityAxis6", + "HTC_VIU_UnityAxis7", + "HTC_VIU_UnityAxis8", + "HTC_VIU_UnityAxis9", + "HTC_VIU_UnityAxis10", + "HTC_VIU_UnityAxis11", + "HTC_VIU_UnityAxis12", + "HTC_VIU_UnityAxis13", + "HTC_VIU_UnityAxis14", + "HTC_VIU_UnityAxis15", + "HTC_VIU_UnityAxis16", + "HTC_VIU_UnityAxis17", + "HTC_VIU_UnityAxis18", + "HTC_VIU_UnityAxis19", + "HTC_VIU_UnityAxis20", + "HTC_VIU_UnityAxis21", + "HTC_VIU_UnityAxis22", + "HTC_VIU_UnityAxis23", + "HTC_VIU_UnityAxis24", + "HTC_VIU_UnityAxis25", + "HTC_VIU_UnityAxis26", + "HTC_VIU_UnityAxis27", + }; + + public static bool GetUnityButton(int id) + { + return Input.GetKey(s_keyCodes[id]); + } + + public static float GetUnityAxis(int id) + { + return Input.GetAxisRaw(s_axisNames[id - 1]); + } +#if UNITY_EDITOR + public static int GetUnityAxisCount() { return s_axisNames.Length; } + + public static string GetUnityAxisNameByIndex(int index) { return s_axisNames[index]; } + + public static int GetUnityAxisIdByIndex(int index) { return index + 1; } +#endif + + public override bool ShouldActiveModule() { return VIUSettings.activateUnityNativeVRModule && XRSettings.enabled; } + + public override void Update() + { + // set physics update rate to vr render rate + if (VRModule.lockPhysicsUpdateRateToRenderFrequency && Time.timeScale > 0.0f) + { + // FIXME: VRDevice.refreshRate returns zero in Unity 5.6.0 or older version +#if UNITY_5_6_OR_NEWER + Time.fixedDeltaTime = 1f / XRDevice.refreshRate; +#else + Time.fixedDeltaTime = 1f / 90f; +#endif + } + } + + private static void UpdateLeftControllerInput(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + switch (currState.deviceModel) + { + case VRModuleDeviceModel.ViveCosmosControllerLeft: + case VRModuleDeviceModel.ViveController: + Update_L_Vive(prevState, currState); + break; + case VRModuleDeviceModel.OculusQuestControllerLeft: + case VRModuleDeviceModel.OculusGoController: + case VRModuleDeviceModel.OculusTouchLeft: + Update_L_OculusTouch(prevState, currState); + break; + case VRModuleDeviceModel.KnucklesLeft: + case VRModuleDeviceModel.IndexControllerLeft: + Update_L_Knuckles(prevState, currState); + break; + case VRModuleDeviceModel.WMRControllerLeft: + Update_L_MicrosoftMR(prevState, currState); + break; + } + } + + private static void UpdateRightControllerInput(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + switch (currState.deviceModel) + { + case VRModuleDeviceModel.ViveCosmosControllerRight: + case VRModuleDeviceModel.ViveController: + Update_R_Vive(prevState, currState); + break; + case VRModuleDeviceModel.OculusQuestControllerRight: + case VRModuleDeviceModel.OculusGoController: + case VRModuleDeviceModel.OculusTouchRight: + Update_R_OculusTouch(prevState, currState); + break; + case VRModuleDeviceModel.KnucklesRight: + case VRModuleDeviceModel.IndexControllerRight: + Update_R_Knuckles(prevState, currState); + break; + case VRModuleDeviceModel.WMRControllerRight: + Update_R_MicrosoftMR(prevState, currState); + break; + } + } + + private static void Update_L_Vive(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var menuPress = GetUnityButton(2); + var padPress = GetUnityButton(8); + var triggerTouch = GetUnityButton(14); + var padTouch = GetUnityButton(16); + + var padX = GetUnityAxis(1); + var padY = GetUnityAxis(2); + var trigger = GetUnityAxis(9); + var grip = GetUnityAxis(11); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuPress); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1.0f); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + } + + private static void Update_R_Vive(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var menuPress = GetUnityButton(0); + var padPress = GetUnityButton(9); + var triggerTouch = GetUnityButton(15); + var padTouch = GetUnityButton(17); + + var padX = GetUnityAxis(4); + var padY = GetUnityAxis(5); + var trigger = GetUnityAxis(10); + var grip = GetUnityAxis(12); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1.0f); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + } + + private static void Update_L_OculusTouch(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var startPress = GetUnityButton(6); + var xPress = GetUnityButton(2); + var yPress = GetUnityButton(3); + var stickPress = GetUnityButton(8); + var gripPress = GetUnityButton(4); + var xTouch = GetUnityButton(12); + var yTouch = GetUnityButton(13); + var triggerTouch = GetUnityButton(14); + var stickTouch = GetUnityButton(16); + + var stickX = GetUnityAxis(1); + var stickY = GetUnityAxis(2); + var trigger = GetUnityAxis(9); + var grip = GetUnityAxis(11); + + currState.SetButtonPress(VRModuleRawButton.System, startPress); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, yPress); + currState.SetButtonPress(VRModuleRawButton.A, xPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, stickPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, gripPress); + currState.SetButtonPress(VRModuleRawButton.CapSenseGrip, gripPress); + + currState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, yTouch); + currState.SetButtonTouch(VRModuleRawButton.A, xTouch); + currState.SetButtonTouch(VRModuleRawButton.Touchpad, stickTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + currState.SetButtonTouch(VRModuleRawButton.Grip, grip >= 0.05f); + currState.SetButtonTouch(VRModuleRawButton.CapSenseGrip, grip >= 0.05f); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, stickX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -stickY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + } + + private static void Update_R_OculusTouch(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var aPress = GetUnityButton(0); + var bPress = GetUnityButton(1); + var stickPress = GetUnityButton(9); + var gripPress = GetUnityButton(5); + var aTouch = GetUnityButton(10); + var bTouch = GetUnityButton(11); + var triggerTouch = GetUnityButton(15); + var stickTouch = GetUnityButton(17); + + var stickX = GetUnityAxis(4); + var stickY = GetUnityAxis(5); + var trigger = GetUnityAxis(10); + var grip = GetUnityAxis(12); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, bPress); + currState.SetButtonPress(VRModuleRawButton.A, aPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, stickPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, gripPress); + currState.SetButtonPress(VRModuleRawButton.CapSenseGrip, gripPress); + + currState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, bTouch); + currState.SetButtonTouch(VRModuleRawButton.A, aTouch); + currState.SetButtonTouch(VRModuleRawButton.Touchpad, stickTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + currState.SetButtonTouch(VRModuleRawButton.Grip, grip >= 0.05f); + currState.SetButtonTouch(VRModuleRawButton.CapSenseGrip, grip >= 0.05f); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, stickX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -stickY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + } + + private static void Update_L_Knuckles(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var innerPress = GetUnityButton(2); + var outerPress = GetUnityButton(3); + var padPress = GetUnityButton(8); + var triggerTouch = GetUnityButton(14); + var padTouch = GetUnityButton(16); + + var padX = GetUnityAxis(1); + var padY = GetUnityAxis(2); + var trigger = GetUnityAxis(9); + var grip = GetUnityAxis(11); + var index = GetUnityAxis(20); + var middle = GetUnityAxis(22); + var ring = GetUnityAxis(24); + var pinky = GetUnityAxis(26); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, outerPress); + currState.SetButtonPress(VRModuleRawButton.A, innerPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1.0f); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + currState.SetAxisValue(VRModuleRawAxis.IndexCurl, index); + currState.SetAxisValue(VRModuleRawAxis.MiddleCurl, middle); + currState.SetAxisValue(VRModuleRawAxis.RingCurl, ring); + currState.SetAxisValue(VRModuleRawAxis.PinkyCurl, pinky); + } + + private static void Update_R_Knuckles(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var innerPress = GetUnityButton(0); + var outerPress = GetUnityButton(1); + var padPress = GetUnityButton(9); + var triggerTouch = GetUnityButton(15); + var padTouch = GetUnityButton(17); + + var padX = GetUnityAxis(4); + var padY = GetUnityAxis(5); + var trigger = GetUnityAxis(10); + var grip = GetUnityAxis(12); + var index = GetUnityAxis(21); + var middle = GetUnityAxis(23); + var ring = GetUnityAxis(25); + var pinky = GetUnityAxis(27); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, outerPress); + currState.SetButtonPress(VRModuleRawButton.A, innerPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.55f, 0.45f)); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1.0f); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + currState.SetAxisValue(VRModuleRawAxis.IndexCurl, index); + currState.SetAxisValue(VRModuleRawAxis.MiddleCurl, middle); + currState.SetAxisValue(VRModuleRawAxis.RingCurl, ring); + currState.SetAxisValue(VRModuleRawAxis.PinkyCurl, pinky); + } + + private static void Update_L_MicrosoftMR(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var menuPress = GetUnityButton(2); + var padPress = GetUnityButton(8); + var triggerPress = GetUnityButton(14); + var padTouch = GetUnityButton(16); + + var stickX = GetUnityAxis(1); + var stickY = GetUnityAxis(2); + var trigger = GetUnityAxis(9); + var grip = GetUnityAxis(11); + var padX = GetUnityAxis(17); + var padY = GetUnityAxis(18); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, triggerPress); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1f); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.25f, 0.20f)); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.JoystickX, stickX); + currState.SetAxisValue(VRModuleRawAxis.JoystickY, -stickY); + } + + private static void Update_R_MicrosoftMR(IVRModuleDeviceState prevState, IVRModuleDeviceStateRW currState) + { + var menuPress = GetUnityButton(0); + var padPress = GetUnityButton(9); + var triggerPress = GetUnityButton(15); + var padTouch = GetUnityButton(17); + + var stickX = GetUnityAxis(4); + var stickY = GetUnityAxis(5); + var trigger = GetUnityAxis(10); + var grip = GetUnityAxis(12); + var padX = GetUnityAxis(19); + var padY = GetUnityAxis(20); + + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuPress); + currState.SetButtonPress(VRModuleRawButton.Touchpad, padPress); + currState.SetButtonPress(VRModuleRawButton.Trigger, triggerPress); + currState.SetButtonPress(VRModuleRawButton.Grip, grip >= 1f); + + currState.SetButtonTouch(VRModuleRawButton.Touchpad, padTouch); + currState.SetButtonTouch(VRModuleRawButton.Trigger, AxisToPress(prevState.GetButtonPress(VRModuleRawButton.Trigger), trigger, 0.25f, 0.20f)); + + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, padX); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, -padY); + currState.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + currState.SetAxisValue(VRModuleRawAxis.JoystickX, stickX); + currState.SetAxisValue(VRModuleRawAxis.JoystickY, -stickY); + } +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..79fecb8509a22bf82cb28115c2b467f6867d2ee2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f4b3abcc1410ab147a6494768911be35 +timeCreated: 1495597486 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs new file mode 100644 index 0000000000000000000000000000000000000000..40473cf216d1ac9ddc91d84ae7c70987c9a2b8d9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs @@ -0,0 +1,328 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0618 +#if UNITY_2017_1_OR_NEWER + +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEngine; + +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#else +using UnityEngine.VR; +using XRSettings = UnityEngine.VR.VRSettings; +using XRDevice = UnityEngine.VR.VRDevice; +using XRNodeState = UnityEngine.VR.VRNodeState; +using XRNode = UnityEngine.VR.VRNode; +#endif + +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public sealed partial class UnityEngineVRModule : VRModule.ModuleBase + { +#if UNITY_2017_1_OR_NEWER && !UNITY_2020_1_OR_NEWER + private static readonly VRModuleDeviceClass[] s_nodeType2DeviceClass; + + private uint m_leftIndex = INVALID_DEVICE_INDEX; + private uint m_rightIndex = INVALID_DEVICE_INDEX; + + private List<XRNodeState> m_nodeStateList = new List<XRNodeState>(); + private Dictionary<ulong, uint> m_node2Index = new Dictionary<ulong, uint>(); + private ulong[] m_index2nodeID; + private bool[] m_index2nodeValidity; + private bool[] m_index2nodeTouched; + + private TrackingSpaceType m_prevTrackingSpace; + + static UnityEngineVRModule() + { + s_nodeType2DeviceClass = new VRModuleDeviceClass[EnumUtils.GetMaxValue(typeof(XRNode)) + 1]; + for (int i = 0; i < s_nodeType2DeviceClass.Length; ++i) { s_nodeType2DeviceClass[i] = VRModuleDeviceClass.Invalid; } + s_nodeType2DeviceClass[(int)XRNode.Head] = VRModuleDeviceClass.HMD; + s_nodeType2DeviceClass[(int)XRNode.RightHand] = VRModuleDeviceClass.Controller; + s_nodeType2DeviceClass[(int)XRNode.LeftHand] = VRModuleDeviceClass.Controller; + s_nodeType2DeviceClass[(int)XRNode.GameController] = VRModuleDeviceClass.Controller; + s_nodeType2DeviceClass[(int)XRNode.HardwareTracker] = VRModuleDeviceClass.GenericTracker; + s_nodeType2DeviceClass[(int)XRNode.TrackingReference] = VRModuleDeviceClass.TrackingReference; + } + + public override void OnActivated() + { + m_prevTrackingSpace = XRDevice.GetTrackingSpaceType(); + UpdateTrackingSpaceType(); + + EnsureDeviceStateLength(16); + m_index2nodeID = new ulong[GetDeviceStateLength()]; + m_index2nodeValidity = new bool[GetDeviceStateLength()]; + m_index2nodeTouched = new bool[GetDeviceStateLength()]; + } + + public override void OnDeactivated() + { + m_rightIndex = INVALID_DEVICE_INDEX; + m_leftIndex = INVALID_DEVICE_INDEX; + + RemoveAllValidNodes(); + XRDevice.SetTrackingSpaceType(m_prevTrackingSpace); + } + + public override uint GetLeftControllerDeviceIndex() { return m_leftIndex; } + + public override uint GetRightControllerDeviceIndex() { return m_rightIndex; } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.Stationary: + XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary); + break; + case VRModuleTrackingSpaceType.RoomScale: +#if UNITY_2019_2_OR_NEWER && !UNITY_2019_3_OR_NEWER + var prev_trackingOrigin = XRDevice.trackingOriginMode; + XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale); + if (prev_trackingOrigin == XRDevice.trackingOriginMode) + { + XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary); + } +#else + XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale); +#endif + break; + } + } + + private bool IsTrackingDeviceNode(XRNodeState nodeState) + { + switch (nodeState.nodeType) + { + case XRNode.Head: + case XRNode.RightHand: + case XRNode.LeftHand: + case XRNode.GameController: + case XRNode.HardwareTracker: + case XRNode.TrackingReference: + return true; + default: + return false; + } + } + + private bool TryGetAndTouchNodeDeviceIndex(XRNodeState nodeState, out uint deviceIndex) + { + // only tracking certain type of node (some nodes share same uniqueID) + if (!IsTrackingDeviceNode(nodeState)) { deviceIndex = INVALID_DEVICE_INDEX; return false; } + //Debug.Log(Time.frameCount + " TryGetNodeDeviceIndex " + nodeState.nodeType + " tracked=" + nodeState.tracked + " id=" + nodeState.uniqueID + " name=" + (InputTracking.GetNodeName(nodeState.uniqueID) ?? string.Empty)); + if (!m_node2Index.TryGetValue(nodeState.uniqueID, out deviceIndex)) + { + // FIXME: 0ul is invalid id? + if (nodeState.uniqueID == 0ul) { return false; } + + var validIndexFound = false; + + if (nodeState.nodeType == XRNode.Head) + { + if (m_index2nodeValidity[0]) + { + //Debug.LogWarning("[" + Time.frameCount + "] Multiple Head node found! drop node id:" + nodeState.uniqueID.ToString("X8") + " type:" + nodeState.nodeType + " name:" + InputTracking.GetNodeName(nodeState.uniqueID) + " tracked=" + nodeState.tracked); + deviceIndex = INVALID_DEVICE_INDEX; + return false; + } + + validIndexFound = true; + m_index2nodeID[0] = nodeState.uniqueID; + m_index2nodeValidity[0] = true; + m_node2Index.Add(nodeState.uniqueID, 0u); + deviceIndex = 0; + } + else + { + for (uint i = 1u, imax = (uint)m_index2nodeValidity.Length; i < imax; ++i) + { + if (!m_index2nodeValidity[i]) + { + validIndexFound = true; + m_index2nodeID[i] = nodeState.uniqueID; + m_index2nodeValidity[i] = true; + m_node2Index.Add(nodeState.uniqueID, i); + deviceIndex = i; + + break; + } + } + } + + if (!validIndexFound) + { + Debug.LogWarning("[" + Time.frameCount + "] XRNode added, but device index out of range, drop the node id:" + nodeState.uniqueID.ToString("X8") + " type:" + nodeState.nodeType + " name:" + InputTracking.GetNodeName(nodeState.uniqueID) + " tracked=" + nodeState.tracked); + deviceIndex = INVALID_DEVICE_INDEX; + return false; + } + + //Debug.Log("[" + Time.frameCount + "] Add node device index [" + deviceIndex + "] id=" + nodeState.uniqueID.ToString("X8") + " type=" + nodeState.nodeType + " tracked=" + nodeState.tracked); + } + + m_index2nodeTouched[deviceIndex] = true; + return true; + } + + private void TrimUntouchedNodes(System.Action<uint> onTrimmed) + { + for (uint i = 0u, imax = (uint)m_index2nodeValidity.Length; i < imax; ++i) + { + if (!m_index2nodeTouched[i]) + { + if (m_index2nodeValidity[i]) + { + m_node2Index.Remove(m_index2nodeID[i]); + //m_index2nodeID[i] = 0; + m_index2nodeValidity[i] = false; + + onTrimmed(i); + } + } + else + { + Debug.Assert(m_index2nodeValidity[i]); + m_index2nodeTouched[i] = false; + } + } + } + + private void RemoveAllValidNodes() + { + for (int i = 0, imax = m_index2nodeValidity.Length; i < imax; ++i) + { + if (m_index2nodeValidity[i]) + { + m_node2Index.Remove(m_index2nodeID[i]); + m_index2nodeID[i] = 0; + m_index2nodeValidity[i] = false; + m_index2nodeTouched[i] = false; + } + } + } + + public override void BeforeRenderUpdate() + { + var roleChanged = false; + var rightIndex = INVALID_DEVICE_INDEX; + var leftIndex = INVALID_DEVICE_INDEX; + + FlushDeviceState(); + + if (XRSettings.isDeviceActive && XRDevice.isPresent) + { + InputTracking.GetNodeStates(m_nodeStateList); + } + + for (int i = 0, imax = m_nodeStateList.Count; i < imax; ++i) + { + uint deviceIndex; + if (!TryGetAndTouchNodeDeviceIndex(m_nodeStateList[i], out deviceIndex)) { continue; } + + switch (m_nodeStateList[i].nodeType) + { + case XRNode.RightHand: rightIndex = deviceIndex; break; + case XRNode.LeftHand: leftIndex = deviceIndex; break; + } + + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + EnsureValidDeviceState(deviceIndex, out prevState, out currState); + + if (m_rightIndex != rightIndex || m_leftIndex != leftIndex) + { + m_rightIndex = rightIndex; + m_leftIndex = leftIndex; + roleChanged = true; + } + + if (!prevState.isConnected) + { + currState.isConnected = true; + currState.deviceClass = s_nodeType2DeviceClass[(int)m_nodeStateList[i].nodeType]; + // FIXME: getting wrong name in Unity 2017.1f1 + //currDeviceState.serialNumber = InputTracking.GetNodeName(m_nodeStateList[i].uniqueID) ?? string.Empty; + //Debug.Log("connected " + InputTracking.GetNodeName(m_nodeStateList[i].uniqueID)); + + if (!XRDevice.model.Equals("None")) + { + currState.serialNumber = XRDevice.model + " " + m_nodeStateList[i].uniqueID.ToString("X8"); + currState.modelNumber = XRDevice.model + " " + m_nodeStateList[i].nodeType; + currState.renderModelName = XRDevice.model + " " + m_nodeStateList[i].nodeType; + } + else + { + currState.serialNumber = XRSettings.loadedDeviceName + " " + m_nodeStateList[i].uniqueID.ToString("X8"); + currState.modelNumber = XRSettings.loadedDeviceName + " " + m_nodeStateList[i].nodeType; + currState.renderModelName = XRSettings.loadedDeviceName + " " + m_nodeStateList[i].nodeType; + } + + SetupKnownDeviceModel(currState); + } + + // update device status + currState.isPoseValid = m_nodeStateList[i].tracked; + + var velocity = default(Vector3); + if (m_nodeStateList[i].TryGetVelocity(out velocity)) { currState.velocity = velocity; } + + var position = default(Vector3); + if (m_nodeStateList[i].TryGetPosition(out position)) { currState.position = position; } + + var rotation = default(Quaternion); + if (m_nodeStateList[i].TryGetRotation(out rotation)) { currState.rotation = rotation; } + +#if UNITY_2017_2_OR_NEWER + var angularVelocity = default(Vector3); + if (m_nodeStateList[i].TryGetAngularVelocity(out angularVelocity)) { currState.angularVelocity = angularVelocity; } +#endif + } + + m_nodeStateList.Clear(); + + // update right hand input + if (VRModule.IsValidDeviceIndex(rightIndex)) + { + IVRModuleDeviceState rightPrevState; + IVRModuleDeviceStateRW rightCurrState; + EnsureValidDeviceState(rightIndex, out rightPrevState, out rightCurrState); + UpdateRightControllerInput(rightPrevState, rightCurrState); + } + + //// update left hand input + if (VRModule.IsValidDeviceIndex(leftIndex)) + { + IVRModuleDeviceState leftPrevState; + IVRModuleDeviceStateRW leftCurrState; + EnsureValidDeviceState(leftIndex, out leftPrevState, out leftCurrState); + UpdateLeftControllerInput(leftPrevState, leftCurrState); + } + + TrimUntouchedNodes(trimmedIndex => + { + IVRModuleDeviceState ps; + IVRModuleDeviceStateRW cs; + if (TryGetValidDeviceState(trimmedIndex, out ps, out cs)) + { + cs.Reset(); + } + }); + + ProcessConnectedDeviceChanged(); + + if (roleChanged) + { + InvokeControllerRoleChangedEvent(); + } + + ProcessDevicePoseChanged(); + ProcessDeviceInputChanged(); + } +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..42b3711b270167ae1c1274bf69d4b35cea35119d --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_1.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0d348577042d02641be79bc442179384 +timeCreated: 1497338826 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs new file mode 100644 index 0000000000000000000000000000000000000000..a5989b00b889c74986d2f7b32b43391b7cfbfd97 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs @@ -0,0 +1,3 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +// this file is fully replaced by UnityEngineVRModule_2017_1 \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..82c06035862d5449d8596706519aaf8245b5c02d --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_2017_2.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: d6490d198811b7c41b8c66ced6fd9187 +timeCreated: 1499844309 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs new file mode 100644 index 0000000000000000000000000000000000000000..8df7fad7a4926d2606957e61599cd9c7c9264b0a --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs @@ -0,0 +1,280 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#if UNITY_5_5_OR_NEWER && !UNITY_2017_1_OR_NEWER +using HTC.UnityPlugin.Utility; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.VR; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public sealed partial class UnityEngineVRModule : VRModule.ModuleBase + { +#if UNITY_5_5_OR_NEWER && !UNITY_2017_1_OR_NEWER + private static readonly Regex m_viveRgx = new Regex("^.*(htc|vive|openvr).*$", RegexOptions.IgnoreCase); + private static readonly Regex m_oculusRgx = new Regex("^.*(oculus).*$", RegexOptions.IgnoreCase); + private static readonly Regex m_leftRgx = new Regex("^.*left.*$", RegexOptions.IgnoreCase); + private static readonly Regex m_rightRgx = new Regex("^.*right.*$", RegexOptions.IgnoreCase); + + private const uint HEAD_INDEX = 0u; + private const uint LEFT_INDEX = 1u; + private const uint RIGHT_INDEX = 2u; + + private uint m_leftIndex = INVALID_DEVICE_INDEX; + private uint m_rightIndex = INVALID_DEVICE_INDEX; + + private string m_leftJoystickName = string.Empty; + private string m_rightJoystickName = string.Empty; + private int m_leftJoystickNameIndex = -1; + private int m_rightJoystickNameIndex = -1; + +#if UNITY_5_6_OR_NEWER + private TrackingSpaceType m_prevTrackingSpace; + + public override void OnActivated() + { + m_prevTrackingSpace = VRDevice.GetTrackingSpaceType(); + UpdateTrackingSpaceType(); + + EnsureDeviceStateLength(3); + } + + public override void OnDeactivated() + { + VRDevice.SetTrackingSpaceType(m_prevTrackingSpace); + } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.Stationary: + VRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary); + break; + case VRModuleTrackingSpaceType.RoomScale: + VRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale); + break; + } + } +#endif + + public override uint GetLeftControllerDeviceIndex() { return m_leftIndex; } + + public override uint GetRightControllerDeviceIndex() { return m_rightIndex; } + + public override void BeforeRenderUpdate() + { + var joystickNames = default(string[]); + + FlushDeviceState(); + + // head + IVRModuleDeviceState headPrevState; + IVRModuleDeviceStateRW headCurrState; + EnsureValidDeviceState(HEAD_INDEX, out headPrevState, out headCurrState); + + headCurrState.isConnected = VRDevice.isPresent; + + if (headCurrState.isConnected) + { + if (!headPrevState.isConnected) + { + headCurrState.deviceClass = VRModuleDeviceClass.HMD; + headCurrState.serialNumber = VRDevice.model + " HMD"; + headCurrState.modelNumber = VRDevice.model + " HMD"; + + if (m_viveRgx.IsMatch(VRDevice.model)) + { + headCurrState.deviceModel = VRModuleDeviceModel.ViveHMD; + } + else if (m_oculusRgx.IsMatch(VRDevice.model)) + { + headCurrState.deviceModel = VRModuleDeviceModel.OculusHMD; + } + else + { + headCurrState.deviceModel = VRModuleDeviceModel.Unknown; + } + + headCurrState.renderModelName = VRDevice.model + " " + headCurrState.deviceModel.ToString(); + } + + headCurrState.position = InputTracking.GetLocalPosition(VRNode.Head); + headCurrState.rotation = InputTracking.GetLocalRotation(VRNode.Head); + headCurrState.isPoseValid = headCurrState.pose != RigidPose.identity && headCurrState.pose != headPrevState.pose; + } + else + { + if (headPrevState.isConnected) + { + headCurrState.Reset(); + } + } + + // right + IVRModuleDeviceState rightPrevState; + IVRModuleDeviceStateRW rightCurrState; + EnsureValidDeviceState(RIGHT_INDEX, out rightPrevState, out rightCurrState); + + rightCurrState.position = InputTracking.GetLocalPosition(VRNode.RightHand); + rightCurrState.rotation = InputTracking.GetLocalRotation(VRNode.RightHand); + rightCurrState.isPoseValid = rightCurrState.pose != RigidPose.identity && rightCurrState.pose != rightPrevState.pose; + + // right connected state + if (rightCurrState.isPoseValid) + { + if (!rightPrevState.isConnected) + { + if (joystickNames == null) { joystickNames = Input.GetJoystickNames(); } + for (int i = joystickNames.Length - 1; i >= 0; --i) + { + if (!string.IsNullOrEmpty(joystickNames[i]) && m_rightRgx.IsMatch(joystickNames[i])) + { + rightCurrState.isConnected = true; + m_rightJoystickName = joystickNames[i]; + m_rightJoystickNameIndex = i; + m_rightIndex = RIGHT_INDEX; + break; + } + } + } + } + else + { + if (rightPrevState.isConnected) + { + if (joystickNames == null) { joystickNames = Input.GetJoystickNames(); } + if (string.IsNullOrEmpty(joystickNames[m_rightJoystickNameIndex])) + { + rightCurrState.isConnected = false; + m_rightJoystickName = string.Empty; + m_rightJoystickNameIndex = -1; + m_rightIndex = INVALID_DEVICE_INDEX; + } + } + } + // right input state + if (rightCurrState.isConnected) + { + if (!rightPrevState.isConnected) + { + rightCurrState.deviceClass = VRModuleDeviceClass.Controller; + rightCurrState.serialNumber = m_rightJoystickName; + rightCurrState.modelNumber = VRDevice.model + " Controller"; + + if (m_viveRgx.IsMatch(VRDevice.model)) + { + rightCurrState.deviceModel = VRModuleDeviceModel.ViveController; + rightCurrState.input2DType = VRModuleInput2DType.TouchpadOnly; + } + else if (m_oculusRgx.IsMatch(VRDevice.model)) + { + rightCurrState.deviceModel = VRModuleDeviceModel.OculusTouchRight; + rightCurrState.input2DType = VRModuleInput2DType.JoystickOnly; + } + else + { + rightCurrState.deviceModel = VRModuleDeviceModel.Unknown; + rightCurrState.input2DType = VRModuleInput2DType.Unknown; + } + + rightCurrState.renderModelName = VRDevice.model + " " + rightCurrState.deviceModel.ToString(); + } + + UpdateRightControllerInput(rightPrevState, rightCurrState); + } + else + { + if (rightPrevState.isConnected) + { + rightCurrState.Reset(); + } + } + + // left + IVRModuleDeviceState leftPrevState; + IVRModuleDeviceStateRW leftCurrState; + EnsureValidDeviceState(LEFT_INDEX, out leftPrevState, out leftCurrState); + + leftCurrState.position = InputTracking.GetLocalPosition(VRNode.LeftHand); + leftCurrState.rotation = InputTracking.GetLocalRotation(VRNode.LeftHand); + leftCurrState.isPoseValid = leftCurrState.pose != RigidPose.identity && leftCurrState.pose != leftPrevState.pose; + // left connected state + if (leftCurrState.isPoseValid) + { + if (!leftPrevState.isConnected) + { + if (joystickNames == null) { joystickNames = Input.GetJoystickNames(); } + for (int i = joystickNames.Length - 1; i >= 0; --i) + { + if (!string.IsNullOrEmpty(joystickNames[i]) && m_leftRgx.IsMatch(joystickNames[i])) + { + leftCurrState.isConnected = true; + m_leftJoystickName = joystickNames[i]; + m_leftJoystickNameIndex = i; + m_leftIndex = LEFT_INDEX; + break; + } + } + } + } + else + { + if (leftPrevState.isConnected) + { + if (joystickNames == null) { joystickNames = Input.GetJoystickNames(); } + if (string.IsNullOrEmpty(joystickNames[m_leftJoystickNameIndex])) + { + leftCurrState.isConnected = false; + m_leftJoystickName = string.Empty; + m_leftJoystickNameIndex = -1; + m_leftIndex = INVALID_DEVICE_INDEX; + } + } + } + // left input state + if (leftCurrState.isConnected) + { + if (!leftPrevState.isConnected) + { + leftCurrState.deviceClass = VRModuleDeviceClass.Controller; + leftCurrState.serialNumber = m_leftJoystickName; + leftCurrState.modelNumber = VRDevice.model + " Controller"; + + if (m_viveRgx.IsMatch(VRDevice.model)) + { + leftCurrState.deviceModel = VRModuleDeviceModel.ViveController; + leftCurrState.input2DType = VRModuleInput2DType.TouchpadOnly; + } + else if (m_oculusRgx.IsMatch(VRDevice.model)) + { + leftCurrState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; + leftCurrState.input2DType = VRModuleInput2DType.JoystickOnly; + } + else + { + leftCurrState.deviceModel = VRModuleDeviceModel.Unknown; + leftCurrState.input2DType = VRModuleInput2DType.Unknown; + } + + leftCurrState.renderModelName = VRDevice.model + " " + leftCurrState.deviceModel.ToString(); + } + + UpdateLeftControllerInput(leftPrevState, leftCurrState); + } + else + { + if (leftPrevState.isConnected) + { + leftCurrState.Reset(); + } + } + + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + ProcessDeviceInputChanged(); + } +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1a623e5de90272ddcce7d9f47a7091c68c22ed1e --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_5.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3a14032772e1fbd4cbcaf915771a3dda +timeCreated: 1495126388 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs new file mode 100644 index 0000000000000000000000000000000000000000..ceede5cb059a3bc320a8bc46d3f514c1063ca600 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs @@ -0,0 +1,3 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +// this file is fully replaced by UnityEngineVRModule_5_5 \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c7127dc2e8c726b798d6647e7e030c8a6d20d07f --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityEngineVRModule_5_6.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 17db0c50ae75d544cbe66221f8ab147f +timeCreated: 1497340543 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..00e286af37c5b2ccac3567bed06b86c0a2b05d31 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs @@ -0,0 +1,1034 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.Vive; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#endif + +#if VIU_XR_GENERAL_SETTINGS +using UnityEngine.XR.Management; +using UnityEngine.SpatialTracking; +using System; +#if VIU_WAVEXR_ESSENCE_RENDERMODEL +using Wave.Essence; +#endif +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public enum XRInputSubsystemType + { + Unknown, + OpenVR, + Oculus, + WMR, + MagicLeap, + } + + public sealed class UnityXRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.UnityXR; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.UnityXR; } } + + public const string WAVE_XR_LOADER_NAME = "Wave XR Loader"; + public const string WAVE_XR_LOADER_CLASS_NAME = "WaveXRLoader"; + +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + private class CameraCreator : VRCameraHook.CameraCreator + { + public override bool shouldActive { get { return s_moduleInstance != null && s_moduleInstance.isActivated; } } + + public override void CreateCamera(VRCameraHook hook) + { + if (hook.GetComponent<TrackedPoseDriver>() == null) + { + hook.gameObject.AddComponent<TrackedPoseDriver>(); + } + } + } + + [RenderModelHook.CreatorPriorityAttirbute(0)] + private class RenderModelCreator : RenderModelHook.DefaultRenderModelCreator + { +#if VIU_WAVEXR_ESSENCE_RENDERMODEL + private uint m_index = INVALID_DEVICE_INDEX; +#endif + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void UpdateRenderModel() + { +#if VIU_WAVEXR_ESSENCE_RENDERMODEL + if (HasActiveLoader(WAVE_XR_LOADER_NAME)) + { + if (!ChangeProp.Set(ref m_index, hook.GetModelDeviceIndex())) { return; } + if (VRModule.IsValidDeviceIndex(m_index) && m_index == VRModule.GetRightControllerDeviceIndex()) + { + var go = new GameObject("Model"); + go.transform.SetParent(hook.transform, false); + go.AddComponent<Wave.Essence.Controller.RenderModel>(); + go.AddComponent<Wave.Essence.Controller.ButtonEffect>(); + go.AddComponent<Wave.Essence.Controller.ShowIndicator>(); + } + else if (VRModule.IsValidDeviceIndex(m_index) && m_index == VRModule.GetLeftControllerDeviceIndex()) + { + var go = new GameObject("Model"); + go.transform.SetParent(hook.transform, false); + var rm = go.AddComponent<Wave.Essence.Controller.RenderModel>(); + rm.transform.gameObject.SetActive(false); + rm.WhichHand = XR_Hand.NonDominant; + rm.transform.gameObject.SetActive(true); + var be = go.AddComponent<Wave.Essence.Controller.ButtonEffect>(); + be.transform.gameObject.SetActive(false); + be.HandType = XR_Hand.NonDominant; + be.transform.gameObject.SetActive(true); + go.AddComponent<Wave.Essence.Controller.ShowIndicator>(); + } + else + { + // deacitvate object for render model + if (m_model != null) + { + m_model.gameObject.SetActive(false); + } + } + } + else +#endif + { + base.UpdateRenderModel(); + } + } + } + + private class HapticVibrationState + { + public uint deviceIndex; + public float amplitude; + public float remainingDuration; + public float remainingDelay; + + public HapticVibrationState(uint index, float amp, float duration, float delay) + { + deviceIndex = index; + amplitude = amp; + remainingDuration = duration; + remainingDelay = delay; + } + } + + private const uint DEVICE_STATE_LENGTH = 16; + private static UnityXRModule s_moduleInstance; + + private XRInputSubsystemType m_currentInputSubsystemType = XRInputSubsystemType.Unknown; + private uint m_rightHandedDeviceIndex = INVALID_DEVICE_INDEX; + private uint m_leftHandedDeviceIndex = INVALID_DEVICE_INDEX; + private Dictionary<int, uint> m_deviceUidToIndex = new Dictionary<int, uint>(); + private List<InputDevice> m_indexToDevices = new List<InputDevice>(); + private List<InputDevice> m_connectedDevices = new List<InputDevice>(); + private List<HapticVibrationState> m_activeHapticVibrationStates = new List<HapticVibrationState>(); + + public static bool HasActiveLoader(string loaderName = null) + { + var instance = XRGeneralSettings.Instance; + if (instance == null) { return false; } + var manager = instance.Manager; + if (manager == null) { return false; } + var loader = manager.activeLoader; + if (loader == null) { return false; } + if (loaderName != null && loaderName != loader.name) { return false; } + return true; + } + + public override bool ShouldActiveModule() + { + return VIUSettings.activateUnityXRModule && HasActiveLoader(); + } + + public override void OnActivated() + { + s_moduleInstance = this; + m_currentInputSubsystemType = DetectCurrentInputSubsystemType(); + EnsureDeviceStateLength(DEVICE_STATE_LENGTH); + UpdateTrackingSpaceType(); + Debug.Log("Activated XRLoader Name: " + XRGeneralSettings.Instance.Manager.activeLoader.name); + } + + public override void OnDeactivated() + { + s_moduleInstance = null; + m_deviceUidToIndex.Clear(); + m_indexToDevices.Clear(); + m_connectedDevices.Clear(); + } + + public override uint GetLeftControllerDeviceIndex() { return m_leftHandedDeviceIndex; } + + public override uint GetRightControllerDeviceIndex() { return m_rightHandedDeviceIndex; } + + public override void UpdateTrackingSpaceType() + { + switch (VRModule.trackingSpaceType) + { + case VRModuleTrackingSpaceType.Stationary: + SetAllXRInputSubsystemTrackingOriginMode(TrackingOriginModeFlags.Device); + break; + case VRModuleTrackingSpaceType.RoomScale: + SetAllXRInputSubsystemTrackingOriginMode(TrackingOriginModeFlags.Floor); + break; + } + } + + // NOTE: Frequency not supported + public override void TriggerHapticVibration(uint deviceIndex, float durationSeconds = 0.01f, float frequency = 85.0f, float amplitude = 0.125f, float startSecondsFromNow = 0.0f) + { + InputDevice device; + if (TryGetDevice(deviceIndex, out device)) + { + if (!device.isValid) + { + return; + } + + HapticCapabilities capabilities; + if (device.TryGetHapticCapabilities(out capabilities)) + { + if (capabilities.supportsImpulse) + { + for (int i = m_activeHapticVibrationStates.Count - 1; i >= 0; i--) + { + if (m_activeHapticVibrationStates[i].deviceIndex == deviceIndex) + { + m_activeHapticVibrationStates.RemoveAt(i); + } + } + + m_activeHapticVibrationStates.Add(new HapticVibrationState(deviceIndex, amplitude, durationSeconds, startSecondsFromNow)); + } + } + } + } + + public override void Update() + { + UpdateLockPhysicsUpdateRate(); + UpdateHapticVibration(); + } + + public override void BeforeRenderUpdate() + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + uint deviceIndex; + + FlushDeviceState(); + + // mark all devices as disconnected + deviceIndex = 0u; + while (TryGetValidDeviceState(deviceIndex++, out prevState, out currState)) + { + currState.isConnected = false; + } + + bool roleChanged = false; + InputDevices.GetDevices(m_connectedDevices); + foreach (InputDevice device in m_connectedDevices) + { + deviceIndex = GetOrCreateDeviceIndex(device); + EnsureValidDeviceState(deviceIndex, out prevState, out currState); + + if (!prevState.isConnected) + { + currState.deviceClass = GetDeviceClass(device.name, device.characteristics); + currState.serialNumber = device.name + " " + device.serialNumber + " " + (int)device.characteristics; + currState.modelNumber = device.name; + currState.renderModelName = device.name; + + SetupKnownDeviceModel(currState); + + if ((device.characteristics & InputDeviceCharacteristics.Left) > 0u) + { + m_leftHandedDeviceIndex = deviceIndex; + roleChanged = true; + } + else if ((device.characteristics & InputDeviceCharacteristics.Right) > 0u) + { + m_rightHandedDeviceIndex = deviceIndex; + roleChanged = true; + } + + Debug.LogFormat("Device connected: {0} / {1} / {2} / {3} / {4} / {5} ({6})", deviceIndex, currState.deviceClass, currState.deviceModel, currState.modelNumber, currState.serialNumber, device.name, device.characteristics); + } + + bool isTracked = false; + device.TryGetFeatureValue(CommonUsages.isTracked, out isTracked); + currState.isPoseValid = device.isValid && isTracked; + currState.isConnected = true; + + UpdateTrackingState(currState, device); + if (currState.deviceClass == VRModuleDeviceClass.Controller || currState.deviceModel == VRModuleDeviceModel.ViveTracker) + { + UpdateControllerState(currState, device); + } + } + + //UpdateHandHeldDeviceIndex(); + + deviceIndex = 0u; + // reset all devices that is not connected in this frame + while (TryGetValidDeviceState(deviceIndex, out prevState, out currState)) + { + if (!currState.isConnected) + { + currState.Reset(); + + if (deviceIndex == m_leftHandedDeviceIndex) + { + m_leftHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; + roleChanged = true; + } + else if (deviceIndex == m_rightHandedDeviceIndex) + { + m_rightHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; + roleChanged = true; + } + } + + ++deviceIndex; + } + + if (roleChanged) { InvokeControllerRoleChangedEvent(); } + + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + ProcessDeviceInputChanged(); + } + + private void UpdateLockPhysicsUpdateRate() + { + if (VRModule.lockPhysicsUpdateRateToRenderFrequency && Time.timeScale > 0.0f) + { + List<XRDisplaySubsystem> displaySystems = new List<XRDisplaySubsystem>(); + SubsystemManager.GetInstances<XRDisplaySubsystem>(displaySystems); + + float minRefreshRate = float.MaxValue; + foreach (XRDisplaySubsystem system in displaySystems) + { + float rate = 60.0f; + if (system.TryGetDisplayRefreshRate(out rate)) + { + if (rate < minRefreshRate) + { + minRefreshRate = rate; + } + } + } + + if (minRefreshRate > 0 && minRefreshRate < float.MaxValue) + { + Time.fixedDeltaTime = 1.0f / minRefreshRate; + } + } + } + + private void UpdateHapticVibration() + { + for (int i = m_activeHapticVibrationStates.Count - 1; i >= 0; i--) + { + HapticVibrationState state = m_activeHapticVibrationStates[i]; + if (state.remainingDelay > 0.0f) + { + state.remainingDelay -= Time.deltaTime; + continue; + } + + InputDevice device; + if (TryGetDevice(state.deviceIndex, out device)) + { + if (device.isValid) + { + device.SendHapticImpulse(0, state.amplitude); + } + } + + state.remainingDuration -= Time.deltaTime; + if (state.remainingDuration <= 0) + { + m_activeHapticVibrationStates.RemoveAt(i); + } + } + } + + private void UpdateTrackingState(IVRModuleDeviceStateRW state, InputDevice device) + { + Vector3 position = Vector3.zero; + if (device.TryGetFeatureValue(CommonUsages.devicePosition, out position)) + { + state.position = position; + } + + Quaternion rotation = Quaternion.identity; + if (device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation)) + { + state.rotation = rotation; + } + + Vector3 velocity = Vector3.zero; + if (device.TryGetFeatureValue(CommonUsages.deviceVelocity, out velocity)) + { + state.velocity = velocity; + } + + Vector3 angularVelocity = Vector3.zero; + if (device.TryGetFeatureValue(CommonUsages.deviceAngularVelocity, out angularVelocity)) + { + state.angularVelocity = angularVelocity; + } + } + + private void UpdateControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + switch (state.deviceModel) + { + case VRModuleDeviceModel.ViveController: + UpdateViveControllerState(state, device); + break; + case VRModuleDeviceModel.ViveCosmosControllerLeft: + case VRModuleDeviceModel.ViveCosmosControllerRight: + UpdateViveCosmosControllerState(state, device); + break; + case VRModuleDeviceModel.ViveTracker: + UpdateViveTrackerState(state, device); + break; + case VRModuleDeviceModel.OculusTouchLeft: + case VRModuleDeviceModel.OculusTouchRight: + case VRModuleDeviceModel.OculusGoController: + case VRModuleDeviceModel.OculusQuestControllerLeft: + case VRModuleDeviceModel.OculusQuestControllerRight: + UpdateOculusControllerState(state, device); + break; + case VRModuleDeviceModel.WMRControllerLeft: + case VRModuleDeviceModel.WMRControllerRight: + UpdateWMRControllerState(state, device); + break; + case VRModuleDeviceModel.KnucklesLeft: + case VRModuleDeviceModel.KnucklesRight: + case VRModuleDeviceModel.IndexControllerLeft: + case VRModuleDeviceModel.IndexControllerRight: + UpdateIndexControllerState(state, device); + break; + case VRModuleDeviceModel.MagicLeapController: + UpdateMagicLeapControllerState(state, device); + break; + case VRModuleDeviceModel.ViveFocusChirp: + UpdateViveFocusChirpControllerState(state, device); + break; + case VRModuleDeviceModel.ViveFocusFinch: + UpdateViveFocusFinchControllerState(state, device); + break; + } + } + + private bool TryGetDevice(uint index, out InputDevice deviceOut) + { + deviceOut = default; + if (index < m_indexToDevices.Count) + { + deviceOut = m_indexToDevices[(int)index]; + return true; + } + + return false; + } + + private uint GetOrCreateDeviceIndex(InputDevice device) + { + uint index = 0; + int uid = GetDeviceUID(device); + if (m_deviceUidToIndex.TryGetValue(uid, out index)) + { + return index; + } + + uint newIndex = (uint)m_deviceUidToIndex.Count; + m_deviceUidToIndex.Add(uid, newIndex); + m_indexToDevices.Add(device); + + return newIndex; + } + + private VRModuleDeviceClass GetDeviceClass(string name, InputDeviceCharacteristics characteristics) + { + bool isTracker = Regex.IsMatch(name, @"tracker", RegexOptions.IgnoreCase); + if ((characteristics & InputDeviceCharacteristics.HeadMounted) != 0) + { + return VRModuleDeviceClass.HMD; + } + + if ((characteristics & InputDeviceCharacteristics.Controller) != 0 && !isTracker) + { + return VRModuleDeviceClass.Controller; + } + + if ((characteristics & InputDeviceCharacteristics.TrackingReference) != 0) + { + return VRModuleDeviceClass.TrackingReference; + } + + if ((characteristics & InputDeviceCharacteristics.TrackedDevice) != 0) + { + return VRModuleDeviceClass.GenericTracker; + } + + return VRModuleDeviceClass.Invalid; + } + + private void SetAllXRInputSubsystemTrackingOriginMode(TrackingOriginModeFlags mode) + { + List<XRInputSubsystem> systems = new List<XRInputSubsystem>(); + SubsystemManager.GetInstances(systems); + foreach (XRInputSubsystem system in systems) + { + if (!system.TrySetTrackingOriginMode(mode)) + { + Debug.LogWarning("Failed to set TrackingOriginModeFlags to XRInputSubsystem: " + system.SubsystemDescriptor.id); + } + } + } + + private int GetDeviceUID(InputDevice device) + { +#if CSHARP_7_OR_LATER + return (device.name, device.serialNumber, device.characteristics).GetHashCode(); +#else + return new { device.name, device.serialNumber, device.characteristics }.GetHashCode(); +#endif + } + + private XRInputSubsystemType DetectCurrentInputSubsystemType() + { + List<XRInputSubsystem> systems = new List<XRInputSubsystem>(); + SubsystemManager.GetInstances(systems); + if (systems.Count == 0) + { + Debug.LogWarning("No XRInputSubsystem detected."); + return XRInputSubsystemType.Unknown; + } + + string id = systems[0].SubsystemDescriptor.id; + Debug.Log("Activated XRInputSubsystem Name: " + id); + + if (Regex.IsMatch(id, @"openvr", RegexOptions.IgnoreCase)) + { + return XRInputSubsystemType.OpenVR; + } + else if (Regex.IsMatch(id, @"oculus", RegexOptions.IgnoreCase)) + { + return XRInputSubsystemType.Oculus; + } + else if (Regex.IsMatch(id, @"windows mixed reality", RegexOptions.IgnoreCase)) + { + return XRInputSubsystemType.WMR; + } + else if (Regex.IsMatch(id, @"magicleap", RegexOptions.IgnoreCase)) + { + return XRInputSubsystemType.MagicLeap; + } + + return XRInputSubsystemType.Unknown; + } + + private void UpdateViveControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + bool primaryAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); + + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.Touchpad, primaryAxisClick); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.CapSenseGrip, gripButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + + state.SetButtonTouch(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private void UpdateViveCosmosControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool primaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.primaryButton); // X/A + bool primaryTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primaryTouch); // X/A + + bool secondaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryButton); // Y/B + bool secondaryTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryTouch); // Y/B + + bool primaryAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); + + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool triggerTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("TriggerTouch")); + + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + bool bumperButton = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("BumperButton")); + + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); + + state.SetButtonPress(VRModuleRawButton.A, primaryButton); + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, secondaryButton); + state.SetButtonPress(VRModuleRawButton.Touchpad, primaryAxisClick); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.Bumper, bumperButton); + + state.SetButtonTouch(VRModuleRawButton.A, primaryTouch); + state.SetButtonTouch(VRModuleRawButton.ApplicationMenu, secondaryTouch); + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + state.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + state.SetButtonTouch(VRModuleRawButton.Grip, gripButton); + state.SetButtonTouch(VRModuleRawButton.Bumper, bumperButton); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private void UpdateViveTrackerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); + + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.Touchpad, primary2DAxisClick); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.CapSenseGrip, gripButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + + state.SetButtonTouch(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private void UpdateOculusControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool primaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.primaryButton); // X/A + bool secondaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryButton); // Y/B + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + bool primaryTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primaryTouch); // X/A + bool secondaryTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryTouch); // Y/B + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); // Joystick + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); // Joystick + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + float grip = GetDeviceFeatureValueOrDefault(device, CommonUsages.grip); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); // Joystick + + state.SetButtonPress(VRModuleRawButton.A, primaryButton); + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, secondaryButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.CapSenseGrip, gripButton); + state.SetButtonPress(VRModuleRawButton.Axis0, primary2DAxisClick); + + state.SetButtonTouch(VRModuleRawButton.A, primaryTouch); + state.SetButtonTouch(VRModuleRawButton.ApplicationMenu, secondaryTouch); + state.SetButtonTouch(VRModuleRawButton.Grip, grip >= 0.05f); + state.SetButtonTouch(VRModuleRawButton.CapSenseGrip, grip >= 0.05f); + state.SetButtonTouch(VRModuleRawButton.Axis0, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + state.SetAxisValue(VRModuleRawAxis.JoystickX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.JoystickY, primary2DAxis.y); + + if (m_currentInputSubsystemType == XRInputSubsystemType.OpenVR) + { + bool triggerTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("TriggerTouch")); + state.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + } + else if (m_currentInputSubsystemType == XRInputSubsystemType.Oculus) + { + bool thumbrest = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Thumbrest")); + float indexTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("IndexTouch")); + float thumbTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("ThumbTouch")); // Not in use + + state.SetButtonTouch(VRModuleRawButton.Touchpad, thumbrest); + state.SetButtonTouch(VRModuleRawButton.Trigger, indexTouch >= 1.0f); + + if ((device.characteristics & InputDeviceCharacteristics.Left) != 0) + { + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + state.SetButtonPress(VRModuleRawButton.System, menuButton); + } + } + } + + private void UpdateWMRControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); // Touchpad + bool secondary2DAxisClick = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisClick")); + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); // Touchpad + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); // Touchpad + Vector2 secondary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondary2DAxis); // Joystick + + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.Touchpad, primary2DAxisClick); + state.SetButtonPress(VRModuleRawButton.Axis0, secondary2DAxisClick); + + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + state.SetAxisValue(VRModuleRawAxis.JoystickX, secondary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.JoystickY, secondary2DAxis.y); + + if (m_currentInputSubsystemType == XRInputSubsystemType.WMR) + { + float grip = GetDeviceFeatureValueOrDefault(device, CommonUsages.grip); + float sourceLossRisk = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("SourceLossRisk")); // Not in use + Vector3 pointerPosition = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<Vector3>("PointerPosition")); // Not in use + Vector3 sourceMitigationDirection = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<Vector3>("SourceMitigationDirection")); // Not in use + Quaternion pointerRotation = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<Quaternion>("PointerRotation")); // Not in use + + // conflict with JoystickX + //state.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + } + } + + private void UpdateIndexControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + // TODO: Get finger curl values once OpenVR XR Plugin supports + bool primaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.primaryButton); + bool secondaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryButton); // B + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); + bool secondary2DAxisClick = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisClick")); // Joystick + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); // trigger >= 0.5 + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); // grip force >= 0.5 + bool primaryTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("PrimaryTouch")); + bool secondaryTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("SecondaryTouch")); + bool triggerTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("TriggerTouch")); + bool gripTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("GripTouch")); + bool gripGrab = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("GripGrab")); // gripCapacitive >= 0.7 + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); + bool secondary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisTouch")); // Joystick + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + float grip = GetDeviceFeatureValueOrDefault(device, CommonUsages.grip); // grip force + float gripCapacitive = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("GripCapacitive")); // touch area on grip + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); + Vector2 secondary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondary2DAxis); + + state.SetButtonPress(VRModuleRawButton.A, primaryButton); + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, secondaryButton); + state.SetButtonPress(VRModuleRawButton.Touchpad, primary2DAxisClick); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.Axis0, secondary2DAxisClick); + + state.SetButtonTouch(VRModuleRawButton.A, primaryTouch); + state.SetButtonTouch(VRModuleRawButton.ApplicationMenu, secondaryTouch); + state.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouch); + state.SetButtonTouch(VRModuleRawButton.Grip, gripTouch); + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + state.SetButtonTouch(VRModuleRawButton.Axis0, secondary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + state.SetAxisValue(VRModuleRawAxis.JoystickX, secondary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.JoystickY, secondary2DAxis.y); + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + // conflict with JoystickX + //state.SetAxisValue(VRModuleRawAxis.CapSenseGrip, grip); + } + + private void UpdateMagicLeapControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + bool secondaryButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondaryButton); // Bumper + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); + uint MLControllerType = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<uint>("MLControllerType")); // Not in use + uint MLControllerDOF = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<uint>("MLControllerDOF")); // Not in use + uint MLControllerCalibrationAccuracy = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<uint>("MLControllerCalibrationAccuracy")); // Not in use + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + float MLControllerTouch1Force = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("MLControllerTouch1Force")); // Not in use + float MLControllerTouch2Force = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<float>("MLControllerTouch2Force")); // Not in use + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); + Vector2 secondary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondary2DAxis); // Not in use + + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.Bumper, secondaryButton); + + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private void UpdateViveFocusChirpControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); // Touchpad + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); // Touchpad + bool secondary2DAxisClick = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisClick")); // No data + bool secondary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisTouch")); // No data + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); + bool triggerButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.triggerButton); + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); // Touchpad + Vector2 secondary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondary2DAxis); // No data + Vector2 dPad = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<Vector2>("DPad")); + + state.SetButtonPress(VRModuleRawButton.Touchpad, primary2DAxisClick); + state.SetButtonPress(VRModuleRawButton.Grip, gripButton); + state.SetButtonPress(VRModuleRawButton.Trigger, triggerButton); + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.DPadUp, dPad.y > 0); + state.SetButtonPress(VRModuleRawButton.DPadDown, dPad.y < 0); + state.SetButtonPress(VRModuleRawButton.DPadLeft, dPad.x < 0); + state.SetButtonPress(VRModuleRawButton.DPadRight, dPad.x > 0); + + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private void UpdateViveFocusFinchControllerState(IVRModuleDeviceStateRW state, InputDevice device) + { + bool primary2DAxisClick = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisClick); // Touchpad + bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxisTouch); // Touchpad + bool secondary2DAxisClick = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisClick")); // No data + bool secondary2DAxisTouch = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<bool>("Secondary2DAxisTouch")); // No data + bool gripButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.gripButton); // Trigger + bool menuButton = GetDeviceFeatureValueOrDefault(device, CommonUsages.menuButton); // No Data + float trigger = GetDeviceFeatureValueOrDefault(device, CommonUsages.trigger); // No Data + Vector2 primary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.primary2DAxis); // Touchpad + Vector2 secondary2DAxis = GetDeviceFeatureValueOrDefault(device, CommonUsages.secondary2DAxis); // No data + Vector2 dPad = GetDeviceFeatureValueOrDefault(device, new InputFeatureUsage<Vector2>("DPad")); // No Data + + state.SetButtonPress(VRModuleRawButton.Touchpad, primary2DAxisClick); + state.SetButtonPress(VRModuleRawButton.Trigger, gripButton); + state.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuButton); + state.SetButtonPress(VRModuleRawButton.DPadUp, dPad.y > 0); + state.SetButtonPress(VRModuleRawButton.DPadDown, dPad.y < 0); + state.SetButtonPress(VRModuleRawButton.DPadLeft, dPad.x < 0); + state.SetButtonPress(VRModuleRawButton.DPadRight, dPad.x > 0); + + state.SetButtonTouch(VRModuleRawButton.Touchpad, primary2DAxisTouch); + + state.SetAxisValue(VRModuleRawAxis.Trigger, trigger); + state.SetAxisValue(VRModuleRawAxis.TouchpadX, primary2DAxis.x); + state.SetAxisValue(VRModuleRawAxis.TouchpadY, primary2DAxis.y); + } + + private bool GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<bool> feature) + { + bool value = false; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have bool feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private uint GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<uint> feature) + { + uint value = 0; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have uint feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private float GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<float> feature) + { + float value = 0.0f; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have float feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private Vector2 GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<Vector2> feature) + { + Vector2 value = Vector2.zero; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Vector2 feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private Vector3 GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<Vector3> feature) + { + Vector3 value = Vector3.zero; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Vector3 feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private Quaternion GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<Quaternion> feature) + { + Quaternion value = Quaternion.identity; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Quaternion feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private UnityEngine.XR.Hand GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<UnityEngine.XR.Hand> feature) + { + UnityEngine.XR.Hand value; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Hand feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private Bone GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<Bone> feature) + { + Bone value; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Bone feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private Eyes GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<Eyes> feature) + { + Eyes value; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have Eyes feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private InputTrackingState GetDeviceFeatureValueOrDefault(InputDevice device, InputFeatureUsage<InputTrackingState> feature) + { + InputTrackingState value; + if (device.TryGetFeatureValue(feature, out value)) + { + return value; + } + +#if UNITY_EDITOR + Debug.LogWarningFormat("Device {0} doesn't have InputTrackingState feature {1}. Return default value instead.", device.name, feature.name); +#endif + + return default; + } + + private void LogDeviceFeatureUsages(InputDevice device) + { + List<InputFeatureUsage> usages = new List<InputFeatureUsage>(); + if (device.TryGetFeatureUsages(usages)) + { + string strUsages = ""; + foreach (var usage in usages) + { + strUsages += "[" + usage.type.Name + "] " + usage.name + "\n"; + } + + Debug.Log(device.name + " feature usages:\n\n" + strUsages); + } + } + + private static string CharacteristicsToString(InputDeviceCharacteristics ch) + { + if (ch == 0u) { return " No Characteristic"; } + var chu = (uint)ch; + var str = string.Empty; + for (var i = 1u; chu > 0u; i <<= 1) + { + if ((chu & i) == 0u) { continue; } + str += " " + (InputDeviceCharacteristics)i; + chu &= ~i; + } + return str; + } +#endif + } + } \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2c570ee1e24506827094276b330ae53ffce97bcf --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b7c51369aa6fced4d98702c805edfa58 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs b/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..4a2f20dfeefb2417cfe77ace6d514234c7898be2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs @@ -0,0 +1,802 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.Vive; +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +#if VIU_WAVEVR && UNITY_ANDROID +using wvr; +using Object = UnityEngine.Object; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public static readonly bool isWaveVRPluginDetected = +#if VIU_WAVEVR + true; +#else + false; +#endif + + public static readonly bool isWaveVRSupported = +#if VIU_WAVEVR_SUPPORT + true; +#else + false; +#endif + } + + public sealed class WaveVRModule : VRModule.ModuleBase + { + public override int moduleOrder { get { return (int)DefaultModuleOrder.WaveVR; } } + + public override int moduleIndex { get { return (int)VRModuleSelectEnum.WaveVR; } } + +#if VIU_WAVEVR && UNITY_ANDROID + private class CameraCreator : VRCameraHook.CameraCreator + { + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void CreateCamera(VRCameraHook hook) + { + if (hook.GetComponent<WaveVR_Render>() == null) + { + hook.gameObject.AddComponent<WaveVR_Render>(); +#if VIU_WAVEVR_3_1_3_OR_NEWER && UNITY_EDITOR + wvr.Interop.WVR_PostInit(); +#endif + } + if (hook.GetComponent<VivePoseTracker>() == null) + { + hook.gameObject.AddComponent<VivePoseTracker>().viveRole.SetEx(DeviceRole.Hmd); + } + if (hook.GetComponent<AudioListener>() != null) + { + Object.Destroy(hook.GetComponent<AudioListener>()); + } + } + } + + private class RenderModelCreator : RenderModelHook.RenderModelCreator + { + private uint m_index = INVALID_DEVICE_INDEX; + private GameObject m_model; + private WVR_DeviceType m_loadedHandType; + + public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } } + + public override void UpdateRenderModel() + { + if (!ChangeProp.Set(ref m_index, hook.GetModelDeviceIndex())) { return; } + + var hasValidModel = false; + var handType = default(WVR_DeviceType); + if (VRModule.IsValidDeviceIndex(m_index)) + { + if (m_index == VRModule.GetRightControllerDeviceIndex()) + { + hasValidModel = true; + handType = WVR_DeviceType.WVR_DeviceType_Controller_Right; + } + else if (m_index == VRModule.GetLeftControllerDeviceIndex()) + { + hasValidModel = true; + handType = WVR_DeviceType.WVR_DeviceType_Controller_Left; + } + } + + // NOTE: load renderModel only if it hasn't been loaded or user changes handType + if (hasValidModel) + { + if (m_model != null && m_loadedHandType != handType) + { + CleanUpRenderModel(); + } + + if (m_model == null) + { + // Create WaveVR_ControllerLoader silently (to avoid Start and OnEnable) + var loaderGO = new GameObject("Loader"); + loaderGO.transform.SetParent(hook.transform, false); + loaderGO.SetActive(false); + var loader = loaderGO.AddComponent<WaveVR_ControllerLoader>(); + loader.TrackPosition = false; + loader.TrackRotation = false; + loader.showIndicator = false; + // Call onLoadController to create model (chould be Finch/Link/Pico/QIYIVR) + switch (handType) + { + case WVR_DeviceType.WVR_DeviceType_Controller_Right: +#if VIU_WAVEVR_3_0_0_OR_NEWER + loader.WhichHand = s_moduleInstance.m_deviceHands[RIGHT_INDEX]; +#else + loader.WhichHand = WaveVR_ControllerLoader.ControllerHand.Controller_Right; +#endif + loaderGO.SetActive(true); + + if (WaveVR.Instance.getDeviceByType(handType).pose.pose.Is6DoFPose && WaveVR_Controller.IsLeftHanded) + { + loaderGO.SendMessage("onLoadController", WVR_DeviceType.WVR_DeviceType_Controller_Left); + } + else + { + loaderGO.SendMessage("onLoadController", WVR_DeviceType.WVR_DeviceType_Controller_Right); + } + break; + case WVR_DeviceType.WVR_DeviceType_Controller_Left: +#if VIU_WAVEVR_3_0_0_OR_NEWER + loader.WhichHand = s_moduleInstance.m_deviceHands[LEFT_INDEX]; +#elif VIU_WAVEVR_2_1_0_OR_NEWER + if (Interop.WVR_GetWaveRuntimeVersion() >= 3 && WaveVR_Controller.IsLeftHanded) + { + loader.WhichHand = WaveVR_ControllerLoader.ControllerHand.Controller_Right; + } + else + { + loader.WhichHand = WaveVR_ControllerLoader.ControllerHand.Controller_Left; + } +#else + loader.WhichHand = WaveVR_ControllerLoader.ControllerHand.Controller_Left; +#endif + loaderGO.SetActive(true); + + if (WaveVR.Instance.getDeviceByType(handType).pose.pose.Is6DoFPose && WaveVR_Controller.IsLeftHanded) + { + loaderGO.SendMessage("onLoadController", WVR_DeviceType.WVR_DeviceType_Controller_Right); + } + else + { + loaderGO.SendMessage("onLoadController", WVR_DeviceType.WVR_DeviceType_Controller_Left); + } + break; + } + + // Find transform that only contains controller model (include animator, exclude PoseTracker/Beam/UIPointer) + // and remove other unnecessary objects + var ctrllerActions = FindWaveVRControllerActionsObjInChildren(); + if (ctrllerActions != null) + { + ctrllerActions.transform.SetParent(hook.transform, false); + ctrllerActions.transform.SetAsFirstSibling(); + for (int i = hook.transform.childCount - 1; i >= 1; --i) + { + Object.Destroy(hook.transform.GetChild(i).gameObject); + } + ctrllerActions.gameObject.SetActive(true); + m_model = ctrllerActions.gameObject; + } + else + { + Debug.LogWarning("FindWaveVRControllerActionsObjInChildren failed"); + for (int i = hook.transform.childCount - 1; i >= 0; --i) + { + Object.Destroy(hook.transform.GetChild(i).gameObject); + } + } + + m_loadedHandType = handType; + } + + m_model.SetActive(true); + } + else + { + if (m_model != null) + { + m_model.SetActive(false); + } + } + } + + public override void CleanUpRenderModel() + { + if (m_model != null) + { + Object.Destroy(m_model); + m_model = null; + } + } + + // FIXME: This is for finding Controller model with animator, is reliable? + private Transform FindWaveVRControllerActionsObjInChildren() + { + var nodes = new List<Transform>(); + nodes.Add(hook.transform); + for (int i = 0; i < nodes.Count; ++i) + { + var parent = nodes[i]; + for (int j = 0, jmax = parent.childCount; j < jmax; ++j) + { + var child = parent.GetChild(j); + nodes.Add(child); + if (child.GetComponent<WaveVR_PoseTrackerManager>() != null) { continue; } + if (child.GetComponent<WaveVR_Beam>() != null) { continue; } + if (child.GetComponent<WaveVR_ControllerPointer>() != null) { continue; } + if (child.GetComponent<WaveVR_ControllerLoader>() != null) { continue; } + return child; + } + } + + return null; + } + } + + private const uint DEVICE_COUNT = 3; + private const uint HEAD_INDEX = 0; + private const uint RIGHT_INDEX = 1; + private const uint LEFT_INDEX = 2; + + public static readonly Vector3 RIGHT_ARM_MULTIPLIER = new Vector3(1f, 1f, 1f); + public static readonly Vector3 LEFT_ARM_MULTIPLIER = new Vector3(-1f, 1f, 1f); + public const float DEFAULT_ELBOW_BEND_RATIO = 0.6f; + public const float MIN_EXTENSION_ANGLE = 7.0f; + public const float MAX_EXTENSION_ANGLE = 60.0f; + public const float EXTENSION_WEIGHT = 0.4f; + private static WaveVRModule s_moduleInstance; + private static readonly WVR_DeviceType[] s_index2type; + private static readonly uint[] s_type2index; + private static readonly VRModuleDeviceClass[] s_type2class; + + private IVRModuleDeviceStateRW m_headState; + private IVRModuleDeviceStateRW m_rightState; + private IVRModuleDeviceStateRW m_leftState; + private WaveVR_ControllerLoader.ControllerHand[] m_deviceHands = new WaveVR_ControllerLoader.ControllerHand[DEVICE_COUNT]; + + #region 6Dof Controller Simulation + + private enum Simulate6DoFControllerMode + { + KeyboardWASD, + KeyboardModifierTrackpad, + } + + private static Simulate6DoFControllerMode s_simulationMode = Simulate6DoFControllerMode.KeyboardWASD; + private static Vector3[] s_simulatedCtrlPosArray; + + #endregion + + static WaveVRModule() + { + s_index2type = new WVR_DeviceType[DEVICE_COUNT]; + s_index2type[0] = WVR_DeviceType.WVR_DeviceType_HMD; + s_index2type[1] = WVR_DeviceType.WVR_DeviceType_Controller_Right; + s_index2type[2] = WVR_DeviceType.WVR_DeviceType_Controller_Left; + + s_type2index = new uint[EnumUtils.GetMaxValue(typeof(WVR_DeviceType)) + 1]; + for (int i = 0; i < s_type2index.Length; ++i) { s_type2index[i] = INVALID_DEVICE_INDEX; } + s_type2index[(int)WVR_DeviceType.WVR_DeviceType_HMD] = 0u; + s_type2index[(int)WVR_DeviceType.WVR_DeviceType_Controller_Right] = 1u; + s_type2index[(int)WVR_DeviceType.WVR_DeviceType_Controller_Left] = 2u; + + s_type2class = new VRModuleDeviceClass[s_type2index.Length]; + for (int i = 0; i < s_type2class.Length; ++i) { s_type2class[i] = VRModuleDeviceClass.Invalid; } + s_type2class[(int)WVR_DeviceType.WVR_DeviceType_HMD] = VRModuleDeviceClass.HMD; + s_type2class[(int)WVR_DeviceType.WVR_DeviceType_Controller_Right] = VRModuleDeviceClass.Controller; + s_type2class[(int)WVR_DeviceType.WVR_DeviceType_Controller_Left] = VRModuleDeviceClass.Controller; + + s_simulatedCtrlPosArray = new Vector3[s_type2index.Length]; + } + + public override bool ShouldActiveModule() + { +#if VIU_WAVEVR_3_1_3_OR_NEWER && UNITY_EDITOR + return UnityEditor.EditorPrefs.GetBool("WaveVR/DirectPreview/Enable Direct Preview", false); +#elif !VIU_WAVEVR_2_1_0_OR_NEWER && UNITY_EDITOR + return false; +#else + return VIUSettings.activateWaveVRModule; +#endif + } + + public override void OnActivated() + { + if (Object.FindObjectOfType<WaveVR_Init>() == null) + { + VRModule.Instance.gameObject.AddComponent<WaveVR_Init>(); + } + +#if !UNITY_EDITOR && VIU_WAVEVR_3_1_0_OR_NEWER + if (Object.FindObjectOfType<WaveVR_ButtonList>() == null) + { + VRModule.Instance.gameObject.AddComponent<WaveVR_ButtonList>(); + + var buttonList = VRModule.Instance.gameObject.GetComponent<WaveVR_ButtonList>(); + if (buttonList != null) + { + buttonList.HmdButtons = new List<WaveVR_ButtonList.EHmdButtons>() + { + WaveVR_ButtonList.EHmdButtons.Enter + }; + buttonList.DominantButtons = new List<WaveVR_ButtonList.EControllerButtons>() + { + WaveVR_ButtonList.EControllerButtons.Grip, + WaveVR_ButtonList.EControllerButtons.Menu, + WaveVR_ButtonList.EControllerButtons.Touchpad, + WaveVR_ButtonList.EControllerButtons.Trigger + }; + buttonList.NonDominantButtons = new List<WaveVR_ButtonList.EControllerButtons>() + { + WaveVR_ButtonList.EControllerButtons.Grip, + WaveVR_ButtonList.EControllerButtons.Menu, + WaveVR_ButtonList.EControllerButtons.Touchpad, + WaveVR_ButtonList.EControllerButtons.Trigger + }; + } + } +#elif !UNITY_EDITOR && VIU_WAVEVR_3_0_0_OR_NEWER + if (Object.FindObjectOfType<WaveVR_ButtonList>() == null) + { + VRModule.Instance.gameObject.AddComponent<WaveVR_ButtonList>(); + + var buttonList = VRModule.Instance.gameObject.GetComponent<WaveVR_ButtonList>(); + if (buttonList != null) + { + buttonList.HmdButtons = new List<WaveVR_ButtonList.EButtons>() + { + WaveVR_ButtonList.EButtons.HMDEnter + }; + buttonList.DominantButtons = new List<WaveVR_ButtonList.EButtons>() + { + WaveVR_ButtonList.EButtons.Grip, + WaveVR_ButtonList.EButtons.Menu, + WaveVR_ButtonList.EButtons.Touchpad, + WaveVR_ButtonList.EButtons.Trigger + }; + buttonList.NonDominantButtons = new List<WaveVR_ButtonList.EButtons>() + { + WaveVR_ButtonList.EButtons.Grip, + WaveVR_ButtonList.EButtons.Menu, + WaveVR_ButtonList.EButtons.Touchpad, + WaveVR_ButtonList.EButtons.Trigger + }; + } + } +#endif + + EnsureDeviceStateLength(DEVICE_COUNT); + + UpdateTrackingSpaceType(); + + s_moduleInstance = this; + + WaveVR_Utils.Event.Listen(WaveVR_Utils.Event.NEW_POSES, OnNewPoses); + } + + public override void OnDeactivated() + { + WaveVR_Utils.Event.Remove(WaveVR_Utils.Event.NEW_POSES, OnNewPoses); + + m_headState = null; + m_rightState = null; + m_leftState = null; + + s_moduleInstance = null; + } + + public override void UpdateTrackingSpaceType() + { + if (WaveVR_Render.Instance != null) + { + // Only effected when origin is OnHead or OnGround + // This way you can manually set WaveVR_Render origin to other value lik OnTrackingObserver or OnHead_3DoF + if (VRModule.trackingSpaceType == VRModuleTrackingSpaceType.RoomScale) + { + if (WaveVR_Render.Instance.origin == WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead) + { + WaveVR_Render.Instance.origin = WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnGround; + } + } + else if (VRModule.trackingSpaceType == VRModuleTrackingSpaceType.Stationary) + { + if (WaveVR_Render.Instance.origin == WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnGround) + { + WaveVR_Render.Instance.origin = WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead; + } + } + } + } + + public override void Update() + { + var rightDevice = GetWVRControllerDevice(WVR_DeviceType.WVR_DeviceType_Controller_Right); + UpdateDeviceInput(1, rightDevice); + var leftDevice = GetWVRControllerDevice(WVR_DeviceType.WVR_DeviceType_Controller_Left); + UpdateDeviceInput(2, leftDevice); + + ProcessDeviceInputChanged(); + } + + private WaveVR_Controller.Device GetWVRControllerDevice(WVR_DeviceType deviceType) + { + switch (deviceType) + { + case WVR_DeviceType.WVR_DeviceType_Controller_Right: + return WaveVR_Controller.Input(WaveVR_Controller.IsLeftHanded ? WVR_DeviceType.WVR_DeviceType_Controller_Left : WVR_DeviceType.WVR_DeviceType_Controller_Right); + case WVR_DeviceType.WVR_DeviceType_Controller_Left: + return WaveVR_Controller.Input(WaveVR_Controller.IsLeftHanded ? WVR_DeviceType.WVR_DeviceType_Controller_Right : WVR_DeviceType.WVR_DeviceType_Controller_Left); + default: + return null; + } + } + + private WaveVR.Device GetWVRDevice(WVR_DeviceType deviceType) + { + switch (deviceType) + { + case WVR_DeviceType.WVR_DeviceType_HMD: + return WaveVR.Instance.getDeviceByType(deviceType); + case WVR_DeviceType.WVR_DeviceType_Controller_Right: + return WaveVR.Instance.getDeviceByType(WaveVR_Controller.IsLeftHanded ? WVR_DeviceType.WVR_DeviceType_Controller_Left : WVR_DeviceType.WVR_DeviceType_Controller_Right); + case WVR_DeviceType.WVR_DeviceType_Controller_Left: + return WaveVR.Instance.getDeviceByType(WaveVR_Controller.IsLeftHanded ? WVR_DeviceType.WVR_DeviceType_Controller_Right : WVR_DeviceType.WVR_DeviceType_Controller_Left); + default: + return null; + } + } + + private void UpdateDeviceInput(uint deviceIndex, WaveVR_Controller.Device deviceInput) + { +#if VIU_WAVEVR_2_1_0_OR_NEWER + const WVR_InputId digitalTrggerBumpID = WVR_InputId.WVR_InputId_Alias1_Digital_Trigger; +#else + const WVR_InputId digitalTrggerBumpID = WVR_InputId.WVR_InputId_Alias1_Bumper; +#endif + + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + + if (!TryGetValidDeviceState(deviceIndex, out prevState, out currState) || !deviceInput.connected) { return; } + + if (deviceInput != null) + { + var systemPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_System); + var menuPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_Menu); + var triggerPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_Trigger); + var digitalTriggerPressed = deviceInput.GetPress(digitalTrggerBumpID); + var gripPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_Grip); + var touchpadPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_Touchpad); + var dpadLeftPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_DPad_Left); + var dpadUpPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_DPad_Up); + var dpadRightPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_DPad_Right); + var dpadDownPressed = deviceInput.GetPress(WVR_InputId.WVR_InputId_Alias1_DPad_Down); + currState.SetButtonPress(VRModuleRawButton.System, systemPressed); + currState.SetButtonPress(VRModuleRawButton.ApplicationMenu, menuPressed); + currState.SetButtonPress(VRModuleRawButton.Touchpad, touchpadPressed || dpadLeftPressed || dpadUpPressed || dpadRightPressed || dpadDownPressed); + currState.SetButtonPress(VRModuleRawButton.Trigger, triggerPressed || digitalTriggerPressed); + currState.SetButtonPress(VRModuleRawButton.Grip, gripPressed); + currState.SetButtonPress(VRModuleRawButton.DPadLeft, dpadLeftPressed); + currState.SetButtonPress(VRModuleRawButton.DPadUp, dpadUpPressed); + currState.SetButtonPress(VRModuleRawButton.DPadRight, dpadRightPressed); + currState.SetButtonPress(VRModuleRawButton.DPadDown, dpadDownPressed); + + var systemTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_System); + var menuTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_Menu); + var triggerTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_Trigger); + var digitalTriggerTouched = deviceInput.GetTouch(digitalTrggerBumpID); + var gripTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_Grip); + var touchpadTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_Touchpad); + var dpadLeftTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_DPad_Left); + var dpadUpTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_DPad_Up); + var dpadRightTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_DPad_Right); + var dpadDownTouched = deviceInput.GetTouch(WVR_InputId.WVR_InputId_Alias1_DPad_Down); + currState.SetButtonTouch(VRModuleRawButton.System, systemTouched); + currState.SetButtonTouch(VRModuleRawButton.ApplicationMenu, menuTouched); + currState.SetButtonTouch(VRModuleRawButton.Touchpad, touchpadTouched || dpadLeftTouched || dpadUpTouched || dpadRightTouched || dpadDownTouched); + currState.SetButtonTouch(VRModuleRawButton.Trigger, triggerTouched || digitalTriggerTouched); + currState.SetButtonTouch(VRModuleRawButton.Grip, gripTouched); + currState.SetButtonTouch(VRModuleRawButton.DPadLeft, dpadLeftTouched); + currState.SetButtonTouch(VRModuleRawButton.DPadUp, dpadUpTouched); + currState.SetButtonTouch(VRModuleRawButton.DPadRight, dpadRightTouched); + currState.SetButtonTouch(VRModuleRawButton.DPadDown, dpadDownTouched); + + var triggerAxis = deviceInput.GetAxis(WVR_InputId.WVR_InputId_Alias1_Trigger); + var touchAxis = deviceInput.GetAxis(WVR_InputId.WVR_InputId_Alias1_Touchpad); + currState.SetAxisValue(VRModuleRawAxis.Trigger, triggerAxis.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadX, touchAxis.x); + currState.SetAxisValue(VRModuleRawAxis.TouchpadY, touchAxis.y); + } + else + { + currState.buttonPressed = 0u; + currState.buttonTouched = 0u; + currState.ResetAxisValues(); + } + } + + private IVRModuleDeviceStateRW UpdateDevicePose(uint deviceIndex, WaveVR.Device content) + { + IVRModuleDeviceState prevState; + IVRModuleDeviceStateRW currState; + EnsureValidDeviceState(deviceIndex, out prevState, out currState); + + var deviceConnected = content.type == WVR_DeviceType.WVR_DeviceType_HMD ? true : content.connected; + + if (!deviceConnected) + { + if (prevState.isConnected) + { + currState.Reset(); + + switch (content.type) + { + case WVR_DeviceType.WVR_DeviceType_HMD: m_headState = null; break; + case WVR_DeviceType.WVR_DeviceType_Controller_Right: m_rightState = null; break; + case WVR_DeviceType.WVR_DeviceType_Controller_Left: m_leftState = null; break; + } + } + } + else + { + if (!prevState.isConnected) + { + string renderModelName; + if (!TryGetWVRStringParameter(s_index2type[(int)deviceIndex], "GetRenderModelName", out renderModelName)) + { + renderModelName = "wvr_unknown_device"; + } + + currState.isConnected = true; + currState.deviceClass = s_type2class[(int)content.type]; + currState.serialNumber = content.type.ToString(); + currState.modelNumber = renderModelName; + currState.renderModelName = renderModelName; + currState.input2DType = VRModuleInput2DType.TouchpadOnly; + + SetupKnownDeviceModel(currState); + } + + // update pose + var devicePose = content.pose.pose; + currState.velocity = new Vector3(devicePose.Velocity.v0, devicePose.Velocity.v1, -devicePose.Velocity.v2); + currState.angularVelocity = new Vector3(-devicePose.AngularVelocity.v0, -devicePose.AngularVelocity.v1, devicePose.AngularVelocity.v2); + + var rigidTransform = content.rigidTransform; + currState.position = rigidTransform.pos; + currState.rotation = rigidTransform.rot; + + currState.isPoseValid = devicePose.IsValidPose; + } + + return currState; + } + + private void OnNewPoses(params object[] args) + { + if (WaveVR.Instance == null) { return; } + + FlushDeviceState(); + + var headDevice = GetWVRDevice(WVR_DeviceType.WVR_DeviceType_HMD); + m_headState = UpdateDevicePose(0, headDevice); + var rightDevice = GetWVRDevice(WVR_DeviceType.WVR_DeviceType_Controller_Right); + m_rightState = UpdateDevicePose(1, rightDevice); + var leftDevice = GetWVRDevice(WVR_DeviceType.WVR_DeviceType_Controller_Left); + m_leftState = UpdateDevicePose(2, leftDevice); + +#if VIU_WAVEVR_3_0_0_OR_NEWER + if (WaveVR_Controller.IsLeftHanded) + { + m_deviceHands[RIGHT_INDEX] = WaveVR_ControllerLoader.ControllerHand.Non_Dominant; + m_deviceHands[LEFT_INDEX] = WaveVR_ControllerLoader.ControllerHand.Dominant; + } + else + { + m_deviceHands[RIGHT_INDEX] = WaveVR_ControllerLoader.ControllerHand.Dominant; + m_deviceHands[LEFT_INDEX] = WaveVR_ControllerLoader.ControllerHand.Non_Dominant; + } +#endif + + if (m_rightState != null && !rightDevice.pose.pose.Is6DoFPose) + { + ApplyVirtualArmAndSimulateInput(m_rightState, m_headState, RIGHT_ARM_MULTIPLIER); + } + + if (m_leftState != null && !leftDevice.pose.pose.Is6DoFPose) + { + ApplyVirtualArmAndSimulateInput(m_leftState, m_headState, LEFT_ARM_MULTIPLIER); + } + + ProcessConnectedDeviceChanged(); + ProcessDevicePoseChanged(); + } + + // FIXME: WVR_IsInputFocusCapturedBySystem currently not implemented yet + //public override bool HasInputFocus() + //{ + // return m_hasInputFocus; + //} + + public override uint GetRightControllerDeviceIndex() { return RIGHT_INDEX; } + + public override uint GetLeftControllerDeviceIndex() { return LEFT_INDEX; } + + private void ApplyVirtualArmAndSimulateInput(IVRModuleDeviceStateRW ctrlState, IVRModuleDeviceStateRW headState, Vector3 handSideMultiplier) + { + if (!ctrlState.isConnected) { return; } + if (!VIUSettings.waveVRAddVirtualArmTo3DoFController && !VIUSettings.simulateWaveVR6DofController) { return; } + var deviceType = (int)s_index2type[ctrlState.deviceIndex]; + +#if !UNITY_EDITOR + if (Interop.WVR_GetDegreeOfFreedom((WVR_DeviceType)deviceType) == WVR_NumDoF.WVR_NumDoF_6DoF) { return; } +#elif VIU_WAVEVR_3_1_3_OR_NEWER && UNITY_EDITOR + if (!WaveVR.EnableSimulator || WVR_DirectPreview.WVR_GetDegreeOfFreedom_S(0) == (int)WVR_NumDoF.WVR_NumDoF_6DoF) { return; } +#elif VIU_WAVEVR_3_1_0_OR_NEWER && UNITY_EDITOR + if (!WaveVR.EnableSimulator || WVR_Simulator.WVR_GetDegreeOfFreedom_S(0) == (int)WVR_NumDoF.WVR_NumDoF_6DoF) { return; } +#elif VIU_WAVEVR_2_1_0_OR_NEWER && UNITY_EDITOR + if (!WaveVR.Instance.isSimulatorOn || WaveVR_Utils.WVR_GetDegreeOfFreedom_S() == (int)WVR_NumDoF.WVR_NumDoF_6DoF) { return; } +#endif + + if (VIUSettings.simulateWaveVR6DofController) + { + if (Input.GetKeyDown(KeyCode.Alpha1)) { s_simulationMode = Simulate6DoFControllerMode.KeyboardWASD; } + if (Input.GetKeyDown(KeyCode.Alpha2)) { s_simulationMode = Simulate6DoFControllerMode.KeyboardModifierTrackpad; } + if (Input.GetKeyDown(KeyCode.BackQuote)) { s_simulatedCtrlPosArray[deviceType] = Vector3.zero; } + + var deltaMove = Time.unscaledDeltaTime; + var rotY = Quaternion.Euler(0f, ctrlState.rotation.eulerAngles.y, 0f); + var moveForward = rotY * Vector3.forward; + var moveRight = rotY * Vector3.right; + + switch (s_simulationMode) + { + case Simulate6DoFControllerMode.KeyboardWASD: + { + if (Input.GetKey(KeyCode.D)) { s_simulatedCtrlPosArray[deviceType] += moveRight * deltaMove; } + if (Input.GetKey(KeyCode.A)) { s_simulatedCtrlPosArray[deviceType] -= moveRight * deltaMove; } + if (Input.GetKey(KeyCode.E)) { s_simulatedCtrlPosArray[deviceType] += Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.Q)) { s_simulatedCtrlPosArray[deviceType] -= Vector3.up * deltaMove; } + if (Input.GetKey(KeyCode.W)) { s_simulatedCtrlPosArray[deviceType] += moveForward * deltaMove; } + if (Input.GetKey(KeyCode.S)) { s_simulatedCtrlPosArray[deviceType] -= moveForward * deltaMove; } + + break; + } + + case Simulate6DoFControllerMode.KeyboardModifierTrackpad: + { + float speedModifier = 2f; + float x = ctrlState.GetAxisValue(VRModuleRawAxis.TouchpadX) * speedModifier; + float y = ctrlState.GetAxisValue(VRModuleRawAxis.TouchpadY) * speedModifier; + + if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) + { + s_simulatedCtrlPosArray[deviceType] += x * moveRight * deltaMove; + s_simulatedCtrlPosArray[deviceType] += y * moveForward * deltaMove; + } + + if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) + { + s_simulatedCtrlPosArray[deviceType] += x * moveRight * deltaMove; + s_simulatedCtrlPosArray[deviceType] += y * Vector3.up * deltaMove; + } + + break; + } + } + } + + if (VIUSettings.waveVRAddVirtualArmTo3DoFController) + { + var neckPose = new RigidPose(s_simulatedCtrlPosArray[deviceType], Quaternion.identity) * GetNeckPose(headState.pose); + ctrlState.position = GetControllerPositionWithVirtualArm(neckPose, ctrlState.rotation, handSideMultiplier); + } + else + { + ctrlState.position += s_simulatedCtrlPosArray[deviceType]; + } + } + + private static RigidPose GetNeckPose(RigidPose headPose) + { + var headForward = headPose.forward; + return new RigidPose(headPose.pos + VIUSettings.waveVRVirtualNeckPosition, Quaternion.FromToRotation(Vector3.forward, new Vector3(headForward.x, 0f, headForward.z))); + } + + private static float GetExtensionRatio(Vector3 v) + { + var xAngle = 90f - Vector3.Angle(v, Vector3.up); + return Mathf.Clamp01(Mathf.InverseLerp(MIN_EXTENSION_ANGLE, MAX_EXTENSION_ANGLE, xAngle)); + } + + private static Quaternion GetLerpRotation(Quaternion xyRotation, float extensionRatio) + { + float totalAngle = Quaternion.Angle(xyRotation, Quaternion.identity); + float lerpSuppresion = 1.0f - Mathf.Pow(totalAngle / 180.0f, 6.0f); + float inverseElbowBendRatio = 1.0f - DEFAULT_ELBOW_BEND_RATIO; + float lerpValue = inverseElbowBendRatio + DEFAULT_ELBOW_BEND_RATIO * extensionRatio * EXTENSION_WEIGHT; + lerpValue *= lerpSuppresion; + return Quaternion.Lerp(Quaternion.identity, xyRotation, lerpValue); + } + + private static Vector3 GetControllerPositionWithVirtualArm(RigidPose neckPose, Quaternion ctrlRot, Vector3 sideMultiplier) + { + var localCtrlForward = (Quaternion.Inverse(neckPose.rot) * ctrlRot) * Vector3.forward; + var localCtrlXYRot = Quaternion.FromToRotation(Vector3.forward, localCtrlForward); + var extensionRatio = GetExtensionRatio(localCtrlForward); + var lerpRotation = GetLerpRotation(localCtrlXYRot, extensionRatio); + + var elbowPose = new RigidPose( + Vector3.Scale(VIUSettings.waveVRVirtualElbowRestPosition, sideMultiplier) + Vector3.Scale(VIUSettings.waveVRVirtualArmExtensionOffset, sideMultiplier) * extensionRatio, + Quaternion.Inverse(lerpRotation) * localCtrlXYRot); + var wristPose = new RigidPose( + Vector3.Scale(VIUSettings.waveVRVirtualWristRestPosition, sideMultiplier), + lerpRotation); + var palmPose = new RigidPose( + Vector3.Scale(VIUSettings.waveVRVirtualHandRestPosition, sideMultiplier), + Quaternion.identity); + + var finalCtrlPose = neckPose * elbowPose * wristPose * palmPose; + return finalCtrlPose.pos; + } + + public override void TriggerViveControllerHaptic(uint deviceIndex, ushort durationMicroSec = 500) + { + var deviceInput = WaveVR_Controller.Input(s_index2type[deviceIndex]); + if (deviceInput != null) + { + deviceInput.TriggerHapticPulse(durationMicroSec); + } + } + + private bool TryGetWVRStringParameter(WVR_DeviceType device, string paramName, out string result) + { + result = default(string); + var resultLen = 0u; + try + { + const int resultMaxLen = 128; + var resultBuffer = resultMaxLen; + var resultPtr = Marshal.AllocHGlobal(resultBuffer); + var paramNamePtr = Marshal.StringToHGlobalAnsi(paramName); + resultLen = Interop.WVR_GetParameters(device, paramNamePtr, resultPtr, resultMaxLen); + + if (resultLen > 0u) + { + result = Marshal.PtrToStringAnsi(resultPtr); + } + } + catch (Exception e) + { + Debug.LogException(e); + } + + return resultLen > 0u; + } + +#if VIU_WAVEVR_3_1_0_OR_NEWER + public override void TriggerHapticVibration(uint deviceIndex, float durationSeconds = 0.01f, float frequency = 85, float amplitude = 0.125f, float startSecondsFromNow = 0) + { + var deviceInput = WaveVR_Controller.Input(s_index2type[deviceIndex]); + var intensity = default(WVR_Intensity); + if (deviceInput != null) + { + if (0 <= amplitude || amplitude <= 0.2) + { + intensity = WVR_Intensity.WVR_Intensity_Weak; + } + else if (0.2 < amplitude || amplitude <= 0.4) + { + intensity = WVR_Intensity.WVR_Intensity_Light; + } + else if (0.4 < amplitude || amplitude <= 0.6) + { + intensity = WVR_Intensity.WVR_Intensity_Normal; + } + else if (0.6 < amplitude || amplitude <= 0.8) + { + intensity = WVR_Intensity.WVR_Intensity_Strong; + } + else if (0.8 < amplitude || amplitude <= 1) + { + intensity = WVR_Intensity.WVR_Intensity_Severe; + } + } + Interop.WVR_TriggerVibration(deviceInput.DeviceType, WVR_InputId.WVR_InputId_Alias1_Touchpad, (uint)(durationSeconds * 1000000), (uint)frequency, intensity); + } +#endif +#endif + } +} diff --git a/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..16b0f7fe1830e3fe418f133b35ebf62314109900 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1ae3cbaf7eb82324db91077381b3f903 +timeCreated: 1506933822 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModule.cs b/Assets/HTC.UnityPlugin/VRModule/VRModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..99456a47510cbe98245eaa9fcb7cc99925723fc4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModule.cs @@ -0,0 +1,200 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public enum VRModuleTrackingSpaceType + { + Stationary, + RoomScale, + } + + public enum VRModuleSelectEnum + { + Auto = -1, + None = 0, + Simulator = 1, + UnityNativeVR = 2, + SteamVR = 3, + OculusVR = 4, + DayDream = 5, + WaveVR = 6, + UnityXR = 7, + } + + public enum VRModuleActiveEnum + { + Uninitialized = -1, + None = VRModuleSelectEnum.None, + Simulator = VRModuleSelectEnum.Simulator, + UnityNativeVR = VRModuleSelectEnum.UnityNativeVR, + SteamVR = VRModuleSelectEnum.SteamVR, + OculusVR = VRModuleSelectEnum.OculusVR, + DayDream = VRModuleSelectEnum.DayDream, + WaveVR = VRModuleSelectEnum.WaveVR, + UnityXR = VRModuleSelectEnum.UnityXR, + } + + public partial class VRModule : SingletonBehaviour<VRModule> + { + public const uint MAX_DEVICE_COUNT = 64u; + public const uint INVALID_DEVICE_INDEX = 4294967295u; + public const uint HMD_DEVICE_INDEX = 0u; + + public static bool lockPhysicsUpdateRateToRenderFrequency + { + get + { + return Instance == null ? true : Instance.m_lockPhysicsUpdateRateToRenderFrequency; + } + set + { + if (Instance != null) + { + Instance.m_lockPhysicsUpdateRateToRenderFrequency = value; + } + } + } + + public static VRModuleSelectEnum selectModule + { + get + { + return Instance == null ? VRModuleSelectEnum.Auto : Instance.m_selectModule; + } + set + { + if (Instance != null) + { + Instance.m_selectModule = value; + } + } + } + + public static VRModuleActiveEnum activeModule + { + get + { + return Instance == null ? VRModuleActiveEnum.Uninitialized : Instance.m_activatedModule; + } + } + + public static IVRModuleDeviceState defaultDeviceState + { + get + { + return s_defaultState; + } + } + + public static bool IsValidDeviceIndex(uint deviceIndex) + { + if (!Active) { return false; } + return deviceIndex < Instance.GetDeviceStateLength(); + } + + public static bool HasInputFocus() + { + return Instance == null || Instance.m_activatedModuleBase == null ? true : Instance.m_activatedModuleBase.HasInputFocus(); + } + + public static bool IsDeviceConnected(string deviceSerialNumber) + { + return (string.IsNullOrEmpty(deviceSerialNumber) || s_deviceSerialNumberTable == null) ? false : s_deviceSerialNumberTable.ContainsKey(deviceSerialNumber); + } + + public static uint GetConnectedDeviceIndex(string deviceSerialNumber) + { + uint deviceIndex; + if (string.IsNullOrEmpty(deviceSerialNumber) || s_deviceSerialNumberTable == null || !s_deviceSerialNumberTable.TryGetValue(deviceSerialNumber, out deviceIndex)) + { + return INVALID_DEVICE_INDEX; + } + else + { + return deviceIndex; + } + } + + public static bool TryGetConnectedDeviceIndex(string deviceSerialNumber, out uint deviceIndex) + { + if (string.IsNullOrEmpty(deviceSerialNumber) || s_deviceSerialNumberTable == null) + { + deviceIndex = INVALID_DEVICE_INDEX; + return false; + } + else + { + return s_deviceSerialNumberTable.TryGetValue(deviceSerialNumber, out deviceIndex); + } + } + + public static uint GetDeviceStateCount() { return Instance == null ? 0u : Instance.GetDeviceStateLength(); } + + public static IVRModuleDeviceState GetCurrentDeviceState(uint deviceIndex) + { + if (!IsValidDeviceIndex(deviceIndex) || Instance == null || Instance.m_currStates == null) { return s_defaultState; } + return Instance.m_currStates[deviceIndex] ?? s_defaultState; + } + + public static IVRModuleDeviceState GetPreviousDeviceState(uint deviceIndex) + { + if (!IsValidDeviceIndex(deviceIndex) || Instance == null || Instance.m_prevStates == null) { return s_defaultState; } + return Instance.m_prevStates[deviceIndex] ?? s_defaultState; + } + + public static IVRModuleDeviceState GetDeviceState(uint deviceIndex, bool usePrevious = false) + { + return usePrevious ? GetPreviousDeviceState(deviceIndex) : GetCurrentDeviceState(deviceIndex); + } + + public static uint GetLeftControllerDeviceIndex() + { + return Instance == null || Instance.m_activatedModuleBase == null ? INVALID_DEVICE_INDEX : Instance.m_activatedModuleBase.GetLeftControllerDeviceIndex(); + } + + public static uint GetRightControllerDeviceIndex() + { + return Instance == null || Instance.m_activatedModuleBase == null ? INVALID_DEVICE_INDEX : Instance.m_activatedModuleBase.GetRightControllerDeviceIndex(); + } + + public static VRModuleTrackingSpaceType trackingSpaceType + { + get + { + return Instance == null ? VRModuleTrackingSpaceType.RoomScale : Instance.m_trackingSpaceType; + } + set + { + if (Instance != null) + { + Instance.m_trackingSpaceType = value; + + if (Instance.m_activatedModuleBase != null) + { + Instance.m_activatedModuleBase.UpdateTrackingSpaceType(); + } + } + } + } + + public static ISimulatorVRModule Simulator { get { return s_simulator; } } + + public static void TriggerViveControllerHaptic(uint deviceIndex, ushort durationMicroSec = 500) + { + if (Instance != null && Instance.m_activatedModuleBase != null && IsValidDeviceIndex(deviceIndex)) + { + Instance.m_activatedModuleBase.TriggerViveControllerHaptic(deviceIndex, durationMicroSec); + } + } + + public static void TriggerHapticVibration(uint deviceIndex, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + if (Instance != null && Instance.m_activatedModuleBase != null && IsValidDeviceIndex(deviceIndex)) + { + Instance.m_activatedModuleBase.TriggerHapticVibration(deviceIndex, durationSeconds, frequency, amplitude, startSecondsFromNow); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModule.cs.meta b/Assets/HTC.UnityPlugin/VRModule/VRModule.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..edccc19f98d165425181bc6edab95c40fdff3557 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 826daa2506a45f1469eacd8269c5c081 +timeCreated: 1495887808 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs b/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..3a39465789938ad9bb5539ff716a2ed361aa9c6f --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs @@ -0,0 +1,374 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + public abstract class ModuleBase + { + protected enum DefaultModuleOrder + { + Simulator = 1, + UnityNativeVR, + UnityXR, + SteamVR, + OculusVR, + DayDream, + WaveVR, + } + + [Obsolete("Module should set their own MAX_DEVICE_COUNT, use EnsureDeviceStateLength to set, VRModule.GetDeviceStateCount() to get")] + protected const uint MAX_DEVICE_COUNT = VRModule.MAX_DEVICE_COUNT; + protected const uint INVALID_DEVICE_INDEX = VRModule.INVALID_DEVICE_INDEX; + + private static readonly Regex s_viveRgx = new Regex("^.*(vive|htc).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_viveCosmosRgx = new Regex("^.*(cosmos).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_oculusRgx = new Regex("^.*(oculus).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_indexRgx = new Regex("^.*(index|knuckles).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_knucklesRgx = new Regex("^.*(knu_ev1).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_daydreamRgx = new Regex("^.*(daydream).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_wmrRgx = new Regex("(^.*(asus|acer|dell|lenovo|hp|samsung|windowsmr).*(mr|$))|spatial", RegexOptions.IgnoreCase); + private static readonly Regex s_magicLeapRgx = new Regex("^.*(magicleap).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_waveVrRgx = new Regex("^.*(wvr).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_leftRgx = new Regex("^.*(left|_l).*$", RegexOptions.IgnoreCase); + private static readonly Regex s_rightRgx = new Regex("^.*(right|_r).*$", RegexOptions.IgnoreCase); + + private struct WVRCtrlProfile + { + public VRModuleDeviceModel model; + public VRModuleInput2DType input2D; + } + private static Dictionary<string, WVRCtrlProfile> m_wvrModels = new Dictionary<string, WVRCtrlProfile> + { + { "WVR_CONTROLLER_FINCH3DOF_2_0", new WVRCtrlProfile() { model = VRModuleDeviceModel.ViveFocusFinch, input2D = VRModuleInput2DType.TouchpadOnly } }, + { "WVR_CONTROLLER_ASPEN_MI6_1", new WVRCtrlProfile() { model = VRModuleDeviceModel.ViveFocusChirp, input2D = VRModuleInput2DType.TouchpadOnly } }, + }; + + public bool isActivated { get; private set; } + + public virtual int moduleOrder { get { return moduleIndex; } } + + public abstract int moduleIndex { get; } + + public virtual bool ShouldActiveModule() { return false; } + + public void Activated() + { + isActivated = true; + OnActivated(); + } + + public void Deactivated() + { + isActivated = false; + OnDeactivated(); + } + + public virtual void OnActivated() { } + + public virtual void OnDeactivated() { } + + public virtual bool HasInputFocus() { return true; } + public virtual uint GetLeftControllerDeviceIndex() { return INVALID_DEVICE_INDEX; } + public virtual uint GetRightControllerDeviceIndex() { return INVALID_DEVICE_INDEX; } + public virtual void UpdateTrackingSpaceType() { } + public virtual void Update() { } + public virtual void FixedUpdate() { } + public virtual void LateUpdate() { } + public virtual void BeforeRenderUpdate() { } + + [Obsolete] + public virtual void UpdateDeviceState(IVRModuleDeviceState[] prevState, IVRModuleDeviceStateRW[] currState) { } + + public virtual void TriggerViveControllerHaptic(uint deviceIndex, ushort durationMicroSec = 500) { } + + public virtual void TriggerHapticVibration(uint deviceIndex, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) { } + + protected void InvokeInputFocusEvent(bool value) + { + VRModule.InvokeInputFocusEvent(value); + } + + protected void InvokeControllerRoleChangedEvent() + { + VRModule.InvokeControllerRoleChangedEvent(); + } + + protected uint GetDeviceStateLength() + { + return Instance.GetDeviceStateLength(); + } + + protected void EnsureDeviceStateLength(uint capacity) + { + Instance.EnsureDeviceStateLength(capacity); + } + + protected bool TryGetValidDeviceState(uint index, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState) + { + return Instance.TryGetValidDeviceState(index, out prevState, out currState); + } + + protected void EnsureValidDeviceState(uint index, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState) + { + Instance.EnsureValidDeviceState(index, out prevState, out currState); + } + + protected void FlushDeviceState() + { + Instance.ModuleFlushDeviceState(); + } + + protected void ProcessConnectedDeviceChanged() + { + Instance.ModuleConnectedDeviceChanged(); + } + + protected void ProcessDevicePoseChanged() + { + InvokeNewPosesEvent(); + } + + protected void ProcessDeviceInputChanged() + { + InvokeNewInputEvent(); + } + + protected static void SetupKnownDeviceModel(IVRModuleDeviceStateRW deviceState) + { + if (s_viveRgx.IsMatch(deviceState.modelNumber) || s_viveRgx.IsMatch(deviceState.renderModelName)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.ViveHMD; + return; + case VRModuleDeviceClass.Controller: + if (s_viveCosmosRgx.IsMatch(deviceState.modelNumber)) + { + if (s_leftRgx.IsMatch(deviceState.renderModelName)) + { + deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerLeft; + } + else if (s_rightRgx.IsMatch(deviceState.renderModelName)) + { + deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerRight; + } + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + } + else + { + deviceState.deviceModel = VRModuleDeviceModel.ViveController; + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + } + return; + case VRModuleDeviceClass.GenericTracker: + deviceState.deviceModel = VRModuleDeviceModel.ViveTracker; + return; + case VRModuleDeviceClass.TrackingReference: + deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; + return; + } + } + else if (s_oculusRgx.IsMatch(deviceState.modelNumber)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.OculusHMD; + return; + case VRModuleDeviceClass.Controller: + if (Application.platform == RuntimePlatform.Android) + { + if (deviceState.modelNumber.Contains("Go")) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusGoController; + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + return; + } + else if (s_leftRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerLeft; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + else if (s_rightRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerRight; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + } + else + { + if (deviceState.modelNumber.Contains("Rift S")) + { + if (s_leftRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerLeft; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + else if (s_rightRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerRight; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + } + else + { + if (s_leftRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + else if (s_rightRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.OculusTouchRight; + deviceState.input2DType = VRModuleInput2DType.JoystickOnly; + return; + } + } + } + break; + case VRModuleDeviceClass.TrackingReference: + deviceState.deviceModel = VRModuleDeviceModel.OculusSensor; + return; + } + } + else if (s_wmrRgx.IsMatch(deviceState.modelNumber) || s_wmrRgx.IsMatch(deviceState.renderModelName)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.WMRHMD; + return; + case VRModuleDeviceClass.Controller: + if (s_leftRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.WMRControllerLeft; + deviceState.input2DType = VRModuleInput2DType.Both; + return; + } + else if (s_rightRgx.IsMatch(deviceState.modelNumber)) + { + deviceState.deviceModel = VRModuleDeviceModel.WMRControllerRight; + deviceState.input2DType = VRModuleInput2DType.Both; + return; + } + break; + } + } + else if (s_indexRgx.IsMatch(deviceState.modelNumber) || s_indexRgx.IsMatch(deviceState.renderModelName)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.IndexHMD; + return; + case VRModuleDeviceClass.Controller: + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + if (s_leftRgx.IsMatch(deviceState.renderModelName)) + { + if (s_knucklesRgx.IsMatch(deviceState.renderModelName)) + { + deviceState.deviceModel = VRModuleDeviceModel.KnucklesLeft; + } + else + { + deviceState.deviceModel = VRModuleDeviceModel.IndexControllerLeft; +#if VIU_STEAMVR_2_0_0_OR_NEWER || (UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS) + deviceState.input2DType = VRModuleInput2DType.Both; +#endif + } + } + else if (s_rightRgx.IsMatch(deviceState.renderModelName)) + { + if (s_knucklesRgx.IsMatch(deviceState.renderModelName)) + { + deviceState.deviceModel = VRModuleDeviceModel.KnucklesRight; + } + else + { + deviceState.deviceModel = VRModuleDeviceModel.IndexControllerRight; +#if VIU_STEAMVR_2_0_0_OR_NEWER || (UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS) + deviceState.input2DType = VRModuleInput2DType.Both; +#endif + } + } + return; + case VRModuleDeviceClass.TrackingReference: + deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; + return; + } + } + else if (s_daydreamRgx.IsMatch(deviceState.modelNumber)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.DaydreamHMD; + return; + case VRModuleDeviceClass.Controller: + deviceState.deviceModel = VRModuleDeviceModel.DaydreamController; + deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; + return; + } + } + else if (s_magicLeapRgx.IsMatch(deviceState.modelNumber)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.MagicLeapHMD; + return; + case VRModuleDeviceClass.Controller: + deviceState.deviceModel = VRModuleDeviceModel.MagicLeapController; + deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; + return; + } + } + else if (s_waveVrRgx.IsMatch(deviceState.modelNumber)) + { + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + deviceState.deviceModel = VRModuleDeviceModel.ViveFocusHMD; + return; + case VRModuleDeviceClass.Controller: + { + WVRCtrlProfile profile; + if (m_wvrModels.TryGetValue(deviceState.modelNumber, out profile)) + { + deviceState.deviceModel = profile.model; + deviceState.input2DType = profile.input2D; + return; + } + } + break; + } + } + + deviceState.deviceModel = VRModuleDeviceModel.Unknown; + } + + public static bool AxisToPress(bool previousPressedState, float currentAxisValue, float setThreshold, float unsetThreshold) + { + return previousPressedState ? currentAxisValue > unsetThreshold : currentAxisValue >= setThreshold; + } + } + + private sealed class DefaultModule : ModuleBase + { + public override int moduleIndex { get { return (int)VRModuleActiveEnum.None; } } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs.meta b/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fd87bf01e41f1a23b6f2c708c9f76bd93943657b --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f29d15c2b330c93448dce7b882ee997a +timeCreated: 1495008900 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs b/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs new file mode 100644 index 0000000000000000000000000000000000000000..36b92beab750205f25af035cbdcf2d96340bc339 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs @@ -0,0 +1,315 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public enum VRModuleDeviceClass + { + Invalid, + HMD, + Controller, + GenericTracker, + TrackingReference, + } + + public enum VRModuleDeviceModel + { + Unknown, + ViveHMD, + ViveController, + ViveTracker, + ViveBaseStation, + OculusHMD, + OculusTouchLeft, + OculusTouchRight, + OculusSensor, + KnucklesLeft, + KnucklesRight, + DaydreamHMD, + DaydreamController, + ViveFocusHMD, + ViveFocusFinch, + ViveFocusChirp, + OculusGoController, + OculusGearVrController, + WMRHMD, + WMRControllerLeft, + WMRControllerRight, + ViveCosmosControllerLeft, + ViveCosmosControllerRight, + OculusQuestControllerLeft, + OculusQuestControllerRight, + OculusQuestOrRiftSControllerLeft = OculusQuestControllerLeft, + OculusQuestOrRiftSControllerRight = OculusQuestControllerRight, + IndexHMD, + IndexControllerLeft, + IndexControllerRight, + MagicLeapHMD, + MagicLeapController, + } + + public enum VRModuleRawButton + { + System = 0, + ApplicationMenu = 1, + Grip = 2, + DPadLeft = 3, + DPadUp = 4, + DPadRight = 5, + DPadDown = 6, + A = 7, + ProximitySensor = 31, + DashboardBack = 2, // Grip + Touchpad = 32, // Axis0 + Trigger = 33, // Axis1 + CapSenseGrip = 34, // Axis2 + Bumper = 35, // Axis3 + + // alias + Axis0 = 32, + Axis1 = 33, + Axis2 = 34, + Axis3 = 35, + Axis4 = 36, + } + + public enum VRModuleRawAxis + { + TouchpadX = Axis0X, + TouchpadY = Axis0Y, + Trigger = Axis1X, + CapSenseGrip = Axis2X, + IndexCurl = Axis3X, + MiddleCurl = Axis3Y, + RingCurl = Axis4X, + PinkyCurl = Axis4Y, + + JoystickX = Axis2X, + JoystickY = Axis2Y, + + // alias + Axis0X = 0, + Axis0Y, + Axis1X, + Axis1Y, + Axis2X, + Axis2Y, + Axis3X, + Axis3Y, + Axis4X, + Axis4Y, + } + + public enum VRModuleInput2DType + { + None, + Unknown, + TouchpadOnly, + ThumbstickOnly, + Both, + + TrackpadOnly = TouchpadOnly, + JoystickOnly = ThumbstickOnly, + } + + public interface IVRModuleDeviceStateRW + { + uint deviceIndex { get; } + string serialNumber { get; set; } + string modelNumber { get; set; } + string renderModelName { get; set; } + VRModuleDeviceClass deviceClass { get; set; } + VRModuleDeviceModel deviceModel { get; set; } + VRModuleInput2DType input2DType { get; set; } + + bool isConnected { get; set; } + bool isPoseValid { get; set; } + bool isOutOfRange { get; set; } + bool isCalibrating { get; set; } + bool isUninitialized { get; set; } + Vector3 velocity { get; set; } + Vector3 angularVelocity { get; set; } + Vector3 position { get; set; } + Quaternion rotation { get; set; } + RigidPose pose { get; set; } + + ulong buttonPressed { get; set; } + ulong buttonTouched { get; set; } + float[] axisValue { get; } + + bool GetButtonPress(VRModuleRawButton button); + bool GetButtonTouch(VRModuleRawButton button); + float GetAxisValue(VRModuleRawAxis axis); + + void SetButtonPress(VRModuleRawButton button, bool value); + void SetButtonTouch(VRModuleRawButton button, bool value); + void SetAxisValue(VRModuleRawAxis axis, float value); + void ResetAxisValues(); + void Reset(); + } + + public interface IVRModuleDeviceState + { + uint deviceIndex { get; } + string serialNumber { get; } + string modelNumber { get; } + string renderModelName { get; } + VRModuleDeviceClass deviceClass { get; } + VRModuleDeviceModel deviceModel { get; } + VRModuleInput2DType input2DType { get; } + + bool isConnected { get; } + bool isPoseValid { get; } + bool isOutOfRange { get; } + bool isCalibrating { get; } + bool isUninitialized { get; } + Vector3 velocity { get; } + Vector3 angularVelocity { get; } + Vector3 position { get; } + Quaternion rotation { get; } + RigidPose pose { get; } + + ulong buttonPressed { get; } + ulong buttonTouched { get; } + + bool GetButtonPress(VRModuleRawButton button); + bool GetButtonTouch(VRModuleRawButton button); + float GetAxisValue(VRModuleRawAxis axis); + } + + public partial class VRModule : SingletonBehaviour<VRModule> + { + [Serializable] + private class DeviceState : IVRModuleDeviceState, IVRModuleDeviceStateRW + { + [SerializeField] + private string m_serialNumber; + [SerializeField] + private string m_modelNumber; + [SerializeField] + private string m_renderModelName; + [SerializeField] + private VRModuleDeviceClass m_deviceClass; + [SerializeField] + private VRModuleDeviceModel m_deviceModel; + [SerializeField] + private VRModuleInput2DType m_input2DType; + + [SerializeField] + private bool m_isPoseValid; + [SerializeField] + private bool m_isConnected; + [SerializeField] + private bool m_isOutOfRange; + [SerializeField] + private bool m_isCalibrating; + [SerializeField] + private bool m_isUninitialized; + [SerializeField] + private Vector3 m_velocity; + [SerializeField] + private Vector3 m_angularVelocity; + [SerializeField] + private Vector3 m_position; + [SerializeField] + private Quaternion m_rotation; + + // device property, changed only when connected or disconnected + public uint deviceIndex { get; private set; } + public string serialNumber { get { return m_serialNumber; } set { m_serialNumber = value; } } + public string modelNumber { get { return m_modelNumber; } set { m_modelNumber = value; } } + public string renderModelName { get { return m_renderModelName; } set { m_renderModelName = value; } } + public VRModuleDeviceClass deviceClass { get { return m_deviceClass; } set { m_deviceClass = value; } } + public VRModuleDeviceModel deviceModel { get { return m_deviceModel; } set { m_deviceModel = value; } } + public VRModuleInput2DType input2DType { get { return m_input2DType; } set { m_input2DType = value; } } + // device pose state + public bool isPoseValid { get { return m_isPoseValid; } set { m_isPoseValid = value; } } + public bool isConnected { get { return m_isConnected; } set { m_isConnected = value; } } + public bool isOutOfRange { get { return m_isOutOfRange; } set { m_isOutOfRange = value; } } + public bool isCalibrating { get { return m_isCalibrating; } set { m_isCalibrating = value; } } + public bool isUninitialized { get { return m_isUninitialized; } set { m_isUninitialized = value; } } + public Vector3 velocity { get { return m_velocity; } set { m_velocity = value; } } + public Vector3 angularVelocity { get { return m_angularVelocity; } set { m_angularVelocity = value; } } + public Vector3 position { get { return m_position; } set { m_position = value; } } + public Quaternion rotation { get { return m_rotation; } set { m_rotation = value; } } + public RigidPose pose { get { return new RigidPose(m_position, m_rotation); } set { m_position = value.pos; m_rotation = value.rot; } } + + // device input state + [SerializeField] + private ulong m_buttonPressed; + [SerializeField] + private ulong m_buttonTouched; + [SerializeField] + private float[] m_axisValue; + + public ulong buttonPressed { get { return m_buttonPressed; } set { m_buttonPressed = value; } } + public ulong buttonTouched { get { return m_buttonTouched; } set { m_buttonTouched = value; } } + public float[] axisValue { get { return m_axisValue; } } + + public bool GetButtonPress(VRModuleRawButton button) { return EnumUtils.GetFlag(m_buttonPressed, (int)button); } + public bool GetButtonTouch(VRModuleRawButton button) { return EnumUtils.GetFlag(m_buttonTouched, (int)button); } + public float GetAxisValue(VRModuleRawAxis axis) { return m_axisValue[(int)axis]; } + + public void SetButtonPress(VRModuleRawButton button, bool value) { m_buttonPressed = value ? EnumUtils.SetFlag(m_buttonPressed, (int)button) : EnumUtils.UnsetFlag(m_buttonPressed, (int)button); } + public void SetButtonTouch(VRModuleRawButton button, bool value) { m_buttonTouched = value ? EnumUtils.SetFlag(m_buttonTouched, (int)button) : EnumUtils.UnsetFlag(m_buttonTouched, (int)button); } + public void SetAxisValue(VRModuleRawAxis axis, float value) { m_axisValue[(int)axis] = value; } + public void ResetAxisValues() { Array.Clear(m_axisValue, 0, m_axisValue.Length); } + + public DeviceState(uint deviceIndex) + { + this.deviceIndex = deviceIndex; + this.m_axisValue = new float[EnumUtils.GetMaxValue(typeof(VRModuleRawAxis)) + 1]; + Reset(); + } + + public void CopyFrom(DeviceState state) + { + m_serialNumber = state.m_serialNumber; + m_modelNumber = state.m_modelNumber; + m_renderModelName = state.m_renderModelName; + m_deviceClass = state.m_deviceClass; + m_deviceModel = state.m_deviceModel; + m_input2DType = state.m_input2DType; + + m_isPoseValid = state.m_isPoseValid; + m_isConnected = state.m_isConnected; + m_isOutOfRange = state.m_isOutOfRange; + m_isCalibrating = state.m_isCalibrating; + m_isUninitialized = state.m_isUninitialized; + m_velocity = state.m_velocity; + m_angularVelocity = state.m_angularVelocity; + m_position = state.m_position; + m_rotation = state.m_rotation; + + m_buttonPressed = state.m_buttonPressed; + m_buttonTouched = state.m_buttonTouched; + Array.Copy(state.m_axisValue, m_axisValue, m_axisValue.Length); + } + + public void Reset() + { + deviceClass = VRModuleDeviceClass.Invalid; + input2DType = VRModuleInput2DType.None; + serialNumber = string.Empty; + modelNumber = string.Empty; + renderModelName = string.Empty; + isConnected = false; + isPoseValid = false; + isOutOfRange = false; + isCalibrating = false; + isUninitialized = false; + velocity = Vector3.zero; + angularVelocity = Vector3.zero; + m_position = Vector3.zero; + m_rotation = Quaternion.identity; + + m_buttonPressed = 0ul; + m_buttonTouched = 0ul; + ResetAxisValues(); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs.meta b/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e400134771fa4d6073cc5b475e07f065464faea5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleDeviceState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2fba0d222f8dd1d46b62aa03c7341bca +timeCreated: 1495887982 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs b/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b50b7ad670f73beccfa26f4d51a09ca8ff52ea4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs @@ -0,0 +1,81 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + [Serializable] + public class NewPosesEvent : UnityEvent { } + [Serializable] + public class NewInputEvent : UnityEvent { } + [Serializable] + public class ControllerRoleChangedEvent : UnityEvent { } + [Serializable] + public class InputFocusEvent : UnityEvent<bool> { } + [Serializable] + public class DeviceConnectedEvent : UnityEvent<uint, bool> { } + [Serializable] + public class ActiveModuleChangedEvent : UnityEvent<VRModuleActiveEnum> { } + + public delegate void NewPosesListener(); + public delegate void NesInputListener(); + public delegate void ControllerRoleChangedListener(); + public delegate void InputFocusListener(bool value); + public delegate void DeviceConnectedListener(uint deviceIndex, bool connected); + public delegate void ActiveModuleChangedListener(VRModuleActiveEnum activeModule); + + private static NewPosesListener s_onNewPoses; + private static NesInputListener s_onNewInput; + private static ControllerRoleChangedListener s_onControllerRoleChanged; + private static InputFocusListener s_onInputFocus; + private static DeviceConnectedListener s_onDeviceConnected; + private static ActiveModuleChangedListener s_onActiveModuleChanged; + + public static event NewPosesListener onNewPoses { add { s_onNewPoses += value; } remove { s_onNewPoses -= value; } } // invoke by manager + public static event NesInputListener onNewInput { add { s_onNewInput += value; } remove { s_onNewInput -= value; } } // invoke by manager + public static event ControllerRoleChangedListener onControllerRoleChanged { add { s_onControllerRoleChanged += value; } remove { s_onControllerRoleChanged -= value; } } // invoke by module + public static event InputFocusListener onInputFocus { add { s_onInputFocus += value; } remove { s_onInputFocus -= value; } } // invoke by module + public static event DeviceConnectedListener onDeviceConnected { add { s_onDeviceConnected += value; } remove { s_onDeviceConnected -= value; } }// invoke by manager + public static event ActiveModuleChangedListener onActiveModuleChanged { add { s_onActiveModuleChanged += value; } remove { s_onActiveModuleChanged -= value; } } // invoke by manager + + private static void InvokeNewPosesEvent() + { + if (s_onNewPoses != null) { s_onNewPoses(); } + if (Active) { Instance.m_onNewPoses.Invoke(); } + } + + private static void InvokeNewInputEvent() + { + if (s_onNewInput != null) { s_onNewInput(); } + if (Active) { Instance.m_onNewInput.Invoke(); } + } + + private static void InvokeControllerRoleChangedEvent() + { + if (s_onControllerRoleChanged != null) { s_onControllerRoleChanged(); } + if (Active) { Instance.m_onControllerRoleChanged.Invoke(); } + } + + private static void InvokeInputFocusEvent(bool value) + { + if (s_onInputFocus != null) { s_onInputFocus(value); } + if (Active) { Instance.m_onInputFocus.Invoke(value); } + } + + private static void InvokeDeviceConnectedEvent(uint deviceIndex, bool connected) + { + if (s_onDeviceConnected != null) { s_onDeviceConnected(deviceIndex, connected); } + if (Active) { Instance.m_onDeviceConnected.Invoke(deviceIndex, connected); } + } + + private static void InvokeActiveModuleChangedEvent(VRModuleActiveEnum activeModule) + { + if (s_onActiveModuleChanged != null) { s_onActiveModuleChanged(activeModule); } + if (Active) { Instance.m_onActiveModuleChanged.Invoke(activeModule); } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs.meta b/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cb025180d7dc25029c0d1df4a4318e6f03df338c --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleEvent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 37ec72c6d94f2f94e97075b50b78e79d +timeCreated: 1495708115 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs b/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..1ccd67a0827c117a330cc02f1c148dc94dac1dfe --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs @@ -0,0 +1,453 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; + +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.VRModuleManagement +{ + public partial class VRModule : SingletonBehaviour<VRModule> + { + private static readonly DeviceState s_defaultState; + private static readonly SimulatorVRModule s_simulator; + private static readonly Dictionary<string, uint> s_deviceSerialNumberTable; + + [SerializeField] + private bool m_dontDestroyOnLoad = true; + [SerializeField] + private bool m_lockPhysicsUpdateRateToRenderFrequency = true; + [SerializeField] + private VRModuleSelectEnum m_selectModule = VRModuleSelectEnum.Auto; + [SerializeField] + private VRModuleTrackingSpaceType m_trackingSpaceType = VRModuleTrackingSpaceType.RoomScale; + + [SerializeField] + private NewPosesEvent m_onNewPoses = new NewPosesEvent(); + [SerializeField] + private NewInputEvent m_onNewInput = new NewInputEvent(); + [SerializeField] + private ControllerRoleChangedEvent m_onControllerRoleChanged = new ControllerRoleChangedEvent(); + [SerializeField] + private InputFocusEvent m_onInputFocus = new InputFocusEvent(); + [SerializeField] + private DeviceConnectedEvent m_onDeviceConnected = new DeviceConnectedEvent(); + [SerializeField] + private ActiveModuleChangedEvent m_onActiveModuleChanged = new ActiveModuleChangedEvent(); + + private bool m_delayDeactivate = false; + private bool m_isDestoryed = false; + + private ModuleBase[] m_modules; + private ModuleBase[] m_modulesOrdered; + private VRModuleActiveEnum m_activatedModule = VRModuleActiveEnum.Uninitialized; + private ModuleBase m_activatedModuleBase; + private DeviceState[] m_prevStates; + private DeviceState[] m_currStates; + + static VRModule() + { + SetDefaultInitGameObjectGetter(GetDefaultInitGameObject); + + s_defaultState = new DeviceState(INVALID_DEVICE_INDEX); + s_simulator = new SimulatorVRModule(); + s_deviceSerialNumberTable = new Dictionary<string, uint>(16); + } + + private static GameObject GetDefaultInitGameObject() + { + return new GameObject("[ViveInputUtility]"); + } + + public static GameObject GetInstanceGameObject() + { + return Instance.gameObject; + } + + protected override void OnSingletonBehaviourInitialized() + { + if (m_dontDestroyOnLoad && transform.parent == null && Application.isPlaying) + { + DontDestroyOnLoad(gameObject); + } + + m_activatedModule = VRModuleActiveEnum.Uninitialized; + m_activatedModuleBase = null; + + try + { + var modules = new List<ModuleBase>(); + var modulesOrdered = new List<ModuleBase>(); + foreach (var type in Assembly.GetAssembly(typeof(ModuleBase)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(ModuleBase)))) + { + var inst = type == typeof(SimulatorVRModule) ? s_simulator : (ModuleBase)Activator.CreateInstance(type); + var index = inst.moduleIndex; + + if (index < 0) + { + Debug.LogWarning("Invalid module index, module will not be activated! module name=" + type.Name + " index=" + index); + } + else if (index < modules.Count && modules[index] != null) + { + Debug.LogWarning("Duplicated module index, module will not be activated! module name=" + type.Name + " index=" + index); + } + else + { + while (index >= modules.Count) { modules.Add(null); } + modules[index] = inst; + } + + var order = inst.moduleOrder; + + if (order < 0) + { + Debug.LogWarning("Invalid module order, module will not be activated! module name=" + type.Name + " order=" + order); + } + else if (order < modulesOrdered.Count && modulesOrdered[order] != null) + { + Debug.LogWarning("Duplicated module order, module will not be activated! module name=" + type.Name + " order=" + order); + } + else + { + while (order >= modulesOrdered.Count) { modulesOrdered.Add(null); } + modulesOrdered[order] = inst; + } + } + m_modules = modules.ToArray(); + m_modulesOrdered = modulesOrdered.ToArray(); + } + catch (Exception e) + { + m_modules = new ModuleBase[] { new DefaultModule() }; + m_modulesOrdered = new ModuleBase[] { new DefaultModule() }; + Debug.LogError(e); + } + } + + private uint GetDeviceStateLength() { return m_currStates == null ? 0u : (uint)m_currStates.Length; } + + private void EnsureDeviceStateLength(uint capacity) + { + // NOTE: this will clear out the array + var cap = Mathf.Min((int)capacity, (int)MAX_DEVICE_COUNT); + if (GetDeviceStateLength() < cap) + { + m_prevStates = new DeviceState[cap]; + m_currStates = new DeviceState[cap]; + } + } + + private bool TryGetValidDeviceState(uint index, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState) + { + DeviceState prevRawState; + DeviceState currRawState; + if (TryGetValidDeviceState(index, out prevRawState, out currRawState)) + { + prevState = prevRawState; + currState = currRawState; + return true; + } + else + { + prevState = null; + currState = null; + return false; + } + } + + private bool TryGetValidDeviceState(uint index, out DeviceState prevState, out DeviceState currState) + { + if (m_currStates == null || m_currStates[index] == null) + { + prevState = null; + currState = null; + return false; + } + else + { + prevState = m_prevStates[index]; + currState = m_currStates[index]; + return true; + } + } + + private void EnsureValidDeviceState(uint index, out IVRModuleDeviceState prevState, out IVRModuleDeviceStateRW currState) + { + if (!TryGetValidDeviceState(index, out prevState, out currState)) + { + prevState = m_prevStates[index] = new DeviceState(index); + currState = m_currStates[index] = new DeviceState(index); + } + } + + private void Update() + { + if (!IsInstance) { return; } + + // Get should activate module + var shouldActivateModule = GetShouldActivateModule(); + + // Update module activity + if (m_activatedModule != shouldActivateModule) + { + // Do clean up + if (m_activatedModule != VRModuleActiveEnum.Uninitialized) + { + DeactivateModule(); + } + + if (shouldActivateModule != VRModuleActiveEnum.Uninitialized) + { + ActivateModule(shouldActivateModule); + } + } + + if (m_activatedModuleBase != null) + { + m_activatedModuleBase.Update(); + } + } + + private void FixedUpdate() + { + if (!IsInstance) { return; } + + if (m_activatedModuleBase != null) + { + m_activatedModuleBase.FixedUpdate(); + } + } + + private void LateUpdate() + { + if (!IsInstance) { return; } + + if (m_activatedModuleBase != null) + { + m_activatedModuleBase.LateUpdate(); + } + } + + protected override void OnDestroy() + { + if (IsInstance) + { + m_isDestoryed = true; + + if (!m_delayDeactivate) + { + DeactivateModule(); + } + } + + base.OnDestroy(); + } + + private VRModuleActiveEnum GetShouldActivateModule() + { + if (m_isDestoryed) { return VRModuleActiveEnum.Uninitialized; } + + if (m_selectModule == VRModuleSelectEnum.Auto) + { + for (int i = m_modulesOrdered.Length - 1; i >= 0; --i) + { + if (m_modulesOrdered[i] != null && m_modulesOrdered[i].ShouldActiveModule()) + { + return (VRModuleActiveEnum)m_modulesOrdered[i].moduleIndex; + } + } + } + else if (m_selectModule >= 0 && (int)m_selectModule < m_modules.Length) + { + return (VRModuleActiveEnum)m_selectModule; + } + else + { + return VRModuleActiveEnum.None; + } + + return VRModuleActiveEnum.Uninitialized; + } + + private void ActivateModule(VRModuleActiveEnum module) + { + if (m_activatedModule != VRModuleActiveEnum.Uninitialized) + { + Debug.LogError("Must deactivate before activate module! Current activatedModule:" + m_activatedModule); + return; + } + + if (module == VRModuleActiveEnum.Uninitialized) + { + Debug.LogError("Activate module cannot be Uninitialized! Use DeactivateModule instead"); + return; + } + + m_activatedModule = module; + + m_activatedModuleBase = m_modules[(int)module]; + m_activatedModuleBase.Activated(); + +#if UNITY_2017_1_OR_NEWER + Application.onBeforeRender += BeforeRenderUpdateModule; +#else + Camera.onPreCull += OnCameraPreCull; +#endif + + InvokeActiveModuleChangedEvent(m_activatedModule); + } + +#if !UNITY_2017_1_OR_NEWER + private int m_preCullOnceFrame = -1; + private void OnCameraPreCull(Camera cam) + { + var thisFrame = Time.frameCount; + if (m_preCullOnceFrame == thisFrame) { return; } +#if UNITY_5_5_OR_NEWER + if ((cam.cameraType & (CameraType.Game | CameraType.VR)) == 0) { return; } +#else + if ((cam.cameraType & CameraType.Game) == 0) { return; } +#endif + m_preCullOnceFrame = thisFrame; + BeforeRenderUpdateModule(); + } +#endif + + private void BeforeRenderUpdateModule() + { + if (m_activatedModuleBase != null) + { + m_activatedModuleBase.BeforeRenderUpdate(); + } + } + + private void DeactivateModule() + { + if (m_activatedModule == VRModuleActiveEnum.Uninitialized) + { + return; + } + + if (m_activatedModuleBase == null) + { + return; + } + + m_delayDeactivate = false; + +#if UNITY_2017_1_OR_NEWER + Application.onBeforeRender -= BeforeRenderUpdateModule; +#else + Camera.onPreCull -= OnCameraPreCull; +#endif + + DeviceState prevState; + DeviceState currState; + // copy status to from current state to previous state, and reset current state + for (uint i = 0u, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState)) { continue; } + + if (prevState.isConnected || currState.isConnected) + { + prevState.CopyFrom(currState); + currState.Reset(); + } + } + + s_deviceSerialNumberTable.Clear(); + + // send disconnect event + SendAllDeviceConnectedEvent(); + + var deactivatedModuleBase = m_activatedModuleBase; + m_activatedModule = VRModuleActiveEnum.Uninitialized; + m_activatedModuleBase = null; + deactivatedModuleBase.Deactivated(); + + InvokeActiveModuleChangedEvent(VRModuleActiveEnum.Uninitialized); + } + + private void ModuleFlushDeviceState() + { + DeviceState prevState; + DeviceState currState; + + // copy status to from current state to previous state + for (uint i = 0u, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState)) { continue; } + + if (prevState.isConnected || currState.isConnected) + { + prevState.CopyFrom(currState); + } + } + } + + private void ModuleConnectedDeviceChanged() + { + DeviceState prevState; + DeviceState currState; + + m_delayDeactivate = true; + // send connect/disconnect event + for (uint i = 0u, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState)) { continue; } + + if (prevState.isConnected == currState.isConnected) { continue; } + + if (currState.isConnected) + { + if (string.IsNullOrEmpty(currState.serialNumber)) + { + Debug.LogError("Device connected with empty serialNumber. index:" + i); + } + else if (s_deviceSerialNumberTable.ContainsKey(currState.serialNumber)) + { + Debug.LogError("Device connected with duplicate serialNumber: " + currState.serialNumber + " index:" + i + "(" + s_deviceSerialNumberTable[currState.serialNumber] + ")"); + } + else + { + s_deviceSerialNumberTable.Add(currState.serialNumber, i); + } + } + else + { + s_deviceSerialNumberTable.Remove(prevState.serialNumber); + } + } + + SendAllDeviceConnectedEvent(); + + m_delayDeactivate = false; + if (m_isDestoryed) + { + DeactivateModule(); + } + } + + private void SendAllDeviceConnectedEvent() + { + DeviceState prevState; + DeviceState currState; + + for (uint i = 0u, imax = GetDeviceStateLength(); i < imax; ++i) + { + if (!TryGetValidDeviceState(i, out prevState, out currState)) { continue; } + + if (prevState.isConnected != currState.isConnected) + { + InvokeDeviceConnectedEvent(i, currState.isConnected); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs.meta b/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b1c4d8c7ad7158a4d3ec7688e2512c7393043f40 --- /dev/null +++ b/Assets/HTC.UnityPlugin/VRModule/VRModuleManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 81f8b9530b6d9a540bea1aedad6061d6 +timeCreated: 1495008884 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility.meta b/Assets/HTC.UnityPlugin/ViveInputUtility.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5c4111fc61d94cf06b2101157fdf30c9d56c948 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8b608c5a58e520544ac116bd8ec63105 +folderAsset: yes +timeCreated: 1465896284 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples.meta new file mode 100644 index 0000000000000000000000000000000000000000..bcc10ed71c965ef3d308f64a345b07ac8cbb532e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b91da71c58f530247bcf2e4769d59a41 +folderAsset: yes +timeCreated: 1464941713 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial.meta new file mode 100644 index 0000000000000000000000000000000000000000..bad0f4119328d246f574f978a0d96e0ecf4b9f90 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ddfe290541f929240aa425b41475f083 +folderAsset: yes +timeCreated: 1468325961 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity new file mode 100644 index 0000000000000000000000000000000000000000..c958b3cff0d22f84002f22e877503e14308880ff --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity @@ -0,0 +1,485 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &189489047 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &649732569 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &886814253 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 886814254} + - 222: {fileID: 886814256} + - 114: {fileID: 886814255} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &886814254 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886814253} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1134099847} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &886814255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886814253} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &886814256 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886814253} +--- !u!1 &1134099846 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1134099847} + - 222: {fileID: 1134099850} + - 114: {fileID: 1134099849} + - 114: {fileID: 1134099848} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1134099847 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134099846} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 886814254} + m_Father: {fileID: 1633975352} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1134099848 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134099846} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1134099849} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1134099849 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134099846} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1134099850 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134099846} +--- !u!1 &1607995542 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1607995544} + - 108: {fileID: 1607995543} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1607995543 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607995542} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1607995544 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607995542} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1633975349 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1633975352} + - 223: {fileID: 1633975351} + - 114: {fileID: 1633975350} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1633975350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1633975349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!223 &1633975351 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1633975349} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1633975352 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1633975349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 2} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1134099847} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 1} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..4ef6bd08e7024e3ade53caa9ed5a56fb0b36922f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial/Tutorial.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62223332a39faa941b994704be3fb708 +timeCreated: 1468326006 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI.meta new file mode 100644 index 0000000000000000000000000000000000000000..ad4b5f74051d77a20e8baf7fbd39ff39e0d20d57 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 224af41e281d3954c969731e21e85763 +folderAsset: yes +timeCreated: 1465204552 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity new file mode 100644 index 0000000000000000000000000000000000000000..b8031d031880e6faea5908fa3ca925d9dc88079d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity @@ -0,0 +1,3444 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 1 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &106888263 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 106888264} + - 222: {fileID: 106888267} + - 114: {fileID: 106888266} + - 114: {fileID: 106888265} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &106888264 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 106888263} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1225465080} + m_Father: {fileID: 188478241} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &106888265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 106888263} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1737750873} + m_HandleRect: {fileID: 1737750872} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &106888266 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 106888263} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &106888267 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 106888263} +--- !u!1 &150395315 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 150395316} + - 222: {fileID: 150395319} + - 114: {fileID: 150395318} + - 114: {fileID: 150395317} + - 114: {fileID: 150395320} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &150395316 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 150395315} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1324632510} + - {fileID: 1125767330} + m_Father: {fileID: 227917254} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &150395317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 150395315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 150395318} + m_TextComponent: {fileID: 1125767331} + m_Placeholder: {fileID: 1324632511} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &150395318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 150395315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &150395319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 150395315} +--- !u!114 &150395320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 150395315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cecce3f724b63824a858c964a8a84e1a, type: 3} + m_Name: + m_EditorClassIdentifier: + minimalMode: 0 +--- !u!1 &183474115 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 183474116} + - 114: {fileID: 183474119} + - 222: {fileID: 183474118} + - 114: {fileID: 183474117} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &183474116 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 183474115} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1894097565} + m_Father: {fileID: 188478241} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &183474117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 183474115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &183474118 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 183474115} +--- !u!114 &183474119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 183474115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &188478240 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 188478241} + - 222: {fileID: 188478244} + - 114: {fileID: 188478243} + - 114: {fileID: 188478242} + - 223: {fileID: 188478246} + - 114: {fileID: 188478245} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &188478241 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 183474116} + - {fileID: 106888264} + m_Father: {fileID: 1006420503} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &188478242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1894097565} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 183474116} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 106888265} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &188478243 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &188478244 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} +--- !u!114 &188478245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!223 &188478246 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 188478240} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &189874318 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 189874319} + - 222: {fileID: 189874321} + - 114: {fileID: 189874320} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &189874319 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 189874318} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2057058664} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &189874320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 189874318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &189874321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 189874318} +--- !u!1 &227917251 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 227917254} + - 223: {fileID: 227917253} + - 222: {fileID: 227917255} + - 114: {fileID: 227917252} + - 114: {fileID: 227917256} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &227917252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 227917251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2509804} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!223 &227917253 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 227917251} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &227917254 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 227917251} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 4} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2070016758} + - {fileID: 666044071} + - {fileID: 1824275467} + - {fileID: 1741007392} + - {fileID: 150395316} + - {fileID: 365381813} + - {fileID: 1006420503} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1} + m_SizeDelta: {x: 800, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &227917255 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 227917251} +--- !u!114 &227917256 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 227917251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!1 &259179088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 259179089} + - 222: {fileID: 259179091} + - 114: {fileID: 259179090} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &259179089 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 259179088} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1473052326} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &259179090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 259179088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &259179091 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 259179088} +--- !u!1 &261305595 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 261305596} + - 222: {fileID: 261305598} + - 114: {fileID: 261305597} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &261305596 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261305595} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1162670661} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &261305597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261305595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &261305598 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261305595} +--- !u!1 &284668961 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 284668962} + - 222: {fileID: 284668964} + - 114: {fileID: 284668963} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &284668962 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284668961} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1006420503} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &284668963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284668961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &284668964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284668961} +--- !u!1 &365381812 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 365381813} + - 114: {fileID: 365381816} + - 222: {fileID: 365381815} + - 114: {fileID: 365381814} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &365381813 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 365381812} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 661398814} + - {fileID: 1058878120} + - {fileID: 652887408} + m_Father: {fileID: 227917254} + m_RootOrder: 5 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 100} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &365381814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 365381812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &365381815 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 365381812} +--- !u!114 &365381816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 365381812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1260968215} + m_Horizontal: 1 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 661398814} + m_HorizontalScrollbar: {fileID: 1058878121} + m_VerticalScrollbar: {fileID: 652887409} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &383496866 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 383496867} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &383496867 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 383496866} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1451006582} + m_Father: {fileID: 652887408} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &439098264 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 439098265} + - 222: {fileID: 439098267} + - 114: {fileID: 439098266} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &439098265 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439098264} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2057058664} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &439098266 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439098264} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &439098267 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439098264} +--- !u!1 &448285648 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 448285649} + - 222: {fileID: 448285651} + - 114: {fileID: 448285650} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &448285649 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448285648} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 507041777} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &448285650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448285648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &448285651 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448285648} +--- !u!1 &504624185 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 504624186} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &504624186 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 504624185} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 831522341} + - {fileID: 2049719918} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &507041776 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 507041777} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &507041777 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507041776} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 448285649} + m_Father: {fileID: 1741007392} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &652887407 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 652887408} + - 222: {fileID: 652887411} + - 114: {fileID: 652887410} + - 114: {fileID: 652887409} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &652887408 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652887407} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 383496867} + m_Father: {fileID: 365381813} + m_RootOrder: 2 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &652887409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652887407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1451006583} + m_HandleRect: {fileID: 1451006582} + m_Direction: 2 + m_Value: 1 + m_Size: 0.71484375 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &652887410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652887407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &652887411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652887407} +--- !u!1 &661398813 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 661398814} + - 114: {fileID: 661398817} + - 222: {fileID: 661398816} + - 114: {fileID: 661398815} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &661398814 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661398813} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1260968215} + m_Father: {fileID: 365381813} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &661398815 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661398813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &661398816 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661398813} +--- !u!114 &661398817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661398813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &666044070 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 666044071} + - 114: {fileID: 666044072} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &666044071 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 666044070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 719463325} + - {fileID: 2048850315} + m_Father: {fileID: 227917254} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 150} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &666044072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 666044070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 719463326} + toggleTransition: 1 + graphic: {fileID: 1491270241} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &719463324 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 719463325} + - 222: {fileID: 719463327} + - 114: {fileID: 719463326} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &719463325 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719463324} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1491270240} + m_Father: {fileID: 666044071} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &719463326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719463324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &719463327 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719463324} +--- !u!4 &831522341 stripped +Transform: + m_PrefabParentObject: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 1991281646} +--- !u!1001 &952191503 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 504624186} + m_Modifications: + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1006420502 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1006420503} + - 222: {fileID: 1006420506} + - 114: {fileID: 1006420505} + - 114: {fileID: 1006420504} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1006420503 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1006420502} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1306199522} + - {fileID: 284668962} + - {fileID: 188478241} + m_Father: {fileID: 227917254} + m_RootOrder: 6 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: -50} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1006420504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1006420502} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 853051423, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1006420505} + m_Template: {fileID: 188478241} + m_CaptionText: {fileID: 1306199523} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 1645027281} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1006420505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1006420502} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1006420506 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1006420502} +--- !u!1 &1058878119 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1058878120} + - 222: {fileID: 1058878123} + - 114: {fileID: 1058878122} + - 114: {fileID: 1058878121} + m_Layer: 5 + m_Name: Scrollbar Horizontal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1058878120 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1058878119} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1956171829} + m_Father: {fileID: 365381813} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1058878121 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1058878119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1174750645} + m_HandleRect: {fileID: 1174750644} + m_Direction: 0 + m_Value: 0 + m_Size: 0.71484375 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1058878122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1058878119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1058878123 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1058878119} +--- !u!1 &1125767329 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1125767330} + - 222: {fileID: 1125767332} + - 114: {fileID: 1125767331} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1125767330 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1125767329} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 150395316} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1125767331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1125767329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1125767332 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1125767329} +--- !u!1 &1162670660 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1162670661} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1162670661 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1162670660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 261305596} + m_Father: {fileID: 1824275467} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1174750643 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1174750644} + - 222: {fileID: 1174750646} + - 114: {fileID: 1174750645} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1174750644 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1174750643} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1956171829} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1174750645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1174750643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1174750646 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1174750643} +--- !u!1 &1225465079 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1225465080} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1225465080 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1225465079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1737750872} + m_Father: {fileID: 106888264} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1231769747 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1231769749} + - 108: {fileID: 1231769748} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1231769748 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1231769747} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1231769749 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1231769747} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1260968214 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1260968215} + - 222: {fileID: 1260968217} + - 114: {fileID: 1260968216} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1260968215 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260968214} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 661398814} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 256, y: 256} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1260968216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260968214} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 10904, guid: 0000000000000000f000000000000000, type: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1260968217 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260968214} +--- !u!1 &1306199521 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1306199522} + - 222: {fileID: 1306199524} + - 114: {fileID: 1306199523} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1306199522 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1306199521} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1006420503} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1306199523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1306199521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &1306199524 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1306199521} +--- !u!1 &1324632509 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1324632510} + - 222: {fileID: 1324632512} + - 114: {fileID: 1324632511} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1324632510 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1324632509} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 150395316} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1324632511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1324632509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!222 &1324632512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1324632509} +--- !u!1 &1420090860 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1420090861} + - 222: {fileID: 1420090863} + - 114: {fileID: 1420090862} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1420090861 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1420090860} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2070016758} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1420090862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1420090860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &1420090863 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1420090860} +--- !u!1 &1451006581 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1451006582} + - 222: {fileID: 1451006584} + - 114: {fileID: 1451006583} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1451006582 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1451006581} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 383496867} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1451006583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1451006581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1451006584 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1451006581} +--- !u!1 &1473052325 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1473052326} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1473052326 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1473052325} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 259179089} + m_Father: {fileID: 1824275467} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1491270239 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1491270240} + - 222: {fileID: 1491270242} + - 114: {fileID: 1491270241} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1491270240 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1491270239} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 719463325} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1491270241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1491270239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1491270242 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1491270239} +--- !u!1 &1547032831 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1547032832} + - 222: {fileID: 1547032834} + - 114: {fileID: 1547032833} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1547032832 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547032831} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1824275467} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1547032833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547032831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1547032834 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547032831} +--- !u!1 &1645027279 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1645027280} + - 222: {fileID: 1645027282} + - 114: {fileID: 1645027281} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1645027280 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1645027279} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2057058664} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1645027281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1645027279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &1645027282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1645027279} +--- !u!1 &1737750871 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1737750872} + - 222: {fileID: 1737750874} + - 114: {fileID: 1737750873} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1737750872 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1737750871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1225465080} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1737750873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1737750871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1737750874 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1737750871} +--- !u!1 &1741007391 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1741007392} + - 222: {fileID: 1741007395} + - 114: {fileID: 1741007394} + - 114: {fileID: 1741007393} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1741007392 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741007391} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 507041777} + m_Father: {fileID: 227917254} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 50} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1741007393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741007391} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 448285650} + m_HandleRect: {fileID: 448285649} + m_Direction: 0 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1741007394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741007391} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1741007395 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741007391} +--- !u!1 &1824275466 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1824275467} + - 114: {fileID: 1824275468} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1824275467 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1824275466} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1547032832} + - {fileID: 1162670661} + - {fileID: 1473052326} + m_Father: {fileID: 227917254} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 100} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1824275468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1824275466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 259179090} + m_FillRect: {fileID: 261305596} + m_HandleRect: {fileID: 259179089} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1894097564 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1894097565} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1894097565 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1894097564} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2057058664} + m_Father: {fileID: 183474116} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1956171828 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1956171829} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1956171829 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1956171828} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1174750644} + m_Father: {fileID: 1058878120} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &1991281646 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 504624186} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &2048850314 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2048850315} + - 222: {fileID: 2048850317} + - 114: {fileID: 2048850316} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2048850315 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2048850314} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 666044071} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2048850316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2048850314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Toggle +--- !u!222 &2048850317 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2048850314} +--- !u!4 &2049719918 stripped +Transform: + m_PrefabParentObject: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 952191503} +--- !u!1 &2057058663 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2057058664} + - 114: {fileID: 2057058665} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2057058664 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2057058663} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 189874319} + - {fileID: 439098265} + - {fileID: 1645027280} + m_Father: {fileID: 1894097565} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2057058665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2057058663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 189874320} + toggleTransition: 1 + graphic: {fileID: 439098266} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &2070016757 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2070016758} + - 222: {fileID: 2070016761} + - 114: {fileID: 2070016760} + - 114: {fileID: 2070016759} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2070016758 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2070016757} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1420090861} + m_Father: {fileID: 227917254} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 200} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2070016759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2070016757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2070016760} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2070016760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2070016757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2070016761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2070016757} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..d9309029ed3d8b5393e31611156cb91ec7a8e831 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/1.UGUI/UGUI.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b03e8710d3fd2d2409d15ea452c579f3 +timeCreated: 1465204562 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop.meta new file mode 100644 index 0000000000000000000000000000000000000000..936efaa38f2f6b60ed7038e728dec6dcd4bfe9f1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 45120698ed499b04c8d1e24122c4bac7 +folderAsset: yes +timeCreated: 1465213027 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity new file mode 100644 index 0000000000000000000000000000000000000000..dcbe87d24b9de87e0f9948898254dd1ddf1f699c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity @@ -0,0 +1,2063 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &491054322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 491054325} + - 114: {fileID: 491054324} + - 114: {fileID: 491054323} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &491054323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 491054322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &491054324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 491054322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &491054325 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 491054322} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 +--- !u!1 &607311715 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 607311716} + - 222: {fileID: 607311718} + - 114: {fileID: 607311717} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &607311716 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 607311715} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1708492754} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 25} + m_SizeDelta: {x: 256, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &607311717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 607311715} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drop Area 1 +--- !u!222 &607311718 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 607311715} +--- !u!1 &629343716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 629343717} + - 222: {fileID: 629343719} + - 114: {fileID: 629343718} + m_Layer: 5 + m_Name: Drag Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &629343717 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 629343716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1584680478} + m_Father: {fileID: 1741631458} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -120, y: -20} + m_SizeDelta: {x: 88, y: 88} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &629343718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 629343716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &629343719 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 629343716} +--- !u!1 &661563424 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 661563426} + - 108: {fileID: 661563425} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &661563425 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661563424} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &661563426 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 661563424} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &665552107 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 665552108} + - 222: {fileID: 665552110} + - 114: {fileID: 665552109} + m_Layer: 5 + m_Name: Drag Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &665552108 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 665552107} + m_LocalRotation: {x: -0.00000008940697, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1854504421} + m_Father: {fileID: 1741631458} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 120, y: -20} + m_SizeDelta: {x: 88, y: 88} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &665552109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 665552107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &665552110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 665552107} +--- !u!1 &755599058 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 755599062} + - 33: {fileID: 755599061} + - 65: {fileID: 755599060} + - 23: {fileID: 755599059} + - 114: {fileID: 755599063} + m_Layer: 0 + m_Name: DropCube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &755599059 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 755599058} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &755599060 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 755599058} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &755599061 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 755599058} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &755599062 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 755599058} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.24, y: 0.768, z: 2.48} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!114 &755599063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 755599058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57b3603583a38f74aaa1747e70bc984d, type: 3} + m_Name: + m_EditorClassIdentifier: + receivingRenderer: {fileID: 755599059} + highlightColor: {r: 1, g: 0.9724631, b: 0.6544118, a: 1} +--- !u!1 &766236580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 766236581} + - 222: {fileID: 766236583} + - 114: {fileID: 766236582} + - 114: {fileID: 766236584} + m_Layer: 5 + m_Name: Drop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &766236581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 766236580} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1708492754} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &766236582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 766236580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 2caa46ba9fdd6eb4ca30fd8259df839a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &766236583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 766236580} +--- !u!114 &766236584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 766236580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f257d69a05becf47965723a292df31f, type: 3} + m_Name: + m_EditorClassIdentifier: + containerImage: {fileID: 1708492755} + receivingImage: {fileID: 766236582} + highlightColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} +--- !u!1 &802673783 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 802673784} + - 222: {fileID: 802673786} + - 114: {fileID: 802673785} + m_Layer: 5 + m_Name: Panel 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &802673784 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 802673783} + m_LocalRotation: {x: 0, y: -0.3826835, z: 0, w: 0.9238795} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0} + m_Children: + - {fileID: 1708492754} + m_Father: {fileID: 2132677155} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -160, y: -100} + m_SizeDelta: {x: 350, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &802673785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 802673783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &802673786 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 802673783} +--- !u!1 &911120389 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 911120390} + - 222: {fileID: 911120393} + - 114: {fileID: 911120392} + - 114: {fileID: 911120391} + m_Layer: 5 + m_Name: Drag Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &911120390 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 911120389} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2075622099} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &911120391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 911120389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 385dea1d22ea0974ab003b814c424e74, type: 3} + m_Name: + m_EditorClassIdentifier: + dragOnSurfaces: 1 +--- !u!114 &911120392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 911120389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 66c4580cae2903646861a62234f82b09, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &911120393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 911120389} +--- !u!1 &1052813650 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1052813654} + - 33: {fileID: 1052813653} + - 135: {fileID: 1052813652} + - 23: {fileID: 1052813651} + - 114: {fileID: 1052813655} + m_Layer: 0 + m_Name: DropSphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1052813651 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1052813650} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1052813652 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1052813650} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1052813653 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1052813650} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1052813654 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1052813650} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.11, y: 0.81, z: 2.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 +--- !u!114 &1052813655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1052813650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57b3603583a38f74aaa1747e70bc984d, type: 3} + m_Name: + m_EditorClassIdentifier: + receivingRenderer: {fileID: 1052813651} + highlightColor: {r: 1, g: 0.96862745, b: 0.6509804, a: 1} +--- !u!4 &1107098159 stripped +Transform: + m_PrefabParentObject: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 1690401894} +--- !u!1 &1191464790 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1191464791} + - 222: {fileID: 1191464793} + - 114: {fileID: 1191464792} + - 114: {fileID: 1191464794} + m_Layer: 5 + m_Name: Drop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1191464791 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1191464790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1202766535} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1191464792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1191464790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 2caa46ba9fdd6eb4ca30fd8259df839a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1191464793 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1191464790} +--- !u!114 &1191464794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1191464790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f257d69a05becf47965723a292df31f, type: 3} + m_Name: + m_EditorClassIdentifier: + containerImage: {fileID: 1202766536} + receivingImage: {fileID: 1191464792} + highlightColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} +--- !u!1 &1202766534 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1202766535} + - 222: {fileID: 1202766537} + - 114: {fileID: 1202766536} + m_Layer: 5 + m_Name: Drop Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1202766535 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1202766534} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1962913256} + - {fileID: 1191464791} + m_Father: {fileID: 1211125516} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 256, y: 138} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1202766536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1202766534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1202766537 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1202766534} +--- !u!1 &1211125515 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1211125516} + - 222: {fileID: 1211125518} + - 114: {fileID: 1211125517} + m_Layer: 5 + m_Name: Panel 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1211125516 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211125515} + m_LocalRotation: {x: 0, y: 0.3826835, z: 0, w: 0.9238795} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} + m_Children: + - {fileID: 1202766535} + m_Father: {fileID: 2132677155} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 160, y: -100} + m_SizeDelta: {x: 350, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1211125517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211125515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1211125518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211125515} +--- !u!1 &1211580957 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1211580958} + - 222: {fileID: 1211580960} + - 114: {fileID: 1211580959} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1211580958 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211580957} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 531} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1759500453} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1.7} + m_SizeDelta: {x: 68.7, y: 100.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1211580959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211580957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 7 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drop Area 4 +--- !u!222 &1211580960 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1211580957} +--- !u!1 &1225118290 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1225118291} + - 222: {fileID: 1225118293} + - 114: {fileID: 1225118292} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1225118291 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1225118290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1687103319} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1.7} + m_SizeDelta: {x: 68.7, y: 100.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1225118292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1225118290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 7 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drop Area 3 +--- !u!222 &1225118293 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1225118290} +--- !u!1 &1445634008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1445634009} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1445634009 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1445634008} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.82, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1107098159} + - {fileID: 2023949050} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &1555181790 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1555181791} + - 222: {fileID: 1555181793} + - 114: {fileID: 1555181792} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1555181791 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555181790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1741631458} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 256, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1555181792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555181790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 3 + m_MaxSize: 72 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drag From Here +--- !u!222 &1555181793 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555181790} +--- !u!1 &1584680477 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1584680478} + - 222: {fileID: 1584680481} + - 114: {fileID: 1584680480} + - 114: {fileID: 1584680479} + m_Layer: 5 + m_Name: Drag Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1584680478 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1584680477} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 629343717} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1584680479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1584680477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 385dea1d22ea0974ab003b814c424e74, type: 3} + m_Name: + m_EditorClassIdentifier: + dragOnSurfaces: 1 +--- !u!114 &1584680480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1584680477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 321907ea57315784d917227c1bec08c8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1584680481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1584680477} +--- !u!1 &1656255959 stripped +GameObject: + m_PrefabParentObject: {fileID: 116882, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 1690401894} +--- !u!114 &1656255965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1656255959} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -768656878, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EventMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &1687103318 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1687103319} + - 222: {fileID: 1687103320} + m_Layer: 5 + m_Name: Panel 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1687103319 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1687103318} + m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: -254.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} + m_Children: + - {fileID: 1225118291} + m_Father: {fileID: 2132677155} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -273.1, y: -125} + m_SizeDelta: {x: 350, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1687103320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1687103318} +--- !u!1001 &1690401894 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1445634009} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1708492753 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1708492754} + - 222: {fileID: 1708492756} + - 114: {fileID: 1708492755} + m_Layer: 5 + m_Name: Drop Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1708492754 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1708492753} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 607311716} + - {fileID: 766236581} + m_Father: {fileID: 802673784} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 256, y: 138} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1708492755 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1708492753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1708492756 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1708492753} +--- !u!1 &1741631457 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1741631458} + - 222: {fileID: 1741631460} + - 114: {fileID: 1741631459} + m_Layer: 5 + m_Name: Panel Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1741631458 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741631457} + m_LocalRotation: {x: -0.25881907, y: 0, z: 0, w: 0.9659258} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: -30, y: 0, z: 0} + m_Children: + - {fileID: 629343717} + - {fileID: 2075622099} + - {fileID: 665552108} + - {fileID: 1555181791} + m_Father: {fileID: 2132677155} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 140} + m_SizeDelta: {x: 400, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1741631459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741631457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1741631460 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741631457} +--- !u!1 &1759500452 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1759500453} + - 222: {fileID: 1759500454} + m_Layer: 5 + m_Name: Panel 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1759500453 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1759500452} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: -254.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: + - {fileID: 1211580958} + m_Father: {fileID: 2132677155} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -273.10025, y: -124.99999} + m_SizeDelta: {x: 350, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1759500454 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1759500452} +--- !u!1 &1854504420 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1854504421} + - 222: {fileID: 1854504424} + - 114: {fileID: 1854504423} + - 114: {fileID: 1854504422} + m_Layer: 5 + m_Name: Drag Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1854504421 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854504420} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 665552108} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1854504422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854504420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 385dea1d22ea0974ab003b814c424e74, type: 3} + m_Name: + m_EditorClassIdentifier: + dragOnSurfaces: 1 +--- !u!114 &1854504423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854504420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 2caa46ba9fdd6eb4ca30fd8259df839a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1854504424 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854504420} +--- !u!1 &1962913255 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1962913256} + - 222: {fileID: 1962913258} + - 114: {fileID: 1962913257} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962913256 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962913255} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1202766535} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 25} + m_SizeDelta: {x: 256, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962913257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962913255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drop Area 2 +--- !u!222 &1962913258 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962913255} +--- !u!1001 &2023949049 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1445634009} + m_Modifications: + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 152968, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_Name + value: VivePointers + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &2023949050 stripped +Transform: + m_PrefabParentObject: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 2023949049} +--- !u!1 &2075622098 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2075622099} + - 222: {fileID: 2075622101} + - 114: {fileID: 2075622100} + m_Layer: 5 + m_Name: Drag Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2075622099 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2075622098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 911120390} + m_Father: {fileID: 1741631458} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 88, y: 88} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2075622100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2075622098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2075622101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2075622098} +--- !u!1 &2132677153 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2132677155} + - 223: {fileID: 2132677154} + - 114: {fileID: 2132677156} + - 114: {fileID: 2132677157} + - 114: {fileID: 2132677158} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &2132677154 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2132677153} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2132677155 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2132677153} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1741631458} + - {fileID: 802673784} + - {fileID: 1211125516} + - {fileID: 1687103319} + - {fileID: 1759500453} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 1000, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2132677156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2132677153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!114 &2132677157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2132677153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2132677158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2132677153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 6 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..260fe64993ea0de111828f4e21743b17039f8c6d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/2DDragDrop.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d7dd75b69ca62047b4dc731bed6f99c +timeCreated: 1465213689 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..374cc59ce1db985caba5d57660382217ac462e91 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5c8f3fd4546ce714189d1edd8e4d8075 +folderAsset: yes +timeCreated: 1458294420 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs new file mode 100644 index 0000000000000000000000000000000000000000..2e5c9c40bfc9212a810b184edb183c3729a1f122 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs @@ -0,0 +1,95 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +[RequireComponent(typeof(Image))] +public class DragImage : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler +{ + public bool dragOnSurfaces = true; + + private Dictionary<int, GameObject> m_DraggingIcons = new Dictionary<int, GameObject>(); + private Dictionary<int, RectTransform> m_DraggingPlanes = new Dictionary<int, RectTransform>(); + + public void OnBeginDrag(PointerEventData eventData) + { + var canvas = transform.parent == null ? null : transform.parent.GetComponentInParent<Canvas>(); + if (canvas == null) { return; } + + // We have clicked something that can be dragged. + // What we want to do is create an icon for this. + var draggingIcon = new GameObject("icon"); + m_DraggingIcons[eventData.pointerId] = draggingIcon; + + draggingIcon.transform.SetParent(canvas.transform, false); + draggingIcon.transform.SetAsLastSibling(); + + var draggingImage = draggingIcon.AddComponent<Image>(); + // The icon will be under the cursor. + // We want it to be ignored by the event system. + var draggingGroup = draggingIcon.AddComponent<CanvasGroup>(); + draggingGroup.blocksRaycasts = false; + draggingImage.sprite = GetComponent<Image>().sprite; + + var rectTransform = GetComponent<RectTransform>(); + draggingImage.SetNativeSize(); + draggingImage.rectTransform.sizeDelta = rectTransform.rect.size; + + m_DraggingPlanes[eventData.pointerId] = canvas.GetComponent<RectTransform>(); + + SetDraggedPosition(eventData); + } + + public void OnDrag(PointerEventData eventData) + { + if (m_DraggingIcons.ContainsKey(eventData.pointerId)) + { + SetDraggedPosition(eventData); + } + } + + private void SetDraggedPosition(PointerEventData eventData) + { + GameObject draggingIcon; + if (!m_DraggingIcons.TryGetValue(eventData.pointerId, out draggingIcon)) { return; } + + var rectTransform = draggingIcon.GetComponent<RectTransform>(); + var raycastResult = eventData.pointerCurrentRaycast; + if (dragOnSurfaces && raycastResult.isValid && raycastResult.worldNormal.sqrMagnitude >= 0.0000001f) + { + // When raycast hit something, place the dragged image at the hit position + // Notice that if raycast performed by GraphicRaycaster module, worldNormal is not assigned (see GraphicRaycaster for more detail) + rectTransform.position = raycastResult.worldPosition + raycastResult.worldNormal * 0.01f; // add a little distance to avoid z-fighting + rectTransform.rotation = Quaternion.LookRotation(raycastResult.worldNormal, raycastResult.gameObject.transform.up); + } + else + { + RectTransform plane; + if (dragOnSurfaces && eventData.pointerEnter != null && eventData.pointerEnter.transform is RectTransform) + { + plane = eventData.pointerEnter.transform as RectTransform; + } + else + { + plane = m_DraggingPlanes[eventData.pointerId]; + } + + Vector3 globalMousePos; + if (RectTransformUtility.ScreenPointToWorldPointInRectangle(plane, eventData.position, eventData.pressEventCamera, out globalMousePos)) + { + rectTransform.position = globalMousePos; + rectTransform.rotation = plane.rotation; + } + } + } + + public void OnEndDrag(PointerEventData eventData) + { + if (m_DraggingIcons[eventData.pointerId] != null) + { + Destroy(m_DraggingIcons[eventData.pointerId]); + } + + m_DraggingIcons[eventData.pointerId] = null; + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c7ec30ba57fa728eca74903075534cc6a65ef347 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DragImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 385dea1d22ea0974ab003b814c424e74 +timeCreated: 1465983577 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs new file mode 100644 index 0000000000000000000000000000000000000000..1fc7015495a3f45fb76a13b74c2c24eba46fc23c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs @@ -0,0 +1,64 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +public class DropImage : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler +{ + public Image containerImage; + public Image receivingImage; + private Color normalColor; + public Color highlightColor = Color.yellow; + + public void OnEnable() + { + if (containerImage != null) + normalColor = containerImage.color; + } + + public void OnDrop(PointerEventData data) + { + containerImage.color = normalColor; + + if (receivingImage == null) + return; + + Sprite dropSprite = GetDropSprite(data); + if (dropSprite != null) + receivingImage.overrideSprite = dropSprite; + } + + public void OnPointerEnter(PointerEventData data) + { + if (containerImage == null) + return; + + Sprite dropSprite = GetDropSprite(data); + if (dropSprite != null) + containerImage.color = highlightColor; + } + + public void OnPointerExit(PointerEventData data) + { + if (containerImage == null) + return; + + containerImage.color = normalColor; + } + + private Sprite GetDropSprite(PointerEventData data) + { + var originalObj = data.pointerDrag; + if (originalObj == null) + return null; + + var dragMe = originalObj.GetComponent<DragImage>(); + if (dragMe == null) + return null; + + var srcImage = originalObj.GetComponent<Image>(); + if (srcImage == null) + return null; + + return srcImage.sprite; + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..53be60fa3713510a3c416159f580a53f435ac5cf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4f257d69a05becf47965723a292df31f +timeCreated: 1465983587 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f98e70674495c47b77dcd4f6e94edd0d016deb1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs @@ -0,0 +1,80 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +public class DropObject : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler +{ + public MeshRenderer receivingRenderer; + public Color highlightColor = Color.yellow; + + private Material rendererMat; + private Color normalColor; + private Texture droppedTexture; + +#if UNITY_EDITOR + private void Reset() + { + receivingRenderer = GetComponentInChildren<MeshRenderer>(); + } +#endif + + public void OnEnable() + { + if (receivingRenderer != null) + { + rendererMat = receivingRenderer.material; + normalColor = rendererMat.color; + receivingRenderer.sharedMaterial = rendererMat; + } + } + + public void OnDrop(PointerEventData data) + { + if (rendererMat != null) + { + rendererMat.color = normalColor; + + var dropSprite = GetDropSprite(data); + if (dropSprite != null) + { + rendererMat.mainTexture = droppedTexture = dropSprite.texture; + } + } + } + + public void OnPointerEnter(PointerEventData data) + { + if (rendererMat != null) + { + var dropSprite = GetDropSprite(data); + if (dropSprite != null) + { + rendererMat.color = highlightColor; + rendererMat.mainTexture = null; + } + } + } + + public void OnPointerExit(PointerEventData data) + { + if (rendererMat != null) + { + rendererMat.color = normalColor; + rendererMat.mainTexture = droppedTexture; + } + } + + private Sprite GetDropSprite(PointerEventData data) + { + var originalObj = data.pointerDrag; + if (originalObj == null) { return null; } + + var dragMe = originalObj.GetComponent<DragImage>(); + if (dragMe == null) { return null; } + + var srcImage = originalObj.GetComponent<Image>(); + if (srcImage == null) { return null; } + + return srcImage.sprite; + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..13d8451baca85ebe7dd56dc28d6b0c94d724699d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Scripts/DropObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 57b3603583a38f74aaa1747e70bc984d +timeCreated: 1535972185 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites.meta new file mode 100644 index 0000000000000000000000000000000000000000..8bacbcef437a2bc392b12223d95f1b6c5fbc3aca --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9ee682cae7b98ba4a8c5d19bb3a34c3d +folderAsset: yes +timeCreated: 1465213763 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png new file mode 100644 index 0000000000000000000000000000000000000000..921aaaf25435df1e8e41ef35e0088d0625e8ca37 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72603d3caa659188016e98b53522c598c198777ca7c7811f6b01cc974a06c75a +size 17706 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..4bd5e6dd0c321592de0262d03be811d624dd09a9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Orange.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 321907ea57315784d917227c1bec08c8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png new file mode 100644 index 0000000000000000000000000000000000000000..02396d101a5eeae509da38641e9e45ade309b2e3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:602fbf9eaadc84b0a00df2febc26fcb553cb3d19cc1cb171b27c5ffe5a83ecf1 +size 17709 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..058cd66335518d13ded898b064cefdc5c8e80f45 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Turquoise.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 66c4580cae2903646861a62234f82b09 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..1780ea9c3cb08734af1d01cf732d8732ba683e0a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66e38bb508936d693d08ebfc4ab6f4ee95ad7071992404b79679e9bb6e1f6b16 +size 17256 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..6de853061530179c2759afeecd19dcc07ec6ccca --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/2.2DDragDrop/Sprites/Yellow.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 2caa46ba9fdd6eb4ca30fd8259df839a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag.meta new file mode 100644 index 0000000000000000000000000000000000000000..4afb276f4cc5ce7c10ffa2ad87b489c11d6161a9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e2cdcf65508ee3b4d8030a2f14365c5b +folderAsset: yes +timeCreated: 1465212349 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity new file mode 100644 index 0000000000000000000000000000000000000000..92952e0727fc226217845c96c2099d96fbe77861 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity @@ -0,0 +1,5449 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &6245082 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 6245083} + - 33: {fileID: 6245086} + - 65: {fileID: 6245085} + - 23: {fileID: 6245084} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &6245083 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6245082} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 3.15, z: 0} + m_LocalScale: {x: 6.4, y: 0.1, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 0 +--- !u!23 &6245084 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6245082} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &6245085 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6245082} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &6245086 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6245082} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &9280692 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 9280693} + m_Layer: 0 + m_Name: TargetBoard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9280693 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 9280692} + m_LocalRotation: {x: 0, y: -0.27622595, z: 0, w: 0.9610927} + m_LocalPosition: {x: -2.26, y: -0.57, z: 2.18} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_LocalEulerAnglesHint: {x: 0, y: -32.070198, z: 0} + m_Children: + - {fileID: 2107510045} + - {fileID: 415449849} + - {fileID: 372379103} + - {fileID: 1529438512} + - {fileID: 1051878047} + - {fileID: 1668133443} + - {fileID: 287017398} + - {fileID: 300847646} + - {fileID: 1958029040} + - {fileID: 162489722} + m_Father: {fileID: 282992678} + m_RootOrder: 3 +--- !u!1 &18181915 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 18181916} + - 54: {fileID: 18181918} + - 114: {fileID: 18181917} + m_Layer: 0 + m_Name: Triangle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &18181916 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 18181915} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 667257266} + - {fileID: 272270468} + - {fileID: 138126342} + - {fileID: 131343431} + - {fileID: 225925107} + - {fileID: 1603854378} + m_Father: {fileID: 894874730} + m_RootOrder: 2 +--- !u!114 &18181917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 18181915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.5 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &18181918 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 18181915} + serializedVersion: 2 + m_Mass: 2 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &69293459 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 69293460} + m_Layer: 1 + m_Name: Walls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &69293460 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 69293459} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 191745372} + - {fileID: 974877058} + - {fileID: 370755800} + - {fileID: 777270000} + - {fileID: 861951206} + - {fileID: 1015158145} + m_Father: {fileID: 282992678} + m_RootOrder: 1 +--- !u!1 &79717526 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 79717527} + - 33: {fileID: 79717530} + - 65: {fileID: 79717529} + - 23: {fileID: 79717528} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &79717527 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 79717526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.05, z: 0} + m_LocalScale: {x: 6.4, y: 0.1, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 1 +--- !u!23 &79717528 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 79717526} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &79717529 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 79717526} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &79717530 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 79717526} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &131343430 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 131343431} + - 33: {fileID: 131343434} + - 136: {fileID: 131343433} + - 23: {fileID: 131343432} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &131343431 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 131343430} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071067} + m_LocalPosition: {x: 0, y: -0.2886751, z: 0} + m_LocalScale: {x: 0.24, y: 0.5, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 3 +--- !u!23 &131343432 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 131343430} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &131343433 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 131343430} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &131343434 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 131343430} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &133082343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 133082344} + - 33: {fileID: 133082349} + - 136: {fileID: 133082348} + - 23: {fileID: 133082347} + - 54: {fileID: 133082346} + - 114: {fileID: 133082345} + m_Layer: 0 + m_Name: Capsule (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &133082344 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.6, y: 0, z: 0.6} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 9 +--- !u!114 &133082345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &133082346 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &133082347 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &133082348 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &133082349 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 133082343} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &138126341 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 138126342} + - 33: {fileID: 138126345} + - 135: {fileID: 138126344} + - 23: {fileID: 138126343} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &138126342 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 138126341} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.57735026, z: 0} + m_LocalScale: {x: 0.24, y: 0.24, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 2 +--- !u!23 &138126343 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 138126341} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &138126344 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 138126341} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &138126345 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 138126341} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &162489721 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 162489722} + - 33: {fileID: 162489727} + - 65: {fileID: 162489726} + - 23: {fileID: 162489725} + - 54: {fileID: 162489724} + - 114: {fileID: 162489723} + m_Layer: 0 + m_Name: Board 1 (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &162489722 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.1, y: -2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 9 +--- !u!114 &162489723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &162489724 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &162489725 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &162489726 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &162489727 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 162489721} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &191745371 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 191745372} + - 33: {fileID: 191745374} + - 65: {fileID: 191745373} + m_Layer: 1 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &191745372 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 191745371} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 4} + m_LocalScale: {x: 8, y: 8, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 0 +--- !u!65 &191745373 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 191745371} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &191745374 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 191745371} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &225925106 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 225925107} + - 33: {fileID: 225925110} + - 136: {fileID: 225925109} + - 23: {fileID: 225925108} + m_Layer: 0 + m_Name: Cylinder (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &225925107 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 225925106} + m_LocalRotation: {x: 0, y: 0, z: -0.25881907, w: 0.9659258} + m_LocalPosition: {x: -0.25, y: 0.1443376, z: 0} + m_LocalScale: {x: 0.23999998, y: 0.49999997, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -30} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 4 +--- !u!23 &225925108 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 225925106} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &225925109 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 225925106} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &225925110 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 225925106} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &272270467 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 272270468} + - 33: {fileID: 272270471} + - 135: {fileID: 272270470} + - 23: {fileID: 272270469} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &272270468 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 272270467} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.28867513, z: 0} + m_LocalScale: {x: 0.24, y: 0.24, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 1 +--- !u!23 &272270469 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 272270467} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &272270470 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 272270467} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &272270471 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 272270467} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &276918308 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 276918309} + - 54: {fileID: 276918311} + - 114: {fileID: 276918310} + m_Layer: 0 + m_Name: Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &276918309 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 276918308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1415313585} + m_Father: {fileID: 894874730} + m_RootOrder: 1 +--- !u!114 &276918310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 276918308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.5 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &276918311 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 276918308} + serializedVersion: 2 + m_Mass: 2 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &282992676 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 282992678} + - 114: {fileID: 282992677} + m_Layer: 0 + m_Name: PlayGround + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &282992677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 282992676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b5e11ea8e364f847958ae185ddf06fa, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &282992678 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 282992676} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1487075889} + - {fileID: 69293460} + - {fileID: 774032121} + - {fileID: 9280693} + - {fileID: 894874730} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &287017397 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 287017398} + - 33: {fileID: 287017403} + - 65: {fileID: 287017402} + - 23: {fileID: 287017401} + - 54: {fileID: 287017400} + - 114: {fileID: 287017399} + m_Layer: 0 + m_Name: Board 1 (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &287017398 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.1, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 6 +--- !u!114 &287017399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &287017400 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &287017401 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &287017402 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &287017403 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 287017397} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &296999902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 296999903} + - 33: {fileID: 296999908} + - 136: {fileID: 296999907} + - 23: {fileID: 296999906} + - 54: {fileID: 296999905} + - 114: {fileID: 296999904} + m_Layer: 0 + m_Name: Capsule (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &296999903 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.2, y: 0, z: 0.2} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 1 +--- !u!114 &296999904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &296999905 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &296999906 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &296999907 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &296999908 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 296999902} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &300847645 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 300847646} + - 33: {fileID: 300847651} + - 65: {fileID: 300847650} + - 23: {fileID: 300847649} + - 54: {fileID: 300847648} + - 114: {fileID: 300847647} + m_Layer: 0 + m_Name: Board 1 (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &300847646 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.1, y: -2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 7 +--- !u!114 &300847647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &300847648 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &300847649 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &300847650 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &300847651 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300847645} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &370755799 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 370755800} + - 33: {fileID: 370755802} + - 65: {fileID: 370755801} + m_Layer: 1 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &370755800 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 370755799} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4, y: 0, z: 0} + m_LocalScale: {x: 1, y: 8, z: 8} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 2 +--- !u!65 &370755801 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 370755799} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &370755802 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 370755799} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &372379102 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 372379103} + - 33: {fileID: 372379108} + - 65: {fileID: 372379107} + - 23: {fileID: 372379106} + - 54: {fileID: 372379105} + - 114: {fileID: 372379104} + m_Layer: 0 + m_Name: Board 1 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &372379103 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 2 +--- !u!114 &372379104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &372379105 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &372379106 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &372379107 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &372379108 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 372379102} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &415449848 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 415449849} + - 33: {fileID: 415449854} + - 65: {fileID: 415449853} + - 23: {fileID: 415449852} + - 54: {fileID: 415449851} + - 114: {fileID: 415449850} + m_Layer: 0 + m_Name: Board 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415449849 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.1, y: 2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 1 +--- !u!114 &415449850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &415449851 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &415449852 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &415449853 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &415449854 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 415449848} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &453176196 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 453176197} + - 33: {fileID: 453176200} + - 65: {fileID: 453176199} + - 23: {fileID: 453176198} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &453176197 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453176196} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.38, z: 0} + m_LocalScale: {x: 1, y: 0.24, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 765007089} + m_RootOrder: 3 +--- !u!23 &453176198 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453176196} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &453176199 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453176196} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &453176200 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453176196} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &476213644 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 476213645} + - 33: {fileID: 476213650} + - 136: {fileID: 476213649} + - 23: {fileID: 476213648} + - 54: {fileID: 476213647} + - 114: {fileID: 476213646} + m_Layer: 0 + m_Name: Capsule (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &476213645 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.6, y: 0, z: 0.6} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 6 +--- !u!114 &476213646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &476213647 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &476213648 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &476213649 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &476213650 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 476213644} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &482715997 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482715998} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &482715998 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 482715997} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 496038504} + - {fileID: 1286755024} + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!4 &496038504 stripped +Transform: + m_PrefabParentObject: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 2140222794} +--- !u!1001 &541220765 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 482715998} + m_Modifications: + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 152968, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_Name + value: VivePointers + objectReference: {fileID: 0} + - target: {fileID: 11491370, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: dragThreshold + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11493680, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: dragThreshold + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &558597526 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 558597527} + - 33: {fileID: 558597530} + - 65: {fileID: 558597529} + - 23: {fileID: 558597528} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &558597527 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558597526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.38, y: 0, z: 0} + m_LocalScale: {x: 0.24, y: 1, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 765007089} + m_RootOrder: 0 +--- !u!23 &558597528 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558597526} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &558597529 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558597526} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &558597530 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558597526} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &561294833 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 561294834} + - 33: {fileID: 561294837} + - 65: {fileID: 561294836} + - 23: {fileID: 561294835} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &561294834 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 561294833} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.15, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 6.4, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 4 +--- !u!23 &561294835 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 561294833} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &561294836 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 561294833} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &561294837 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 561294833} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &589492207 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 589492208} + - 33: {fileID: 589492211} + - 65: {fileID: 589492210} + - 23: {fileID: 589492209} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &589492208 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 589492207} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.05, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 6.4, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 5 +--- !u!23 &589492209 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 589492207} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &589492210 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 589492207} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &589492211 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 589492207} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &628644451 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 628644452} + - 33: {fileID: 628644455} + - 65: {fileID: 628644454} + - 23: {fileID: 628644453} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &628644452 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 628644451} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.05, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 6.4, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 6 +--- !u!23 &628644453 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 628644451} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &628644454 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 628644451} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &628644455 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 628644451} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &667257265 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 667257266} + - 33: {fileID: 667257269} + - 135: {fileID: 667257268} + - 23: {fileID: 667257267} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &667257266 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 667257265} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: -0.2886751, z: 0} + m_LocalScale: {x: 0.24, y: 0.24, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 0 +--- !u!23 &667257267 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 667257265} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &667257268 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 667257265} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &667257269 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 667257265} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &691599537 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 691599538} + - 222: {fileID: 691599540} + - 114: {fileID: 691599539} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &691599538 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 691599537} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1313547837} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &691599539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 691599537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Reset +--- !u!222 &691599540 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 691599537} +--- !u!1 &765007088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 765007089} + - 54: {fileID: 765007091} + - 114: {fileID: 765007090} + m_Layer: 0 + m_Name: Square + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &765007089 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 765007088} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 558597527} + - {fileID: 986759865} + - {fileID: 835002953} + - {fileID: 453176197} + m_Father: {fileID: 894874730} + m_RootOrder: 0 +--- !u!114 &765007090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 765007088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.5 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &765007091 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 765007088} + serializedVersion: 2 + m_Mass: 2 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &774032120 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 774032121} + m_Layer: 0 + m_Name: BallingPins + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &774032121 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 774032120} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.934, z: 2.156} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1017389504} + - {fileID: 296999903} + - {fileID: 888457429} + - {fileID: 999632956} + - {fileID: 2062215702} + - {fileID: 1847164788} + - {fileID: 476213645} + - {fileID: 1885747977} + - {fileID: 2099064667} + - {fileID: 133082344} + m_Father: {fileID: 282992678} + m_RootOrder: 2 +--- !u!1 &777269999 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 777270000} + - 33: {fileID: 777270002} + - 65: {fileID: 777270001} + m_Layer: 1 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &777270000 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 777269999} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4, y: 0, z: 0} + m_LocalScale: {x: 1, y: 8, z: 8} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 3 +--- !u!65 &777270001 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 777269999} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &777270002 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 777269999} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &808036587 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 808036588} + - 33: {fileID: 808036591} + - 65: {fileID: 808036590} + - 23: {fileID: 808036589} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &808036588 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 808036587} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.05, z: 0} + m_LocalScale: {x: 6.4, y: 0.1, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 2 +--- !u!23 &808036589 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 808036587} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &808036590 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 808036587} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &808036591 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 808036587} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &817316817 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 817316818} + - 33: {fileID: 817316821} + - 65: {fileID: 817316820} + - 23: {fileID: 817316819} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &817316818 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 817316817} + m_LocalRotation: {x: 0, y: 0, z: 0.38268346, w: 0.9238795} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.24, y: 1.2, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45} + m_Children: [] + m_Father: {fileID: 1042692298} + m_RootOrder: 0 +--- !u!23 &817316819 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 817316817} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &817316820 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 817316817} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &817316821 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 817316817} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &835002952 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 835002953} + - 33: {fileID: 835002956} + - 65: {fileID: 835002955} + - 23: {fileID: 835002954} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &835002953 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835002952} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.38, z: 0} + m_LocalScale: {x: 1, y: 0.24, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 765007089} + m_RootOrder: 2 +--- !u!23 &835002954 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835002952} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &835002955 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835002952} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &835002956 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835002952} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &861951205 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 861951206} + - 33: {fileID: 861951208} + - 65: {fileID: 861951207} + m_Layer: 1 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &861951206 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 861951205} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 4, z: 0} + m_LocalScale: {x: 8, y: 1, z: 8} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 4 +--- !u!65 &861951207 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 861951205} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &861951208 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 861951205} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &888457428 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 888457429} + - 33: {fileID: 888457434} + - 136: {fileID: 888457433} + - 23: {fileID: 888457432} + - 54: {fileID: 888457431} + - 114: {fileID: 888457430} + m_Layer: 0 + m_Name: Capsule (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &888457429 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.2, y: 0, z: 0.2} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 2 +--- !u!114 &888457430 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &888457431 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &888457432 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &888457433 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &888457434 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 888457428} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &894874729 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 894874730} + m_Layer: 0 + m_Name: Shapes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &894874730 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 894874729} + m_LocalRotation: {x: 0, y: 0.38268346, z: 0, w: 0.9238795} + m_LocalPosition: {x: 2.67, y: -0.62, z: 2.89} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} + m_Children: + - {fileID: 765007089} + - {fileID: 276918309} + - {fileID: 18181916} + - {fileID: 1042692298} + m_Father: {fileID: 282992678} + m_RootOrder: 4 +--- !u!1 &902325740 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 902325741} + - 33: {fileID: 902325744} + - 65: {fileID: 902325743} + - 23: {fileID: 902325742} + m_Layer: 0 + m_Name: Cube (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &902325741 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902325740} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.15, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 6.4, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 7 +--- !u!23 &902325742 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902325740} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &902325743 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902325740} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &902325744 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902325740} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &970199004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 970199006} + - 223: {fileID: 970199005} + - 114: {fileID: 970199007} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &970199005 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970199004} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &970199006 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970199004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1547049641} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 3} + m_SizeDelta: {x: 500, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &970199007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970199004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!1 &974877057 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 974877058} + - 33: {fileID: 974877060} + - 65: {fileID: 974877059} + m_Layer: 1 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &974877058 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 974877057} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -4} + m_LocalScale: {x: 8, y: 8, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 1 +--- !u!65 &974877059 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 974877057} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &974877060 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 974877057} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &986759864 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 986759865} + - 33: {fileID: 986759868} + - 65: {fileID: 986759867} + - 23: {fileID: 986759866} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &986759865 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 986759864} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.38, y: 0, z: 0} + m_LocalScale: {x: 0.24, y: 1, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 765007089} + m_RootOrder: 1 +--- !u!23 &986759866 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 986759864} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &986759867 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 986759864} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &986759868 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 986759864} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &999632955 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 999632956} + - 33: {fileID: 999632961} + - 136: {fileID: 999632960} + - 23: {fileID: 999632959} + - 54: {fileID: 999632958} + - 114: {fileID: 999632957} + m_Layer: 0 + m_Name: Capsule (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &999632956 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.4, y: 0, z: 0.4} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 3 +--- !u!114 &999632957 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &999632958 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &999632959 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &999632960 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &999632961 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 999632955} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1015158144 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1015158145} + - 33: {fileID: 1015158147} + - 65: {fileID: 1015158146} + m_Layer: 1 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1015158145 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1015158144} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalScale: {x: 8, y: 1, z: 8} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 69293460} + m_RootOrder: 5 +--- !u!65 &1015158146 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1015158144} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1015158147 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1015158144} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1017389503 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1017389504} + - 33: {fileID: 1017389509} + - 136: {fileID: 1017389508} + - 23: {fileID: 1017389507} + - 54: {fileID: 1017389506} + - 114: {fileID: 1017389505} + m_Layer: 0 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1017389504 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 0 +--- !u!114 &1017389505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1017389506 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1017389507 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1017389508 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1017389509 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1017389503} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1042692297 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1042692298} + - 54: {fileID: 1042692300} + - 114: {fileID: 1042692299} + m_Layer: 0 + m_Name: Cross + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1042692298 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042692297} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 817316818} + - {fileID: 1416677802} + m_Father: {fileID: 894874730} + m_RootOrder: 3 +--- !u!114 &1042692299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042692297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.5 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1042692300 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042692297} + serializedVersion: 2 + m_Mass: 2 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &1051878046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1051878047} + - 33: {fileID: 1051878052} + - 65: {fileID: 1051878051} + - 23: {fileID: 1051878050} + - 54: {fileID: 1051878049} + - 114: {fileID: 1051878048} + m_Layer: 0 + m_Name: Board 1 (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1051878047 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.1, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 4 +--- !u!114 &1051878048 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1051878049 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1051878050 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1051878051 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1051878052 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1051878046} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1286755024 stripped +Transform: + m_PrefabParentObject: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 541220765} +--- !u!1 &1313547836 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1313547837} + - 222: {fileID: 1313547840} + - 114: {fileID: 1313547839} + - 114: {fileID: 1313547838} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1313547837 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1313547836} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 691599538} + m_Father: {fileID: 1547049641} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -70} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1313547838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1313547836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1313547839} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 282992677} + m_MethodName: ResetPositions + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1313547839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1313547836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1313547840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1313547836} +--- !u!1 &1387610480 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1387610482} + - 108: {fileID: 1387610481} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1387610481 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1387610480} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1387610482 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1387610480} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1415313584 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: e54ecba36ad1e774b907a9ddf42d215a, type: 3} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1415313585} + - 33: {fileID: 1415313588} + - 23: {fileID: 1415313587} + - 64: {fileID: 1415313586} + m_Layer: 0 + m_Name: ring + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1415313585 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: e54ecba36ad1e774b907a9ddf42d215a, type: 3} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1415313584} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalEulerAnglesHint: {x: 89.980194, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 276918309} + m_RootOrder: 0 +--- !u!64 &1415313586 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1415313584} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_Mesh: {fileID: 4300000, guid: e54ecba36ad1e774b907a9ddf42d215a, type: 3} +--- !u!23 &1415313587 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2300000, guid: e54ecba36ad1e774b907a9ddf42d215a, + type: 3} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1415313584} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1415313588 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3300000, guid: e54ecba36ad1e774b907a9ddf42d215a, + type: 3} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1415313584} + m_Mesh: {fileID: 4300000, guid: e54ecba36ad1e774b907a9ddf42d215a, type: 3} +--- !u!1 &1416677801 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1416677802} + - 33: {fileID: 1416677805} + - 65: {fileID: 1416677804} + - 23: {fileID: 1416677803} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1416677802 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416677801} + m_LocalRotation: {x: 0, y: 0, z: -0.38268346, w: 0.9238795} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.23999998, y: 1.2, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -45} + m_Children: [] + m_Father: {fileID: 1042692298} + m_RootOrder: 1 +--- !u!23 &1416677803 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416677801} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1416677804 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416677801} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1416677805 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416677801} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1474644790 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1474644791} + - 33: {fileID: 1474644794} + - 65: {fileID: 1474644793} + - 23: {fileID: 1474644792} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1474644791 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474644790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -3.15, z: 0} + m_LocalScale: {x: 6.4, y: 0.1, z: 0.1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2107510045} + m_RootOrder: 3 +--- !u!23 &1474644792 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474644790} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 16e58087e8cae74458175a04c1e2f587, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1474644793 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474644790} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1474644794 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474644790} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1487075888 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1487075889} + - 33: {fileID: 1487075894} + - 135: {fileID: 1487075893} + - 23: {fileID: 1487075892} + - 54: {fileID: 1487075891} + - 114: {fileID: 1487075890} + m_Layer: 0 + m_Name: Ball + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1487075889 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.33, z: 1.376} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 282992678} + m_RootOrder: 0 +--- !u!114 &1487075890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1487075891 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + serializedVersion: 2 + m_Mass: 3 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1487075892 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1487075893 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1487075894 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487075888} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1529438511 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1529438512} + - 33: {fileID: 1529438517} + - 65: {fileID: 1529438516} + - 23: {fileID: 1529438515} + - 54: {fileID: 1529438514} + - 114: {fileID: 1529438513} + m_Layer: 0 + m_Name: Board 1 (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1529438512 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.1, y: 2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 3 +--- !u!114 &1529438513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1529438514 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1529438515 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1529438516 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1529438517 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1529438511} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1547049640 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1547049641} + - 222: {fileID: 1547049643} + - 114: {fileID: 1547049642} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1547049641 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547049640} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1313547837} + - {fileID: 1613371910} + m_Father: {fileID: 970199006} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 58.9} + m_SizeDelta: {x: 400, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1547049642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547049640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1547049643 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1547049640} +--- !u!1 &1603854377 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1603854378} + - 33: {fileID: 1603854381} + - 136: {fileID: 1603854380} + - 23: {fileID: 1603854379} + m_Layer: 0 + m_Name: Cylinder (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1603854378 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1603854377} + m_LocalRotation: {x: 0, y: 0, z: 0.25881907, w: 0.9659258} + m_LocalPosition: {x: 0.25, y: 0.1443376, z: 0} + m_LocalScale: {x: 0.23999996, y: 0.49999994, z: 0.24} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 30} + m_Children: [] + m_Father: {fileID: 18181916} + m_RootOrder: 5 +--- !u!23 &1603854379 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1603854377} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1603854380 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1603854377} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1603854381 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1603854377} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1613371909 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1613371910} + - 222: {fileID: 1613371912} + - 114: {fileID: 1613371911} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1613371910 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1613371909} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1547049641} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 336.4, y: 115.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1613371911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1613371909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Hold Trigger/Grip + + to grab objects' +--- !u!222 &1613371912 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1613371909} +--- !u!1 &1668133442 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1668133443} + - 33: {fileID: 1668133448} + - 65: {fileID: 1668133447} + - 23: {fileID: 1668133446} + - 54: {fileID: 1668133445} + - 114: {fileID: 1668133444} + m_Layer: 0 + m_Name: Board 1 (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1668133443 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 5 +--- !u!114 &1668133444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1668133445 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1668133446 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1668133447 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1668133448 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1668133442} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1847164787 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1847164788} + - 33: {fileID: 1847164793} + - 136: {fileID: 1847164792} + - 23: {fileID: 1847164791} + - 54: {fileID: 1847164790} + - 114: {fileID: 1847164789} + m_Layer: 0 + m_Name: Capsule (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1847164788 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.4, y: 0, z: 0.4} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 5 +--- !u!114 &1847164789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1847164790 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1847164791 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1847164792 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1847164793 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1847164787} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1885747976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1885747977} + - 33: {fileID: 1885747982} + - 136: {fileID: 1885747981} + - 23: {fileID: 1885747980} + - 54: {fileID: 1885747979} + - 114: {fileID: 1885747978} + m_Layer: 0 + m_Name: Capsule (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1885747977 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.2, y: 0, z: 0.6} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 7 +--- !u!114 &1885747978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1885747979 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1885747980 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1885747981 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1885747982 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1885747976} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1958029039 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1958029040} + - 33: {fileID: 1958029045} + - 65: {fileID: 1958029044} + - 23: {fileID: 1958029043} + - 54: {fileID: 1958029042} + - 114: {fileID: 1958029041} + m_Layer: 0 + m_Name: Board 1 (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1958029040 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -2.1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 9280693} + m_RootOrder: 8 +--- !u!114 &1958029041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &1958029042 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + serializedVersion: 2 + m_Mass: 0.5 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1958029043 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1958029044 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1958029045 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1958029039} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2062215701 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2062215702} + - 33: {fileID: 2062215707} + - 136: {fileID: 2062215706} + - 23: {fileID: 2062215705} + - 54: {fileID: 2062215704} + - 114: {fileID: 2062215703} + m_Layer: 0 + m_Name: Capsule (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2062215702 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.4} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 4 +--- !u!114 &2062215703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &2062215704 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &2062215705 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &2062215706 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2062215707 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062215701} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2099064666 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2099064667} + - 33: {fileID: 2099064672} + - 136: {fileID: 2099064671} + - 23: {fileID: 2099064670} + - 54: {fileID: 2099064669} + - 114: {fileID: 2099064668} + m_Layer: 0 + m_Name: Capsule (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2099064667 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.2, y: 0, z: 0.6} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 774032121} + m_RootOrder: 8 +--- !u!114 &2099064668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4de27f8a07624fa4bb7fa09ba9bb07a9, type: 3} + m_Name: + m_EditorClassIdentifier: + initGrabDistance: 0.2 + followingDuration: 0.04 + overrideMaxAngularVelocity: 1 + afterDragged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Draggable+UnityEventDraggable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!54 &2099064669 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &2099064670 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &2099064671 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2099064672 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2099064666} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2107510044 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2107510045} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &2107510045 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2107510044} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 6245083} + - {fileID: 79717527} + - {fileID: 808036588} + - {fileID: 1474644791} + - {fileID: 561294834} + - {fileID: 589492208} + - {fileID: 628644452} + - {fileID: 902325741} + m_Father: {fileID: 9280693} + m_RootOrder: 0 +--- !u!1001 &2140222794 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 482715998} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..00b03305981e0760cd6742e3bf64aaca60b09e7e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/3DDrag.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce84185c8ba60394c84a54b4fe34af8f +timeCreated: 1465212388 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..1a6c138d4accfa558010c141e2c34f1c35d561ad --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05486a73627d5fc49a93b54fb3f463a1 +folderAsset: yes +timeCreated: 1458793004 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat new file mode 100644 index 0000000000000000000000000000000000000000..0f29a642b8f00bcb6b84d0665223f553b79fd07d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat @@ -0,0 +1,300 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: grid + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: 2000 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ReflectionTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ShoreTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _RefractionTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Fresnel + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ReflectiveColor + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Shininess + second: 200 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _EmissionScaleUI + second: 0 + data: + first: + name: _BumpAmt + second: 128 + data: + first: + name: _FresnelScale + second: 0.75 + data: + first: + name: _GerstnerIntensity + second: 1 + data: + first: + name: _WaveScale + second: 0.063 + data: + first: + name: _ReflDistort + second: 0.44 + data: + first: + name: _RefrDistort + second: 0.4 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _Color + second: {r: 0.35294116, g: 0.35294116, b: 0.35294116, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.72, g: 0.72, b: 0.72, a: 1} + data: + first: + name: _DistortParams + second: {r: 1, g: 1, b: 2, a: 1.15} + data: + first: + name: _InvFadeParemeter + second: {r: 0.15, g: 0.15, b: 0.5, a: 1} + data: + first: + name: _AnimationTiling + second: {r: 2.2, g: 2.2, b: -1.1, a: -1.1} + data: + first: + name: _AnimationDirection + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _BumpTiling + second: {r: 1, g: 1, b: -2, a: 3} + data: + first: + name: _BumpDirection + second: {r: 1, g: 1, b: -1, a: 1} + data: + first: + name: _BaseColor + second: {r: 0.54, g: 0.95, b: 0.99, a: 0.5} + data: + first: + name: _ReflectionColor + second: {r: 0.54, g: 0.95, b: 0.99, a: 0.5} + data: + first: + name: _WorldLightDir + second: {r: 0, g: 0.1, b: -0.5, a: 0} + data: + first: + name: _Foam + second: {r: 0.1, g: 0.375, b: 0, a: 0} + data: + first: + name: _GAmplitude + second: {r: 0.3, g: 0.35, b: 0.25, a: 0.25} + data: + first: + name: _GFrequency + second: {r: 1.3, g: 1.35, b: 1.25, a: 1.25} + data: + first: + name: _GSteepness + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _GSpeed + second: {r: 1.2, g: 1.375, b: 1.1, a: 1.5} + data: + first: + name: _GDirectionAB + second: {r: 0.3, g: 0.85, b: 0.85, a: 0.25} + data: + first: + name: _GDirectionCD + second: {r: 0.1, g: 0.9, b: 0.5, a: 0.5} + data: + first: + name: _RefrColor + second: {r: 0.34, g: 0.85, b: 0.92, a: 1} + data: + first: + name: WaveSpeed + second: {r: 19, g: 9, b: -16, a: -7} + data: + first: + name: _HorizonColor + second: {r: 0.172, g: 0.463, b: 0.435, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..98a5b136a990addd132613da2d7a6c625e45c893 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Materials/grid.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16e58087e8cae74458175a04c1e2f587 +timeCreated: 1458793137 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models.meta new file mode 100644 index 0000000000000000000000000000000000000000..83b0c1da4b9d89ee49f517c95b946a79033dde12 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fc86120b8ae6fca469c30a476429713d +folderAsset: yes +timeCreated: 1458794434 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..c2bcb0db4fe29ffafb4792e67109861a2e806b96 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8c68ce6f731d39442b704f8bc1f99e34 +folderAsset: yes +timeCreated: 1458801740 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat new file mode 100644 index 0000000000000000000000000000000000000000..1d67ca55e0373fa41d2d0d0ae43869ee8ba61b27 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: defaultMat + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.8, g: 0.8, b: 0.8, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..e8afecee26b2fe12758a9402409359bcbbe133be --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/Materials/defaultMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 29b14cf4189894a4eb6b66ce4c9ec156 +timeCreated: 1458801740 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/ring.obj.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/ring.obj.meta new file mode 100644 index 0000000000000000000000000000000000000000..c4cf64db457abfd7793f133c786de27e902d356c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Models/ring.obj.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: e54ecba36ad1e774b907a9ddf42d215a +timeCreated: 1458801740 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: default + 100002: //RootNode + 400000: default + 400002: //RootNode + 2300000: default + 3300000: default + 4300000: default + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..aa54f2aaf158c6343799eb907ba86e8c4dfa1e3c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0a82b65808be6364aab5ca2f8ab644c6 +folderAsset: yes +timeCreated: 1461139650 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs new file mode 100644 index 0000000000000000000000000000000000000000..ba554bb48486e5cc8bc6826da453f470d139e3f4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs @@ -0,0 +1,222 @@ +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.Vive; +using System; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; +using UnityEngine.Serialization; +using GrabberPool = HTC.UnityPlugin.Utility.ObjectPool<Draggable.Grabber>; + +// demonstrate of dragging things useing built in EventSystem handlers +public class Draggable : GrabbableBase<Draggable.Grabber> + , IInitializePotentialDragHandler + , IBeginDragHandler + , IDragHandler + , IEndDragHandler +{ + [Serializable] + public class UnityEventDraggable : UnityEvent<Draggable> { } + + public class Grabber : IGrabber + { + private static GrabberPool m_pool; + + public static Grabber Get(PointerEventData eventData) + { + if (m_pool == null) + { + m_pool = new GrabberPool(() => new Grabber()); + } + + var grabber = m_pool.Get(); + grabber.eventData = eventData; + return grabber; + } + + public static void Release(Grabber grabber) + { + grabber.eventData = null; + m_pool.Release(grabber); + } + + public PointerEventData eventData { get; private set; } + + public RigidPose grabberOrigin + { + get + { + var cam = eventData.pointerPressRaycast.module.eventCamera; + var ray = cam.ScreenPointToRay(eventData.position); + return new RigidPose(ray.origin, Quaternion.LookRotation(ray.direction, cam.transform.up)); + } + } + + public RigidPose grabOffset { get { return grabber2hit * hit2pivot; } set { } } + + public RigidPose grabber2hit { get; set; } + + public RigidPose hit2pivot { get; set; } + + public float hitDistance + { + get { return grabber2hit.pos.z; } + set + { + var p = grabber2hit; + p.pos.z = value; + grabber2hit = p; + } + } + } + + private IndexedTable<PointerEventData, Grabber> m_eventGrabberSet; + + [FormerlySerializedAs("initGrabDistance")] + [SerializeField] + private float m_initGrabDistance = 0.5f; + [Range(MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION)] + [FormerlySerializedAs("followingDuration")] + [SerializeField] + private float m_followingDuration = DEFAULT_FOLLOWING_DURATION; + [FormerlySerializedAs("overrideMaxAngularVelocity")] + [SerializeField] + private bool m_overrideMaxAngularVelocity = true; + [FormerlySerializedAs("unblockableGrab")] + [SerializeField] + private bool m_unblockableGrab = true; + [FormerlySerializedAs("afterGrabbed")] + [SerializeField] + private UnityEventDraggable m_afterGrabbed = new UnityEventDraggable(); + [FormerlySerializedAs("beforeRelease")] + [SerializeField] + private UnityEventDraggable m_beforeRelease = new UnityEventDraggable(); + [FormerlySerializedAs("onDrop")] + [SerializeField] + private UnityEventDraggable m_onDrop = new UnityEventDraggable(); // change rigidbody drop velocity here + [SerializeField] + [FormerlySerializedAs("m_scrollDelta")] + private float m_scrollingSpeed = 0.01f; + + public bool isDragged { get { return isGrabbed; } } + + public PointerEventData draggedEvent { get { return isGrabbed ? currentGrabber.eventData : null; } } + + public float initGrabDistance { get { return m_initGrabDistance; } set { m_initGrabDistance = value; } } + + public override float followingDuration { get { return m_followingDuration; } set { m_followingDuration = Mathf.Clamp(value, MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION); } } + + public override bool overrideMaxAngularVelocity { get { return m_overrideMaxAngularVelocity; } set { m_overrideMaxAngularVelocity = value; } } + + public bool unblockableGrab { get { return m_unblockableGrab; } set { m_unblockableGrab = value; } } + + public UnityEventDraggable afterGrabbed { get { return m_afterGrabbed; } } + + public UnityEventDraggable beforeRelease { get { return m_beforeRelease; } } + + public UnityEventDraggable onDrop { get { return m_onDrop; } } + + private bool moveByVelocity { get { return !unblockableGrab && grabRigidbody != null && !grabRigidbody.isKinematic; } } + + [Obsolete("Use grabRigidbody instead")] + public Rigidbody rigid { get { return grabRigidbody; } set { grabRigidbody = value; } } + + public float scrollingSpeed { get { return m_scrollingSpeed; } set { m_scrollingSpeed = value; } } + + protected override void Awake() + { + base.Awake(); + + afterGrabberGrabbed += () => m_afterGrabbed.Invoke(this); + beforeGrabberReleased += () => m_beforeRelease.Invoke(this); + onGrabberDrop += () => m_onDrop.Invoke(this); + } + + protected virtual void OnDisable() + { + ClearGrabbers(true); + ClearEventGrabberSet(); + } + + private void ClearEventGrabberSet() + { + if (m_eventGrabberSet == null) { return; } + + for (int i = m_eventGrabberSet.Count - 1; i >= 0; --i) + { + Grabber.Release(m_eventGrabberSet.GetValueByIndex(i)); + } + + m_eventGrabberSet.Clear(); + } + + public virtual void OnInitializePotentialDrag(PointerEventData eventData) + { + eventData.useDragThreshold = false; + } + + public virtual void OnBeginDrag(PointerEventData eventData) + { + var hitDistance = 0f; + + switch (eventData.button) + { + case PointerEventData.InputButton.Middle: + case PointerEventData.InputButton.Right: + hitDistance = Mathf.Min(eventData.pointerPressRaycast.distance, m_initGrabDistance); + break; + case PointerEventData.InputButton.Left: + hitDistance = eventData.pointerPressRaycast.distance; + break; + default: + return; + } + + var grabber = Grabber.Get(eventData); + grabber.grabber2hit = new RigidPose(new Vector3(0f, 0f, hitDistance), Quaternion.identity); + grabber.hit2pivot = RigidPose.FromToPose(grabber.grabberOrigin * grabber.grabber2hit, new RigidPose(transform)); + + if (m_eventGrabberSet == null) { m_eventGrabberSet = new IndexedTable<PointerEventData, Grabber>(); } + m_eventGrabberSet.Add(eventData, grabber); + + AddGrabber(grabber); + } + + protected virtual void FixedUpdate() + { + if (isGrabbed && moveByVelocity) + { + OnGrabRigidbody(); + } + } + + protected virtual void Update() + { + if (!isGrabbed) { return; } + + if (!moveByVelocity) + { + RecordLatestPosesForDrop(Time.time, 0.05f); + OnGrabTransform(); + } + + var scrollDelta = currentGrabber.eventData.scrollDelta * m_scrollingSpeed; + if (scrollDelta != Vector2.zero) + { + currentGrabber.hitDistance = Mathf.Max(0f, currentGrabber.hitDistance + scrollDelta.y); + } + } + + public virtual void OnDrag(PointerEventData eventData) { } + + public virtual void OnEndDrag(PointerEventData eventData) + { + if (m_eventGrabberSet == null) { return; } + + Grabber grabber; + if (!m_eventGrabberSet.TryGetValue(eventData, out grabber)) { return; } + + RemoveGrabber(grabber); + m_eventGrabberSet.Remove(eventData); + Grabber.Release(grabber); + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0ad3b15fb2d4f8b0f8301227fa08bf7748c7bad3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/Draggable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4de27f8a07624fa4bb7fa09ba9bb07a9 +timeCreated: 1458554301 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..148a514c931e4b61098068b8f9963ce83baec949 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs @@ -0,0 +1,45 @@ +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEngine; + +public class PlayGroundManager : MonoBehaviour +{ + private static List<Draggable> draggablesCache = new List<Draggable>(); + private Dictionary<int, RigidPose> poseTable = new Dictionary<int, RigidPose>(); + + private void Awake() + { + draggablesCache.Clear(); + GetComponentsInChildren(draggablesCache); + for (int i = 0, imax = draggablesCache.Count; i < imax; ++i) + { + var dt = draggablesCache[i].transform; + poseTable[dt.GetInstanceID()] = new RigidPose(dt); + } + draggablesCache.Clear(); + } + + public void ResetPositions() + { + draggablesCache.Clear(); + GetComponentsInChildren(draggablesCache); + for (int i = 0, imax = draggablesCache.Count; i < imax; ++i) + { + var dt = draggablesCache[i].transform; + RigidPose pose; + if (poseTable.TryGetValue(dt.GetInstanceID(), out pose)) + { + dt.position = pose.pos; + dt.rotation = pose.rot; + + var rb = dt.GetComponent<Rigidbody>(); + if (rb != null) + { + rb.velocity = Vector3.zero; + rb.angularVelocity = Vector3.zero; + } + } + } + draggablesCache.Clear(); + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..532e371c39adc09dcee309480fcbd02b5664214d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/3.3DDrag/Scripts/PlayGroundManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b5e11ea8e364f847958ae185ddf06fa +timeCreated: 1458642206 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport.meta new file mode 100644 index 0000000000000000000000000000000000000000..ba3a0fa0b0ac54a24e89ffae3b9736c083893237 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4eef1624d2c6cef4ebfd37d74d3bb0d8 +folderAsset: yes +timeCreated: 1465266676 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..18f56b6fc0f2527f8e435029588fbe71d363ea2b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 927e556121f016846b81b57b728a229b +folderAsset: yes +timeCreated: 1465270637 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat new file mode 100644 index 0000000000000000000000000000000000000000..8ddc545afd46ddf3adba1abbc2ace68b9e57a29f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Walkable + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.6121324, g: 0.75, b: 0.61878806, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..3e2b414b567195491c7ef7706711d262c64ddee0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Materials/Walkable.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73db86ee094aa314e8dfbeaa2cf83427 +timeCreated: 1465270650 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..0ba95604d26cebff480ea62c464976ed4e06d007 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cd19fc5bd34ed02418261ccb88622147 +folderAsset: yes +timeCreated: 1465271133 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs new file mode 100644 index 0000000000000000000000000000000000000000..3f26f2aacb49fe3a435d09a89fe58d6bb1d02a58 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs @@ -0,0 +1,51 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +[RequireComponent(typeof(RawImage))] +public class ImageAlphaRaycastFilter : UIBehaviour, ICanvasRaycastFilter +{ + [NonSerialized] + private RawImage m_rawImage; + + public float alphaHitTestMinimumThreshold; + + protected RawImage rawImage + { + get { return m_rawImage ?? (m_rawImage = GetComponent<RawImage>()); } + } + + public virtual bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) + { + if (alphaHitTestMinimumThreshold <= 0) { return true; } + if (alphaHitTestMinimumThreshold > 1) { return false; } + + var texture = rawImage.mainTexture as Texture2D; + + Vector2 local; + if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(rawImage.rectTransform, screenPoint, eventCamera, out local)) + { + return false; + } + + var rect = rawImage.GetPixelAdjustedRect(); + + // Convert to have lower left corner as reference point. + local.x += rawImage.rectTransform.pivot.x * rect.width; + local.y += rawImage.rectTransform.pivot.y * rect.height; + + // normalize + local = new Vector2(local.x / rect.width, local.y / rect.height); + + try + { + return texture.GetPixelBilinear(local.x, local.y).a >= alphaHitTestMinimumThreshold; + } + catch (UnityException e) + { + Debug.LogError("Using alphaHitTestMinimumThreshold greater than 0 on Graphic whose sprite texture cannot be read. " + e.Message + " Also make sure to disable sprite packing for this sprite.", this); + return true; + } + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..22f8282fc07da4f108fedf5837d47135693a18d6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Scripts/ImageAlphaRaycastFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 265c0af89cb371f43858d7edba00d15b +timeCreated: 1476949000 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity new file mode 100644 index 0000000000000000000000000000000000000000..0400457545d1806d93e4673ebce41e432560fb3e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity @@ -0,0 +1,1563 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &115803393 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 115803394} + - 33: {fileID: 115803397} + - 65: {fileID: 115803396} + - 23: {fileID: 115803395} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &115803394 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 115803393} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.227, y: 0.4, z: -3.122} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482341840} + m_RootOrder: 1 +--- !u!23 &115803395 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 115803393} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &115803396 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 115803393} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &115803397 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 115803393} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &117550851 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 117550852} + - 114: {fileID: 117550853} + m_Layer: 0 + m_Name: DeviceHeight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &117550852 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 117550851} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 270454096} + - {fileID: 239834494} + m_Father: {fileID: 1028236663} + m_RootOrder: 0 +--- !u!114 &117550853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 117550851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e038909a6547ef64f850aedb13ccc471, type: 3} + m_Name: + m_EditorClassIdentifier: + m_height: 1.3 +--- !u!4 &239834494 stripped +Transform: + m_PrefabParentObject: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_PrefabInternal: {fileID: 557133656} +--- !u!4 &270454096 stripped +Transform: + m_PrefabParentObject: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 1304274969} +--- !u!1 &482341839 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482341840} + m_Layer: 0 + m_Name: Blocks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &482341840 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 482341839} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 771501585} + - {fileID: 115803394} + - {fileID: 889136246} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1001 &557133656 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 117550852} + m_Modifications: + - target: {fileID: 11439286, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: restrictRenderer.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11498228, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: restrictRenderer.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11498228, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: originalReticle + value: + objectReference: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + - target: {fileID: 11439286, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: originalReticle + value: + objectReference: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + - target: {fileID: 11439286, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: restrictRenderer.Array.data[0] + value: + objectReference: {fileID: 557133658} + - target: {fileID: 11498228, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: restrictRenderer.Array.data[0] + value: + objectReference: {fileID: 557133657} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_IsPrefabParent: 0 +--- !u!23 &557133657 stripped +MeshRenderer: + m_PrefabParentObject: {fileID: 2328780, guid: 8c93af22a072961489d61255c39d9659, + type: 2} + m_PrefabInternal: {fileID: 557133656} +--- !u!23 &557133658 stripped +MeshRenderer: + m_PrefabParentObject: {fileID: 2387262, guid: 8c93af22a072961489d61255c39d9659, + type: 2} + m_PrefabInternal: {fileID: 557133656} +--- !u!1 &585832343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 585832345} + - 108: {fileID: 585832344} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &585832344 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 585832343} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &585832345 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 585832343} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &771501584 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 771501585} + - 33: {fileID: 771501588} + - 136: {fileID: 771501587} + - 23: {fileID: 771501586} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &771501585 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 771501584} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.7, y: 0.85, z: 3.38} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482341840} + m_RootOrder: 0 +--- !u!23 &771501586 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 771501584} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &771501587 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 771501584} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &771501588 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 771501584} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &799868348 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 799868349} + - 33: {fileID: 799868352} + - 65: {fileID: 799868351} + - 23: {fileID: 799868350} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &799868349 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799868348} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.43, y: 2.87, z: 1.93} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 4 +--- !u!23 &799868350 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799868348} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &799868351 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799868348} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &799868352 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799868348} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &889136245 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 889136246} + - 33: {fileID: 889136249} + - 136: {fileID: 889136248} + - 23: {fileID: 889136247} + m_Layer: 0 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &889136246 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 889136245} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.91, y: 0.19, z: 2.51} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482341840} + m_RootOrder: 2 +--- !u!23 &889136247 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 889136245} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &889136248 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 889136245} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &889136249 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 889136245} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1028236662 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1028236663} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1028236663 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1028236662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 117550852} + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!1 &1094563044 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1094563045} + - 33: {fileID: 1094563048} + - 65: {fileID: 1094563047} + - 23: {fileID: 1094563046} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1094563045 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1094563044} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.38, y: 3.23, z: -1.86} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 5 +--- !u!23 &1094563046 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1094563044} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1094563047 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1094563044} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1094563048 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1094563044} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1127719770 stripped +Transform: + m_PrefabParentObject: {fileID: 404836, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 1304274969} +--- !u!1 &1164335355 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1164335356} + - 33: {fileID: 1164335359} + - 65: {fileID: 1164335358} + - 23: {fileID: 1164335357} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1164335356 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164335355} + m_LocalRotation: {x: 0.17364822, y: 0, z: 0, w: 0.9848078} + m_LocalPosition: {x: -4.12, y: 1.94, z: 5.47} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 3 +--- !u!23 &1164335357 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164335355} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1164335358 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164335355} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1164335359 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164335355} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1289614129 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1289614130} + - 33: {fileID: 1289614133} + - 65: {fileID: 1289614132} + - 23: {fileID: 1289614131} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1289614130 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289614129} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.31, y: -1.59, z: -3.14} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 6 +--- !u!23 &1289614131 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289614129} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1289614132 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289614129} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1289614133 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289614129} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1304274969 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 117550852} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1314128761 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100004, guid: a93c012dd9ef6454fa7d140e976926f7, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1314128762} + - 222: {fileID: 1314128764} + - 114: {fileID: 1314128763} + m_Layer: 5 + m_Name: TitleLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1314128762 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22400004, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1314128761} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -35} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1412511976} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -100, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1314128763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400004, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1314128761} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Point at terrain + + Click pad button' +--- !u!222 &1314128764 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22200004, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1314128761} +--- !u!1 &1321112043 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1321112045} + - 114: {fileID: 1321112044} + m_Layer: 0 + m_Name: Walkable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1321112044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1321112043} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f753025abc16bb45bbc83939f863bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 1028236663} + pivot: {fileID: 1127719770} + fadeDuration: 0.3 + m_reticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + teleportButton: 1 +--- !u!4 &1321112045 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1321112043} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1786066651} + - {fileID: 2003903121} + - {fileID: 1531393929} + - {fileID: 1164335356} + - {fileID: 799868349} + - {fileID: 1094563045} + - {fileID: 1289614130} + - {fileID: 1661719669} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!1 &1412511975 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100002, guid: a93c012dd9ef6454fa7d140e976926f7, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1412511976} + - 222: {fileID: 1412511979} + - 114: {fileID: 1412511978} + - 114: {fileID: 1412511977} + m_Layer: 5 + m_Name: SF Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1412511976 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22400002, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412511975} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1314128762} + m_Father: {fileID: 2033105760} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1412511977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412511975} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1412511978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400002, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412511975} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1412511979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22200002, guid: a93c012dd9ef6454fa7d140e976926f7, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412511975} +--- !u!1 &1418741003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1418741004} + - 222: {fileID: 1418741006} + - 114: {fileID: 1418741005} + - 114: {fileID: 1418741007} + m_Layer: 0 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1418741004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418741003} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1661719669} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1418741005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418741003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.3764706, g: 0.6666667, b: 0.39215687, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 5788f684c84966f4497d8eefcd94655c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1418741006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418741003} +--- !u!114 &1418741007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418741003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 265c0af89cb371f43858d7edba00d15b, type: 3} + m_Name: + m_EditorClassIdentifier: + alphaHitTestMinimumThreshold: 0.5 +--- !u!1 &1531393928 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1531393929} + - 33: {fileID: 1531393932} + - 65: {fileID: 1531393931} + - 23: {fileID: 1531393930} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1531393929 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1531393928} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.4, y: 1.77, z: 8.82} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 2 +--- !u!23 &1531393930 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1531393928} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1531393931 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1531393928} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1531393932 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1531393928} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1661719668 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1661719669} + - 223: {fileID: 1661719671} + - 114: {fileID: 1661719670} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1661719669 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661719668} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1418741004} + m_Father: {fileID: 1321112045} + m_RootOrder: 7 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1661719670 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661719668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!223 &1661719671 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661719668} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1786066650 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1786066651} + - 33: {fileID: 1786066654} + - 65: {fileID: 1786066653} + - 23: {fileID: 1786066652} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1786066651 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1786066650} + m_LocalRotation: {x: -0.15354429, y: 0, z: 0, w: 0.9881418} + m_LocalPosition: {x: 1.61, y: 0.33, z: 5.91} + m_LocalScale: {x: 3, y: 0.20000002, z: 3} + m_LocalEulerAnglesHint: {x: -17.664799, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 0 +--- !u!23 &1786066652 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1786066650} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1786066653 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1786066650} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1786066654 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1786066650} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2003903120 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2003903121} + - 33: {fileID: 2003903124} + - 65: {fileID: 2003903123} + - 23: {fileID: 2003903122} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2003903121 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2003903120} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.97, y: 1.35, z: 9.1} + m_LocalScale: {x: 3, y: 0.2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112045} + m_RootOrder: 1 +--- !u!23 &2003903122 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2003903120} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 73db86ee094aa314e8dfbeaa2cf83427, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &2003903123 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2003903120} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2003903124 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2003903120} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2033105758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2033105760} + - 223: {fileID: 2033105759} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &2033105759 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2033105758} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2033105760 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2033105758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1412511976} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 3} + m_SizeDelta: {x: 500, y: 500} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..092136dd334dd4fa4c3e7608e3066e9cfcceb63b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Teleport.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 13596d03f1830884d93aa9d4521226f7 +timeCreated: 1465271187 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures.meta new file mode 100644 index 0000000000000000000000000000000000000000..20c38317ae4afc950e94960afb3ec80d13feaa5c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 446ec7bc013c6954dbf04211d7008db2 +folderAsset: yes +timeCreated: 1477041161 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png new file mode 100644 index 0000000000000000000000000000000000000000..568eebbba98cbd57bc6eeb3d162708fba8170849 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e59ba9e7da11d9bc9dadda66f06a6db38533ed00a0e38600227605342c63d063 +size 4619 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..54ca59f2e9c07e0fa460c9fe6660e01d30a272e1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/4.Teleport/Textures/walkable_map 1.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 5788f684c84966f4497d8eefcd94655c +timeCreated: 1477043722 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent.meta new file mode 100644 index 0000000000000000000000000000000000000000..0d5f970a9a72d3b1fc89bf4f596347245676abf2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f46d708a8f934934ab14d93cf28ca286 +folderAsset: yes +timeCreated: 1477307104 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity new file mode 100644 index 0000000000000000000000000000000000000000..8ea5f52499d3de57174760cefe4dbde33bbd5bc3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity @@ -0,0 +1,8238 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &50708835 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 528563570} + m_Modifications: + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &69413965 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 69413966} + - 33: {fileID: 69413969} + - 136: {fileID: 69413968} + - 23: {fileID: 69413967} + m_Layer: 0 + m_Name: Capsule (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &69413966 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 69413965} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.5, z: 0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 4 +--- !u!23 &69413967 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 69413965} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &69413968 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 69413965} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &69413969 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 69413965} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &91531408 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 91531409} + - 33: {fileID: 91531412} + - 23: {fileID: 91531411} + - 65: {fileID: 91531410} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &91531409 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 91531408} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1451383300} + m_RootOrder: 1 +--- !u!65 &91531410 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 91531408} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &91531411 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 91531408} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &91531412 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 91531408} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &110084175 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 110084176} + - 33: {fileID: 110084179} + - 136: {fileID: 110084178} + - 23: {fileID: 110084177} + m_Layer: 0 + m_Name: Capsule (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &110084176 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 110084175} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: 0, z: -0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 3 +--- !u!23 &110084177 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 110084175} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &110084178 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 110084175} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &110084179 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 110084175} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &132536218 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 132536219} + - 33: {fileID: 132536222} + - 136: {fileID: 132536221} + - 23: {fileID: 132536220} + m_Layer: 0 + m_Name: Capsule (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &132536219 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 132536218} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0.5, y: -0.5, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 10 +--- !u!23 &132536220 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 132536218} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &132536221 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 132536218} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &132536222 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 132536218} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &139836382 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 139836383} + - 33: {fileID: 139836386} + - 135: {fileID: 139836385} + - 23: {fileID: 139836384} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &139836383 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139836382} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.375, y: 1, z: 0.375} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 0 +--- !u!23 &139836384 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139836382} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &139836385 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139836382} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &139836386 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139836382} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &160033085 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 160033086} + - 33: {fileID: 160033089} + - 135: {fileID: 160033088} + - 23: {fileID: 160033087} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &160033086 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 160033085} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1926722948} + m_RootOrder: 1 +--- !u!23 &160033087 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 160033085} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &160033088 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 160033085} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &160033089 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 160033085} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &222118188 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 222118191} + - 114: {fileID: 222118190} + - 114: {fileID: 222118189} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &222118189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 222118188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &222118190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 222118188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &222118191 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 222118188} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 +--- !u!1 &253626078 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 253626079} + - 222: {fileID: 253626081} + - 114: {fileID: 253626080} + m_Layer: 5 + m_Name: GrabLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &253626079 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 253626078} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1180038084} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &253626080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 253626078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: grab dice +--- !u!222 &253626081 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 253626078} +--- !u!1 &261686742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 261686743} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &261686743 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261686742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1567158600} + - {fileID: 1305761866} + - {fileID: 1360509612} + - {fileID: 881179590} + - {fileID: 430351234} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &275230250 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 275230251} + - 33: {fileID: 275230254} + - 135: {fileID: 275230253} + - 23: {fileID: 275230252} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &275230251 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275230250} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.375, y: 0.375, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 388087322} + m_RootOrder: 1 +--- !u!23 &275230252 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275230250} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &275230253 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275230250} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &275230254 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275230250} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &275406376 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 275406378} + - 223: {fileID: 275406377} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &275406377 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275406376} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &275406378 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275406376} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: + - {fileID: 1402711697} + - {fileID: 1745420935} + - {fileID: 1180038084} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.001} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &303925295 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 303925296} + - 33: {fileID: 303925298} + - 23: {fileID: 303925297} + m_Layer: 0 + m_Name: Sphere (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &303925296 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 303925295} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: 0.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 4 +--- !u!23 &303925297 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 303925295} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &303925298 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 303925295} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &319129143 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 319129144} + - 33: {fileID: 319129147} + - 135: {fileID: 319129146} + - 23: {fileID: 319129145} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &319129144 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 319129143} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.25, y: -0.25, z: -1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 788390907} + m_RootOrder: 0 +--- !u!23 &319129145 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 319129143} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &319129146 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 319129143} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &319129147 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 319129143} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &320199183 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 320199184} + - 33: {fileID: 320199187} + - 135: {fileID: 320199186} + - 23: {fileID: 320199185} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &320199184 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 320199183} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1, y: 0.3, z: 0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1926722948} + m_RootOrder: 0 +--- !u!23 &320199185 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 320199183} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &320199186 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 320199183} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &320199187 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 320199183} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &328207320 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 328207321} + - 33: {fileID: 328207324} + - 135: {fileID: 328207323} + - 23: {fileID: 328207322} + m_Layer: 0 + m_Name: Sphere (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &328207321 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 328207320} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.375, y: 1, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 4 +--- !u!23 &328207322 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 328207320} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &328207323 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 328207320} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &328207324 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 328207320} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &330830183 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 528563570} + m_Modifications: + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &336820592 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 336820593} + - 33: {fileID: 336820596} + - 136: {fileID: 336820595} + - 23: {fileID: 336820594} + m_Layer: 0 + m_Name: Capsule (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &336820593 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336820592} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: -0.5, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 9 +--- !u!23 &336820594 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336820592} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &336820595 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336820592} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &336820596 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336820592} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &341185342 stripped +Transform: + m_PrefabParentObject: {fileID: 463184, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 330830183} +--- !u!1 &353472882 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 353472883} + - 222: {fileID: 353472885} + - 114: {fileID: 353472884} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &353472883 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 353472882} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 1165823172} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &353472884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 353472882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Unblockable + + Rigidbody' +--- !u!222 &353472885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 353472882} +--- !u!1 &379627726 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 379627727} + - 33: {fileID: 379627730} + - 23: {fileID: 379627729} + - 65: {fileID: 379627728} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &379627727 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 379627726} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1451383300} + m_RootOrder: 0 +--- !u!65 &379627728 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 379627726} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &379627729 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 379627726} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &379627730 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 379627726} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &388087321 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 388087322} + m_Layer: 0 + m_Name: Number5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &388087322 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 388087321} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 624450911} + - {fileID: 275230251} + - {fileID: 1189408977} + - {fileID: 1674198077} + - {fileID: 1039205220} + m_Father: {fileID: 1305761866} + m_RootOrder: 5 +--- !u!1 &392529944 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 392529945} + - 33: {fileID: 392529947} + - 23: {fileID: 392529946} + m_Layer: 0 + m_Name: Sphere (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &392529945 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 392529944} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: -0.5, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 7 +--- !u!23 &392529946 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 392529944} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &392529947 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 392529944} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &404413079 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 404413080} + - 33: {fileID: 404413084} + - 65: {fileID: 404413083} + - 23: {fileID: 404413082} + - 114: {fileID: 404413081} + m_Layer: 0 + m_Name: StickyTransform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &404413080 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 404413079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.75, y: 0.75, z: 0.25} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 806836806} + - {fileID: 488724023} + - {fileID: 1685663536} + - {fileID: 2105195508} + m_Father: {fileID: 430351234} + m_RootOrder: 3 +--- !u!114 &404413081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 404413079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d95cee40c33260044b37578281bc98a3, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_grabButton: 0 + m_toggleToRelease: 1 + m_allowMultipleGrabbers: 0 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!23 &404413082 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 404413079} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &404413083 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 404413079} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &404413084 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 404413079} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &411181630 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411181631} + m_Layer: 0 + m_Name: Switch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &411181631 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411181630} + m_LocalRotation: {x: 0, y: 0, z: 0.13052621, w: 0.9914449} + m_LocalPosition: {x: 0, y: 0.685, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: + - {fileID: 829349125} + - {fileID: 712170900} + - {fileID: 1705459498} + - {fileID: 420627136} + m_Father: {fileID: 1360509612} + m_RootOrder: 1 +--- !u!1 &420627135 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420627136} + - 33: {fileID: 420627138} + - 23: {fileID: 420627137} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &420627136 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_LocalRotation: {x: 0, y: 0, z: 0.13052623, w: 0.9914449} + m_LocalPosition: {x: 0.253, y: 0.072, z: 0} + m_LocalScale: {x: 0.2, y: 0.05, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 3 +--- !u!23 &420627137 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &420627138 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &430351233 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 430351234} + - 223: {fileID: 430351235} + m_Layer: 0 + m_Name: LabeledCubes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &430351234 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 430351233} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1354049790} + - {fileID: 1952453241} + - {fileID: 717481837} + - {fileID: 404413080} + - {fileID: 1165823172} + - {fileID: 1069099938} + m_Father: {fileID: 261686743} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &430351235 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 430351233} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &437756350 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 437756351} + - 222: {fileID: 437756353} + - 114: {fileID: 437756352} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &437756351 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437756350} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 1952453241} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &437756352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437756350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Unblockable + + Rigidbody' +--- !u!222 &437756353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437756350} +--- !u!1 &439393926 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 439393927} + - 222: {fileID: 439393929} + - 114: {fileID: 439393928} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &439393927 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439393926} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 1952453241} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &439393928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439393926} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Unblockable + + Rigidbody' +--- !u!222 &439393929 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439393926} +--- !u!1 &461946300 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 461946301} + - 33: {fileID: 461946304} + - 135: {fileID: 461946303} + - 23: {fileID: 461946302} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &461946301 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 461946300} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.375, y: 1, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 1 +--- !u!23 &461946302 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 461946300} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &461946303 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 461946300} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &461946304 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 461946300} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &488724022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 488724023} + - 222: {fileID: 488724025} + - 114: {fileID: 488724024} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &488724023 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 488724022} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 404413080} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &488724024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 488724022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Transform' +--- !u!222 &488724025 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 488724022} +--- !u!1 &528563569 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 528563570} + - 114: {fileID: 528563571} + m_Layer: 0 + m_Name: DeviceHeight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &528563570 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 528563569} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 341185342} + - {fileID: 1493077909} + - {fileID: 706941231} + m_Father: {fileID: 1828780976} + m_RootOrder: 0 +--- !u!114 &528563571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 528563569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e038909a6547ef64f850aedb13ccc471, type: 3} + m_Name: + m_EditorClassIdentifier: + m_height: 1.3 +--- !u!1001 &543375619 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 528563570} + m_Modifications: + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &624450910 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 624450911} + - 33: {fileID: 624450914} + - 135: {fileID: 624450913} + - 23: {fileID: 624450912} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &624450911 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624450910} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 388087322} + m_RootOrder: 0 +--- !u!23 &624450912 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624450910} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &624450913 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624450910} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &624450914 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624450910} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &644320311 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 644320312} + - 33: {fileID: 644320315} + - 135: {fileID: 644320314} + - 23: {fileID: 644320313} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &644320312 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644320311} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: 0.3, z: 0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1163173617} + m_RootOrder: 0 +--- !u!23 &644320313 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644320311} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &644320314 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644320311} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &644320315 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644320311} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &654956488 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 654956489} + - 33: {fileID: 654956492} + - 136: {fileID: 654956491} + - 23: {fileID: 654956490} + - 114: {fileID: 654956493} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &654956489 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 654956488} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 881179590} + m_RootOrder: 0 +--- !u!23 &654956490 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 654956488} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &654956491 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 654956488} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 3 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &654956492 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 654956488} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &654956493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 654956488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 079afddb0d7f05e40bcb44383f149949, type: 3} + m_Name: + m_EditorClassIdentifier: + Normal: {fileID: 2100000, guid: 041d9bdcafbd02b40946f96a381b16d5, type: 2} + Heightlight: {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + Pressed: {fileID: 2100000, guid: 9cdad01e44871fc419f9f98ca8e08ec9, type: 2} + dragged: {fileID: 0} + heighlightButton: 0 +--- !u!1 &670456796 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 670456797} + - 33: {fileID: 670456800} + - 136: {fileID: 670456799} + - 23: {fileID: 670456798} + m_Layer: 0 + m_Name: Capsule (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &670456797 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670456796} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: -0.5, y: -0.5, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 11 +--- !u!23 &670456798 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670456796} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &670456799 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670456796} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &670456800 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670456796} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &678332188 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 678332189} + m_Layer: 0 + m_Name: Number1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &678332189 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 678332188} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1741680844} + m_Father: {fileID: 1305761866} + m_RootOrder: 1 +--- !u!1 &688125756 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 688125757} + - 33: {fileID: 688125759} + - 23: {fileID: 688125758} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &688125757 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 688125756} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.5, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 3 +--- !u!23 &688125758 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 688125756} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &688125759 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 688125756} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &689283099 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 689283100} + - 222: {fileID: 689283102} + - 114: {fileID: 689283101} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &689283100 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689283099} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 1354049790} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &689283101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689283099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Transform +--- !u!222 &689283102 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689283099} +--- !u!4 &706941231 stripped +Transform: + m_PrefabParentObject: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_PrefabInternal: {fileID: 50708835} +--- !u!1 &712170899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 712170900} + - 33: {fileID: 712170902} + - 23: {fileID: 712170901} + m_Layer: 0 + m_Name: On + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &712170900 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_LocalRotation: {x: 0, y: 0, z: -0.13052621, w: 0.9914449} + m_LocalPosition: {x: -0.2, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.2, z: 0.3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 1 +--- !u!23 &712170901 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &712170902 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &717481836 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 717481837} + - 33: {fileID: 717481842} + - 65: {fileID: 717481841} + - 23: {fileID: 717481840} + - 54: {fileID: 717481839} + - 114: {fileID: 717481838} + m_Layer: 0 + m_Name: BlockableRigidbody + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &717481837 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.75, y: 0.75, z: -0.75} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1469204201} + - {fileID: 1698472822} + - {fileID: 1794852638} + - {fileID: 1641258978} + m_Father: {fileID: 430351234} + m_RootOrder: 2 +--- !u!114 &717481838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 0 + m_grabButton: 0 + m_allowMultipleGrabbers: 1 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!54 &717481839 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &717481840 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &717481841 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &717481842 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 717481836} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &719353019 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 719353020} + - 33: {fileID: 719353022} + - 23: {fileID: 719353021} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &719353020 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719353019} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.1, z: 0} + m_LocalScale: {x: 0.7, y: 0.1, z: 0.7} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 881179590} + m_RootOrder: 1 +--- !u!23 &719353021 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719353019} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &719353022 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 719353019} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &730991383 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 730991384} + - 33: {fileID: 730991386} + - 65: {fileID: 730991385} + m_Layer: 1 + m_Name: Ceilling + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &730991384 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 730991383} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 5, z: 0} + m_LocalScale: {x: 3, y: 2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 5 +--- !u!65 &730991385 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 730991383} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &730991386 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 730991383} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &760137284 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 760137285} + - 33: {fileID: 760137288} + - 136: {fileID: 760137287} + - 23: {fileID: 760137286} + m_Layer: 0 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &760137285 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 760137284} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0, z: 0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 0 +--- !u!23 &760137286 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 760137284} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &760137287 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 760137284} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &760137288 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 760137284} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &788390906 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 788390907} + m_Layer: 0 + m_Name: Number2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &788390907 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 788390906} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 319129144} + - {fileID: 1434668476} + m_Father: {fileID: 1305761866} + m_RootOrder: 2 +--- !u!1 &806836805 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 806836806} + - 222: {fileID: 806836808} + - 114: {fileID: 806836807} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &806836806 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 806836805} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 404413080} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &806836807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 806836805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Transform' +--- !u!222 &806836808 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 806836805} +--- !u!1 &812471114 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 812471115} + - 33: {fileID: 812471117} + - 65: {fileID: 812471116} + m_Layer: 1 + m_Name: Wall (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &812471115 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812471114} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 2.5} + m_LocalScale: {x: 3, y: 20, z: 2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 3 +--- !u!65 &812471116 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812471114} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &812471117 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812471114} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &814925151 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 814925152} + - 33: {fileID: 814925155} + - 136: {fileID: 814925154} + - 23: {fileID: 814925153} + m_Layer: 0 + m_Name: Capsule (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &814925152 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 814925151} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: 0, z: 0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 1 +--- !u!23 &814925153 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 814925151} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &814925154 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 814925151} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &814925155 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 814925151} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &829349124 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 829349125} + - 33: {fileID: 829349127} + - 23: {fileID: 829349126} + m_Layer: 0 + m_Name: Off + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &829349125 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_LocalRotation: {x: 0, y: 0, z: 0.13052621, w: 0.9914449} + m_LocalPosition: {x: 0.2, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.2, z: 0.3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 0 +--- !u!23 &829349126 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &829349127 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &860994912 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 860994913} + - 222: {fileID: 860994915} + - 114: {fileID: 860994914} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &860994913 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 860994912} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 1069099938} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &860994914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 860994912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Blockable + + Rigidbody' +--- !u!222 &860994915 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 860994912} +--- !u!1 &864860981 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 864860982} + m_Layer: 0 + m_Name: Number6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &864860982 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 864860981} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 139836383} + - {fileID: 461946301} + - {fileID: 1251511675} + - {fileID: 1224635267} + - {fileID: 328207321} + - {fileID: 1640370414} + m_Father: {fileID: 1305761866} + m_RootOrder: 6 +--- !u!1 &881179589 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 881179590} + - 114: {fileID: 881179591} + m_Layer: 0 + m_Name: ResetButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &881179590 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 881179589} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.735, y: 0.346, z: 0.732} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 654956489} + - {fileID: 719353020} + m_Father: {fileID: 261686743} + m_RootOrder: 3 +--- !u!114 &881179591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 881179589} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67a775f6996bf304f8899ccf07e029a2, type: 3} + m_Name: + m_EditorClassIdentifier: + effectTargets: + - {fileID: 1305761866} + - {fileID: 1354049790} + - {fileID: 1952453241} + - {fileID: 717481837} + - {fileID: 404413080} + - {fileID: 1165823172} + - {fileID: 1069099938} + buttonObject: {fileID: 719353020} + buttonDownDisplacement: {x: 0, y: -0.05, z: 0} + m_activeButton: 0 +--- !u!1 &978932879 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 978932880} + - 114: {fileID: 978932881} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &978932880 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 978932879} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1429988891} + - {fileID: 1451383300} + - {fileID: 1983302284} + m_Father: {fileID: 1305761866} + m_RootOrder: 0 +--- !u!114 &978932881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 978932879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 079afddb0d7f05e40bcb44383f149949, type: 3} + m_Name: + m_EditorClassIdentifier: + Normal: {fileID: 2100000, guid: 041d9bdcafbd02b40946f96a381b16d5, type: 2} + Heightlight: {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + Pressed: {fileID: 2100000, guid: 9cdad01e44871fc419f9f98ca8e08ec9, type: 2} + dragged: {fileID: 2100000, guid: 926919ce7f495aa44b10ce012bb13b43, type: 2} + heighlightButton: 0 +--- !u!1 &988571755 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 988571756} + - 33: {fileID: 988571758} + - 65: {fileID: 988571757} + m_Layer: 1 + m_Name: Wall (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &988571756 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 988571755} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.5, y: 0, z: 0} + m_LocalScale: {x: 2, y: 20, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 2 +--- !u!65 &988571757 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 988571755} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &988571758 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 988571755} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1009528029 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1009528030} + - 33: {fileID: 1009528033} + - 135: {fileID: 1009528032} + - 23: {fileID: 1009528031} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1009528030 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1009528029} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: 0.3, z: -0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1163173617} + m_RootOrder: 1 +--- !u!23 &1009528031 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1009528029} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1009528032 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1009528029} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1009528033 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1009528029} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1029917760 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1029917761} + - 222: {fileID: 1029917763} + - 114: {fileID: 1029917762} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1029917761 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1029917760} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 1354049790} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1029917762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1029917760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Transform +--- !u!222 &1029917763 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1029917760} +--- !u!1 &1039205219 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1039205220} + - 33: {fileID: 1039205223} + - 135: {fileID: 1039205222} + - 23: {fileID: 1039205221} + m_Layer: 0 + m_Name: Sphere (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1039205220 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1039205219} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.375, y: -0.375, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 388087322} + m_RootOrder: 4 +--- !u!23 &1039205221 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1039205219} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1039205222 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1039205219} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1039205223 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1039205219} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1041810619 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1041810620} + - 33: {fileID: 1041810622} + - 23: {fileID: 1041810621} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1041810620 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1041810619} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0.5, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 1 +--- !u!23 &1041810621 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1041810619} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1041810622 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1041810619} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1048635741 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1048635742} + - 222: {fileID: 1048635744} + - 114: {fileID: 1048635743} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1048635742 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1048635741} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1354049790} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1048635743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1048635741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Transform +--- !u!222 &1048635744 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1048635741} +--- !u!4 &1068854219 stripped +Transform: + m_PrefabParentObject: {fileID: 404836, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 330830183} +--- !u!1 &1069099937 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1069099938} + - 33: {fileID: 1069099943} + - 65: {fileID: 1069099942} + - 23: {fileID: 1069099941} + - 54: {fileID: 1069099940} + - 114: {fileID: 1069099939} + m_Layer: 0 + m_Name: StickyBlockableRigidbody + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1069099938 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.75, y: 0.75, z: -0.75} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1863528940} + - {fileID: 860994913} + - {fileID: 1418118216} + - {fileID: 1993659862} + m_Father: {fileID: 430351234} + m_RootOrder: 5 +--- !u!114 &1069099939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d95cee40c33260044b37578281bc98a3, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 0 + m_grabButton: 0 + m_toggleToRelease: 1 + m_allowMultipleGrabbers: 0 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!54 &1069099940 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1069099941 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1069099942 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1069099943 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069099937} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1077571495 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1077571496} + - 33: {fileID: 1077571498} + - 23: {fileID: 1077571497} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1077571496 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1077571495} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 0 +--- !u!23 &1077571497 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1077571495} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1077571498 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1077571495} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1161360084 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1161360085} + - 33: {fileID: 1161360088} + - 136: {fileID: 1161360087} + - 23: {fileID: 1161360086} + m_Layer: 0 + m_Name: Capsule (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1161360085 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1161360084} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071067} + m_LocalPosition: {x: 0, y: -0.5, z: -0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 7 +--- !u!23 &1161360086 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1161360084} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1161360087 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1161360084} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1161360088 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1161360084} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1163173616 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1163173617} + m_Layer: 0 + m_Name: Number4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1163173617 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1163173616} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 644320312} + - {fileID: 1009528030} + - {fileID: 1536776286} + - {fileID: 1990377054} + m_Father: {fileID: 1305761866} + m_RootOrder: 4 +--- !u!1 &1165823171 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1165823172} + - 33: {fileID: 1165823177} + - 65: {fileID: 1165823176} + - 23: {fileID: 1165823175} + - 54: {fileID: 1165823174} + - 114: {fileID: 1165823173} + m_Layer: 0 + m_Name: StickyUnblockableRigidbody + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1165823172 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.75, y: 0.75, z: -0.25} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1661162579} + - {fileID: 353472883} + - {fileID: 1677420688} + - {fileID: 1577022702} + m_Father: {fileID: 430351234} + m_RootOrder: 4 +--- !u!114 &1165823173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d95cee40c33260044b37578281bc98a3, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_grabButton: 0 + m_toggleToRelease: 1 + m_allowMultipleGrabbers: 0 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.StickyGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!54 &1165823174 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1165823175 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1165823176 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1165823177 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1165823171} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1180038083 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1180038084} + - 222: {fileID: 1180038086} + - 114: {fileID: 1180038085} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1180038084 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: -1000} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} + m_Children: + - {fileID: 253626079} + m_Father: {fileID: 275406378} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1500} + m_SizeDelta: {x: 1373, y: 455} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1180038085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1180038086 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} +--- !u!1 &1189408976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1189408977} + - 33: {fileID: 1189408980} + - 135: {fileID: 1189408979} + - 23: {fileID: 1189408978} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1189408977 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1189408976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.375, y: -0.375, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 388087322} + m_RootOrder: 2 +--- !u!23 &1189408978 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1189408976} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1189408979 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1189408976} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1189408980 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1189408976} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1224635266 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1224635267} + - 33: {fileID: 1224635270} + - 135: {fileID: 1224635269} + - 23: {fileID: 1224635268} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1224635267 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1224635266} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.375, y: 1, z: 0.375} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 3 +--- !u!23 &1224635268 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1224635266} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1224635269 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1224635266} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1224635270 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1224635266} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1251511674 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1251511675} + - 33: {fileID: 1251511678} + - 135: {fileID: 1251511677} + - 23: {fileID: 1251511676} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1251511675 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251511674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.375, y: 1, z: -0.375} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 2 +--- !u!23 &1251511676 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251511674} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1251511677 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251511674} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1251511678 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251511674} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1299762834 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1299762835} + - 33: {fileID: 1299762837} + - 23: {fileID: 1299762836} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1299762835 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1299762834} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 2 +--- !u!23 &1299762836 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1299762834} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1299762837 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1299762834} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1305761865 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1305761866} + - 54: {fileID: 1305761868} + - 114: {fileID: 1305761867} + m_Layer: 0 + m_Name: Dice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1305761866 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1305761865} + m_LocalRotation: {x: -0.36642814, y: 0.1406586, z: 0.32961005, w: 0.85866344} + m_LocalPosition: {x: 0.06, y: 0.676, z: 0.861} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_LocalEulerAnglesHint: {x: -46.219997, y: 0, z: 42} + m_Children: + - {fileID: 978932880} + - {fileID: 678332189} + - {fileID: 788390907} + - {fileID: 1926722948} + - {fileID: 1163173617} + - {fileID: 388087322} + - {fileID: 864860982} + m_Father: {fileID: 261686743} + m_RootOrder: 1 +--- !u!114 &1305761867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1305761865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_grabButton: 0 + m_allowMultipleGrabbers: 1 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!54 &1305761868 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1305761865} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &1310171286 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1310171287} + - 33: {fileID: 1310171289} + - 23: {fileID: 1310171288} + m_Layer: 0 + m_Name: Sphere (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1310171287 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1310171286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: 0.5, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 5 +--- !u!23 &1310171288 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1310171286} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1310171289 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1310171286} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1328217015 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1328217016} + - 33: {fileID: 1328217019} + - 136: {fileID: 1328217018} + - 23: {fileID: 1328217017} + m_Layer: 0 + m_Name: Capsule (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1328217016 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1328217015} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0, z: -0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 2 +--- !u!23 &1328217017 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1328217015} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1328217018 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1328217015} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1328217019 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1328217015} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1342536627 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1342536628} + - 33: {fileID: 1342536631} + - 136: {fileID: 1342536630} + - 23: {fileID: 1342536629} + m_Layer: 0 + m_Name: Capsule (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1342536628 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1342536627} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0.5, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 8 +--- !u!23 &1342536629 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1342536627} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1342536630 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1342536627} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1342536631 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1342536627} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1354049789 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1354049790} + - 33: {fileID: 1354049794} + - 65: {fileID: 1354049793} + - 23: {fileID: 1354049792} + - 114: {fileID: 1354049791} + m_Layer: 0 + m_Name: Transform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1354049790 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1354049789} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.75, y: 0.75, z: 0.25} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1048635742} + - {fileID: 1507063659} + - {fileID: 689283100} + - {fileID: 1029917761} + m_Father: {fileID: 430351234} + m_RootOrder: 0 +--- !u!114 &1354049791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1354049789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_grabButton: 0 + m_allowMultipleGrabbers: 1 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!23 &1354049792 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1354049789} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1354049793 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1354049789} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1354049794 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1354049789} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1360509611 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1360509612} + - 114: {fileID: 1360509613} + m_Layer: 0 + m_Name: GravitySwitch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1360509612 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1360509611} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.701, y: 0.295, z: 0.702} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1910243698} + - {fileID: 411181631} + m_Father: {fileID: 261686743} + m_RootOrder: 2 +--- !u!114 &1360509613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1360509611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98e2feabd543add4d9446392f79bf4a4, type: 3} + m_Name: + m_EditorClassIdentifier: + switchObject: {fileID: 411181631} + gravityEnabled: 0 + impalse: {x: 0, y: 0.5, z: 0} +--- !u!1 &1371699278 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1371699280} + - 108: {fileID: 1371699279} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1371699279 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1371699280 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1402711696 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1402711697} + - 222: {fileID: 1402711699} + - 114: {fileID: 1402711698} + m_Layer: 5 + m_Name: TouchLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1402711697 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402711696} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 275406378} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -681, y: 449} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1402711698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402711696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 78 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: touch me +--- !u!222 &1402711699 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402711696} +--- !u!1 &1418118215 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1418118216} + - 222: {fileID: 1418118218} + - 114: {fileID: 1418118217} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1418118216 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418118215} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 1069099938} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1418118217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418118215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Blockable + + Rigidbody' +--- !u!222 &1418118218 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418118215} +--- !u!1 &1419668919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1419668920} + - 33: {fileID: 1419668923} + - 135: {fileID: 1419668922} + - 23: {fileID: 1419668921} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1419668920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1419668919} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1, y: -0.3, z: -0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1926722948} + m_RootOrder: 2 +--- !u!23 &1419668921 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1419668919} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1419668922 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1419668919} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1419668923 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1419668919} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1427470703 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1427470704} + - 33: {fileID: 1427470706} + - 65: {fileID: 1427470705} + m_Layer: 1 + m_Name: Wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1427470704 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1427470703} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.5, y: 0, z: 0} + m_LocalScale: {x: 2, y: 20, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 1 +--- !u!65 &1427470705 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1427470703} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1427470706 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1427470703} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1429988890 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1429988891} + m_Layer: 0 + m_Name: Edges + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1429988891 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1429988890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 760137285} + - {fileID: 814925152} + - {fileID: 1328217016} + - {fileID: 110084176} + - {fileID: 69413966} + - {fileID: 2130712830} + - {fileID: 1893152623} + - {fileID: 1161360085} + - {fileID: 1342536628} + - {fileID: 336820593} + - {fileID: 132536219} + - {fileID: 670456797} + m_Father: {fileID: 978932880} + m_RootOrder: 0 +--- !u!1 &1434668475 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1434668476} + - 33: {fileID: 1434668479} + - 135: {fileID: 1434668478} + - 23: {fileID: 1434668477} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1434668476 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1434668475} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.25, y: 0.25, z: -1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 788390907} + m_RootOrder: 1 +--- !u!23 &1434668477 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1434668475} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1434668478 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1434668475} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1434668479 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1434668475} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1447451453 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1447451454} + - 33: {fileID: 1447451456} + - 23: {fileID: 1447451455} + m_Layer: 0 + m_Name: Sphere (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1447451454 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1447451453} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5, y: -0.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1983302284} + m_RootOrder: 6 +--- !u!23 &1447451455 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1447451453} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1447451456 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1447451453} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1451383299 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1451383300} + m_Layer: 0 + m_Name: Faces + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1451383300 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1451383299} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 379627727} + - {fileID: 91531409} + - {fileID: 2108786306} + m_Father: {fileID: 978932880} + m_RootOrder: 1 +--- !u!1 &1469204200 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1469204201} + - 222: {fileID: 1469204203} + - 114: {fileID: 1469204202} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1469204201 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1469204200} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 717481837} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1469204202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1469204200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Blockable + + Rigidbody' +--- !u!222 &1469204203 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1469204200} +--- !u!4 &1493077909 stripped +Transform: + m_PrefabParentObject: {fileID: 475840, guid: 2b3a4efa04a7cf2428e0835b20f15fdc, type: 2} + m_PrefabInternal: {fileID: 543375619} +--- !u!1 &1507063658 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1507063659} + - 222: {fileID: 1507063661} + - 114: {fileID: 1507063660} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1507063659 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1507063658} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 1354049790} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1507063660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1507063658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Transform +--- !u!222 &1507063661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1507063658} +--- !u!1 &1536776285 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1536776286} + - 33: {fileID: 1536776289} + - 135: {fileID: 1536776288} + - 23: {fileID: 1536776287} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1536776286 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1536776285} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: -0.3, z: 0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1163173617} + m_RootOrder: 2 +--- !u!23 &1536776287 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1536776285} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1536776288 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1536776285} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1536776289 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1536776285} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1567158599 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1567158600} + m_Layer: 0 + m_Name: Room + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1567158600 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567158599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1774619873} + - {fileID: 1427470704} + - {fileID: 988571756} + - {fileID: 812471115} + - {fileID: 1808454802} + - {fileID: 730991384} + - {fileID: 1862339470} + m_Father: {fileID: 261686743} + m_RootOrder: 0 +--- !u!1 &1577022701 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1577022702} + - 222: {fileID: 1577022704} + - 114: {fileID: 1577022703} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1577022702 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1577022701} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 1165823172} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1577022703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1577022701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Unblockable + + Rigidbody' +--- !u!222 &1577022704 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1577022701} +--- !u!1 &1610027282 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1610027283} + - 222: {fileID: 1610027285} + - 114: {fileID: 1610027284} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1610027283 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1610027282} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 1952453241} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1610027284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1610027282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Unblockable + + Rigidbody' +--- !u!222 &1610027285 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1610027282} +--- !u!1 &1640370413 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1640370414} + - 33: {fileID: 1640370417} + - 135: {fileID: 1640370416} + - 23: {fileID: 1640370415} + m_Layer: 0 + m_Name: Sphere (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1640370414 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1640370413} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.375, y: 1, z: -0.375} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 864860982} + m_RootOrder: 5 +--- !u!23 &1640370415 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1640370413} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1640370416 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1640370413} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1640370417 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1640370413} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1641258977 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1641258978} + - 222: {fileID: 1641258980} + - 114: {fileID: 1641258979} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1641258978 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1641258977} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 717481837} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1641258979 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1641258977} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Blockable + + Rigidbody' +--- !u!222 &1641258980 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1641258977} +--- !u!1 &1661162578 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1661162579} + - 222: {fileID: 1661162581} + - 114: {fileID: 1661162580} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1661162579 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661162578} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1165823172} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1661162580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661162578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Unblockable + + Rigidbody' +--- !u!222 &1661162581 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1661162578} +--- !u!1 &1674198076 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1674198077} + - 33: {fileID: 1674198080} + - 135: {fileID: 1674198079} + - 23: {fileID: 1674198078} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1674198077 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674198076} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.375, y: 0.375, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 388087322} + m_RootOrder: 3 +--- !u!23 &1674198078 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674198076} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1674198079 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674198076} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1674198080 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674198076} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1677420687 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1677420688} + - 222: {fileID: 1677420690} + - 114: {fileID: 1677420689} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1677420688 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1677420687} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 1165823172} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1677420689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1677420687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Unblockable + + Rigidbody' +--- !u!222 &1677420690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1677420687} +--- !u!1 &1685663535 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1685663536} + - 222: {fileID: 1685663538} + - 114: {fileID: 1685663537} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1685663536 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1685663535} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 404413080} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1685663537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1685663535} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Transform' +--- !u!222 &1685663538 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1685663535} +--- !u!1 &1698472821 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1698472822} + - 222: {fileID: 1698472824} + - 114: {fileID: 1698472823} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1698472822 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1698472821} + m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0} + m_Children: [] + m_Father: {fileID: 717481837} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1698472823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1698472821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Blockable + + Rigidbody' +--- !u!222 &1698472824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1698472821} +--- !u!1 &1705459497 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1705459498} + - 33: {fileID: 1705459501} + - 23: {fileID: 1705459499} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1705459498 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_LocalRotation: {x: 0, y: 0, z: -0.13052621, w: 0.9914449} + m_LocalPosition: {x: -0.259, y: 0.1, z: 0} + m_LocalScale: {x: 0.17, y: 0.05, z: 0.03} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 2 +--- !u!23 &1705459499 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1705459501 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1741680843 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1741680844} + - 33: {fileID: 1741680847} + - 135: {fileID: 1741680846} + - 23: {fileID: 1741680845} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1741680844 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741680843} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 678332189} + m_RootOrder: 0 +--- !u!23 &1741680845 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741680843} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1741680846 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741680843} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1741680847 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1741680843} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1745420934 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1745420935} + - 222: {fileID: 1745420937} + - 114: {fileID: 1745420936} + m_Layer: 5 + m_Name: PressLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1745420935 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1745420934} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 275406378} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 728, y: 448} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1745420936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1745420934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 78 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: press me +--- !u!222 &1745420937 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1745420934} +--- !u!1 &1774619872 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1774619873} + - 33: {fileID: 1774619876} + - 65: {fileID: 1774619875} + - 23: {fileID: 1774619874} + - 114: {fileID: 1774619877} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1774619873 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 3, y: 2, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 0 +--- !u!23 &1774619874 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 179baae881749d24399a1d0d8e294181, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1774619875 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1774619876 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1774619877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f753025abc16bb45bbc83939f863bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 1828780976} + pivot: {fileID: 1068854219} + fadeDuration: 0.3 + m_reticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + teleportButton: 1 +--- !u!1 &1790604551 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1790604552} + - 222: {fileID: 1790604554} + - 114: {fileID: 1790604553} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1790604552 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1790604551} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1952453241} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1790604553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1790604551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Unblockable + + Rigidbody' +--- !u!222 &1790604554 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1790604551} +--- !u!1 &1794852637 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1794852638} + - 222: {fileID: 1794852640} + - 114: {fileID: 1794852639} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1794852638 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1794852637} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 717481837} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1794852639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1794852637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Blockable + + Rigidbody' +--- !u!222 &1794852640 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1794852637} +--- !u!1 &1808454801 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1808454802} + - 33: {fileID: 1808454804} + - 65: {fileID: 1808454803} + m_Layer: 1 + m_Name: Wall (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1808454802 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1808454801} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2.5} + m_LocalScale: {x: 3, y: 20, z: 2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 4 +--- !u!65 &1808454803 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1808454801} + m_Material: {fileID: 13400000, guid: da255c4dcecefcf44a886ce71ed58de2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1808454804 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1808454801} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1828780975 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1828780976} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1828780976 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828780975} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 528563570} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!1 &1862339469 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1862339470} + - 33: {fileID: 1862339473} + - 65: {fileID: 1862339472} + - 23: {fileID: 1862339471} + m_Layer: 0 + m_Name: DiceTable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1862339470 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.06, y: 0.192, z: 0.853} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 6 +--- !u!23 &1862339471 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: ec9d8842c4331fa4282aff483e181842, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1862339472 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1862339473 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1863528939 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1863528940} + - 222: {fileID: 1863528942} + - 114: {fileID: 1863528941} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1863528940 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863528939} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.51} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1069099938} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1863528941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863528939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Blockable + + Rigidbody' +--- !u!222 &1863528942 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863528939} +--- !u!1 &1893152622 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1893152623} + - 33: {fileID: 1893152626} + - 136: {fileID: 1893152625} + - 23: {fileID: 1893152624} + m_Layer: 0 + m_Name: Capsule (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1893152623 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893152622} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.5, z: -0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 6 +--- !u!23 &1893152624 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893152622} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1893152625 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893152622} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1893152626 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893152622} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1910243697 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1910243698} + - 33: {fileID: 1910243701} + - 65: {fileID: 1910243700} + - 23: {fileID: 1910243699} + - 114: {fileID: 1910243702} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1910243698 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1.3, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1360509612} + m_RootOrder: 0 +--- !u!23 &1910243699 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1910243700 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1.4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1910243701 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1910243702 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 079afddb0d7f05e40bcb44383f149949, type: 3} + m_Name: + m_EditorClassIdentifier: + Normal: {fileID: 2100000, guid: 041d9bdcafbd02b40946f96a381b16d5, type: 2} + Heightlight: {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + Pressed: {fileID: 2100000, guid: 9cdad01e44871fc419f9f98ca8e08ec9, type: 2} + dragged: {fileID: 2100000, guid: 926919ce7f495aa44b10ce012bb13b43, type: 2} + heighlightButton: 0 +--- !u!1 &1926722947 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1926722948} + m_Layer: 0 + m_Name: Number3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1926722948 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1926722947} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 320199184} + - {fileID: 160033086} + - {fileID: 1419668920} + m_Father: {fileID: 1305761866} + m_RootOrder: 3 +--- !u!1 &1952453240 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1952453241} + - 33: {fileID: 1952453246} + - 65: {fileID: 1952453245} + - 23: {fileID: 1952453244} + - 54: {fileID: 1952453243} + - 114: {fileID: 1952453242} + m_Layer: 0 + m_Name: UnblockableRigidbody + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1952453241 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.75, y: 0.75, z: -0.25} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1790604552} + - {fileID: 1610027283} + - {fileID: 437756351} + - {fileID: 439393927} + m_Father: {fileID: 430351234} + m_RootOrder: 1 +--- !u!114 &1952453242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_grabButton: 0 + m_allowMultipleGrabbers: 1 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!54 &1952453243 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1952453244 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1952453245 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1952453246 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1952453240} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1983302283 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1983302284} + m_Layer: 0 + m_Name: Corners + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1983302284 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1983302283} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1077571496} + - {fileID: 1041810620} + - {fileID: 1299762835} + - {fileID: 688125757} + - {fileID: 303925296} + - {fileID: 1310171287} + - {fileID: 1447451454} + - {fileID: 392529945} + m_Father: {fileID: 978932880} + m_RootOrder: 2 +--- !u!1 &1990377053 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1990377054} + - 33: {fileID: 1990377057} + - 135: {fileID: 1990377056} + - 23: {fileID: 1990377055} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1990377054 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1990377053} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: -0.3, z: -0.3} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1163173617} + m_RootOrder: 3 +--- !u!23 &1990377055 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1990377053} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1990377056 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1990377053} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1990377057 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1990377053} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1993659861 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1993659862} + - 222: {fileID: 1993659864} + - 114: {fileID: 1993659863} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1993659862 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1993659861} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 1069099938} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1993659863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1993659861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Blockable + + Rigidbody' +--- !u!222 &1993659864 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1993659861} +--- !u!1 &2105195507 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2105195508} + - 222: {fileID: 2105195510} + - 114: {fileID: 2105195509} + m_Layer: 0 + m_Name: Text (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2105195508 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2105195507} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_Children: [] + m_Father: {fileID: 404413080} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.51, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2105195509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2105195507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Sticky + + Transform' +--- !u!222 &2105195510 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2105195507} +--- !u!1 &2108786305 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2108786306} + - 33: {fileID: 2108786309} + - 23: {fileID: 2108786308} + - 65: {fileID: 2108786307} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2108786306 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2108786305} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 2, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1451383300} + m_RootOrder: 2 +--- !u!65 &2108786307 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2108786305} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2108786308 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2108786305} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &2108786309 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2108786305} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2130712829 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2130712830} + - 33: {fileID: 2130712833} + - 136: {fileID: 2130712832} + - 23: {fileID: 2130712831} + m_Layer: 0 + m_Name: Capsule (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2130712830 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2130712829} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071067} + m_LocalPosition: {x: 0, y: -0.5, z: 0.5} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_Children: [] + m_Father: {fileID: 1429988891} + m_RootOrder: 5 +--- !u!23 &2130712831 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2130712829} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &2130712832 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2130712829} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 4 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2130712833 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2130712829} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..777369c93fcff5e1427a278efdfcf3642c9c49bb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/ColliderEvent.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8120628a3b4fb84eb121a883bc093a6 +timeCreated: 1478002736 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..e2b54fa79ea7574f9fe24346d45a4746e0be0704 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05e2d8d384ab062479a65876f25dbe9d +folderAsset: yes +timeCreated: 1477309435 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs new file mode 100644 index 0000000000000000000000000000000000000000..40ae892b419813546a58d9342cbfe1a27098e64e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs @@ -0,0 +1,58 @@ +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using System.Collections; +using UnityEngine; + +public class GravitySwitch : MonoBehaviour + , IColliderEventHoverEnterHandler +{ + public Transform switchObject; + public bool gravityEnabled = false; + public Vector3 impalse = Vector3.up; + + private bool m_gravityEnabled; + private Vector3 previousGravity; + + public void SetGravityEnabled(bool value, bool forceSet = false) + { + if (ChangeProp.Set(ref m_gravityEnabled, value) || forceSet) + { + // change the apperence the switch + switchObject.localEulerAngles = new Vector3(0f, 0f, value ? 15f : -15f); + + StopAllCoroutines(); + + // Change the global gravity in the scene + if (value) + { + Physics.gravity = previousGravity; + } + else + { + previousGravity = Physics.gravity; + + StartCoroutine(DisableGravity()); + } + } + + gravityEnabled = m_gravityEnabled; + } + + private void Start() + { + previousGravity = Physics.gravity; + SetGravityEnabled(gravityEnabled, true); + } + + public void OnColliderEventHoverEnter(ColliderHoverEventData eventData) + { + SetGravityEnabled(!m_gravityEnabled); + } + + private IEnumerator DisableGravity() + { + Physics.gravity = impalse; + yield return new WaitForSeconds(0.3f); + Physics.gravity = Vector3.zero; + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..dd22785c87ff960177b01cda54db61eb6272c9e0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/GravitySwitch.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 98e2feabd543add4d9446392f79bf4a4 +timeCreated: 1477995116 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs new file mode 100644 index 0000000000000000000000000000000000000000..027d3d3fcb9a2fdadfbc590e59fca2c14b0ea46b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs @@ -0,0 +1,94 @@ +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEngine; + +public class ResetButton : MonoBehaviour + , IColliderEventPressEnterHandler + , IColliderEventPressExitHandler +{ + public Transform[] effectTargets; + public Transform buttonObject; + public Vector3 buttonDownDisplacement; + + [SerializeField] + private ColliderButtonEventData.InputButton m_activeButton = ColliderButtonEventData.InputButton.Trigger; + + private RigidPose[] storedPoses; + + private HashSet<ColliderButtonEventData> pressingEvents = new HashSet<ColliderButtonEventData>(); + + public ColliderButtonEventData.InputButton activeButton { get { return m_activeButton; } set { m_activeButton = value; } } + + private void Start() + { + StorePoses(); + } + + public void OnColliderEventPressEnter(ColliderButtonEventData eventData) + { + if (eventData.button == m_activeButton && pressingEvents.Add(eventData) && pressingEvents.Count == 1) + { + buttonObject.localPosition += buttonDownDisplacement; + } + } + + public void OnColliderEventPressExit(ColliderButtonEventData eventData) + { + if (pressingEvents.Remove(eventData) && pressingEvents.Count == 0) + { + buttonObject.localPosition -= buttonDownDisplacement; + + // check if event caster is still hovering this object + foreach (var c in eventData.eventCaster.enteredColliders) + { + if (c.transform.IsChildOf(transform)) + { + DoReset(); + return; + } + } + } + } + + public void StorePoses() + { + if (effectTargets == null) + { + storedPoses = null; + return; + } + + if (storedPoses == null || storedPoses.Length != effectTargets.Length) + { + storedPoses = new RigidPose[effectTargets.Length]; + } + + for (int i = 0; i < effectTargets.Length; ++i) + { + storedPoses[i] = new RigidPose(effectTargets[i]); + } + } + + public void DoReset() + { + if (effectTargets == null) { return; } + + for (int i = 0; i < effectTargets.Length; ++i) + { + var rigid = effectTargets[i].GetComponent<Rigidbody>(); + if (rigid != null) + { + rigid.MovePosition(storedPoses[i].pos); + rigid.MoveRotation(storedPoses[i].rot); + rigid.velocity = Vector3.zero; + //rigid.angularVelocity = Vector3.zero; + } + else + { + effectTargets[i].position = storedPoses[i].pos; + effectTargets[i].rotation = storedPoses[i].rot; + } + } + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0ecc5235e939c5d71c9a6fe6634fa26037f73809 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/5.ColliderEvent/Scripts/ResetButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 67a775f6996bf304f8899ccf07e029a2 +timeCreated: 1477996400 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample.meta new file mode 100644 index 0000000000000000000000000000000000000000..0401ab78271b5b786482490b06bcbacb182622a7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c7d01a623685e724d90caac03903d250 +folderAsset: yes +timeCreated: 1483534540 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity new file mode 100644 index 0000000000000000000000000000000000000000..98c7c615c53c36e281a10d0f21d3e00fe0fd50cf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity @@ -0,0 +1,3598 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!114 &168363246 stripped +MonoBehaviour: + m_PrefabParentObject: {fileID: 11411378, guid: cbfd31aaac017204885fcc03f0579a1a, + type: 2} + m_PrefabInternal: {fileID: 1804374875} + m_Script: {fileID: 11500000, guid: afea3b80346a74d4bb1ccdcd457390bf, type: 3} +--- !u!1 &261686742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 261686743} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &261686743 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261686742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1567158600} + - {fileID: 1360509612} + - {fileID: 1814568728} + - {fileID: 1862339470} + - {fileID: 1662793828} + - {fileID: 811441983} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!1 &275406376 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 275406378} + - 223: {fileID: 275406377} + - 114: {fileID: 275406379} + m_Layer: 5 + m_Name: MenuCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &275406377 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275406376} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &275406378 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275406376} + m_LocalRotation: {x: 0, y: 0.3225059, z: 0, w: 0.9465675} + m_LocalPosition: {x: 0, y: 0, z: 0.978} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_LocalEulerAnglesHint: {x: 0, y: 37.6291, z: 0} + m_Children: + - {fileID: 1180038084} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2.007, y: 0.981} + m_SizeDelta: {x: 1568.002, y: 619.86} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &275406379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 275406376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!1 &313210003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 313210004} + - 222: {fileID: 313210007} + - 114: {fileID: 313210006} + - 114: {fileID: 313210005} + m_Layer: 5 + m_Name: Button_Blue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &313210004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 313210003} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1718741202} + m_Father: {fileID: 1180038084} + m_RootOrder: 5 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 372, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &313210005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 313210003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.20382789, g: 0.48908994, b: 0.9558824, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 313210006} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 313210005} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &313210006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 313210003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &313210007 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 313210003} +--- !u!1 &316548209 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 316548210} + - 222: {fileID: 316548212} + - 114: {fileID: 316548211} + m_Layer: 5 + m_Name: PressLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &316548210 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 316548209} + m_LocalRotation: {x: 0.00000004135772, y: -0.000000023801677, z: -0.13913488, w: 0.9902735} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -15.9956} + m_Children: [] + m_Father: {fileID: 742880707} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1723, y: 368} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &316548211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 316548209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 78 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'press me ' +--- !u!222 &316548212 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 316548209} +--- !u!1 &411181630 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411181631} + m_Layer: 0 + m_Name: Switch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &411181631 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411181630} + m_LocalRotation: {x: 0, y: 0, z: 0.13052621, w: 0.9914449} + m_LocalPosition: {x: 0, y: 0.685, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: + - {fileID: 829349125} + - {fileID: 712170900} + - {fileID: 1705459498} + - {fileID: 420627136} + m_Father: {fileID: 1360509612} + m_RootOrder: 1 +--- !u!1 &420627135 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420627136} + - 33: {fileID: 420627138} + - 23: {fileID: 420627137} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &420627136 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_LocalRotation: {x: 0, y: 0, z: 0.13052623, w: 0.9914449} + m_LocalPosition: {x: 0.253, y: 0.072, z: 0} + m_LocalScale: {x: 0.2, y: 0.05, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 3 +--- !u!23 &420627137 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &420627138 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 420627135} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &458677296 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 458677297} + - 222: {fileID: 458677299} + - 114: {fileID: 458677298} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &458677297 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 458677296} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1301394019} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -200, y: -200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &458677298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 458677296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 100 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 100 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Press <color=blue><b>Menu</b></color> button to toggle <color=green><b>Laser + Pointer</b></color> + + + Hold <color=blue><b>Trigger</b></color> to <color=green><b>grab boxes</b></color> + + + Hold <color=blue><b>Pad</b></color> and <color=green><b>teleport</b></color> on + release + + + Hold <color=blue><b>Grip</b></color> to enable <color=green><b>Custom Controller + Model</b></color>' +--- !u!222 &458677299 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 458677296} +--- !u!1 &511087343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 511087344} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &511087344 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 511087343} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1948262689} + m_Father: {fileID: 0} + m_RootOrder: 4 +--- !u!1 &559533855 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 559533856} + - 222: {fileID: 559533858} + - 114: {fileID: 559533857} + m_Layer: 5 + m_Name: TouchLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &559533856 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559533855} + m_LocalRotation: {x: 0.000000037280454, y: -0.0000000042237036, z: 0.33661112, w: 0.94164383} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 39.3411} + m_Children: [] + m_Father: {fileID: 742880707} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1748, y: 411} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &559533857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559533855} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 78 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: touch me +--- !u!222 &559533858 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559533855} +--- !u!1 &605551737 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 605551738} + - 33: {fileID: 605551740} + - 65: {fileID: 605551739} + m_Layer: 1 + m_Name: Wall (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &605551738 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605551737} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 4.85, z: -5.8} + m_LocalScale: {x: 15, y: 20, z: 2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 5 +--- !u!65 &605551739 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605551737} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &605551740 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605551737} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &672244528 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 672244529} + - 222: {fileID: 672244531} + - 114: {fileID: 672244530} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &672244529 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 672244528} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 858012216} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &672244530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 672244528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 100 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Red +--- !u!222 &672244531 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 672244528} +--- !u!4 &676368209 stripped +Transform: + m_PrefabParentObject: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + m_PrefabInternal: {fileID: 1804374875} +--- !u!1 &712170899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 712170900} + - 33: {fileID: 712170902} + - 23: {fileID: 712170901} + m_Layer: 0 + m_Name: On + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &712170900 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_LocalRotation: {x: 0, y: 0, z: -0.13052621, w: 0.9914449} + m_LocalPosition: {x: -0.2, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.2, z: 0.3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 1 +--- !u!23 &712170901 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &712170902 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 712170899} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &742880705 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 742880707} + - 223: {fileID: 742880706} + m_Layer: 5 + m_Name: LabelCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &742880706 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 742880705} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &742880707 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 742880705} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: + - {fileID: 559533856} + - {fileID: 316548210} + - {fileID: 1301394019} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.001} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &750464159 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 750464160} + - 222: {fileID: 750464162} + - 114: {fileID: 750464161} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &750464160 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 750464159} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1744800312} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &750464161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 750464159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Yellow +--- !u!222 &750464162 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 750464159} +--- !u!1 &811441982 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 811441983} + - 114: {fileID: 811441984} + m_Layer: 0 + m_Name: MenuButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &811441983 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 811441982} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.821, y: 0.346, z: 0.703} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1138996144} + - {fileID: 1892031237} + m_Father: {fileID: 261686743} + m_RootOrder: 5 +--- !u!114 &811441984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 811441982} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 82f13b6073133754e85a2098fffc779b, type: 3} + m_Name: + m_EditorClassIdentifier: + effectMenu: {fileID: 275406376} + controllerManager: {fileID: 168363246} + m_activeButton: 0 + buttonObject: {fileID: 1892031237} + buttonDownDisplacement: {x: 0, y: -0.05, z: 0} +--- !u!1 &829349124 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 829349125} + - 33: {fileID: 829349127} + - 23: {fileID: 829349126} + m_Layer: 0 + m_Name: Off + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &829349125 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_LocalRotation: {x: 0, y: 0, z: 0.13052621, w: 0.9914449} + m_LocalPosition: {x: 0.2, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.2, z: 0.3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 0 +--- !u!23 &829349126 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &829349127 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829349124} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &858012215 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 858012216} + - 222: {fileID: 858012219} + - 114: {fileID: 858012218} + - 114: {fileID: 858012217} + m_Layer: 5 + m_Name: Button_Red + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &858012216 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 858012215} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 672244529} + m_Father: {fileID: 1180038084} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -617, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &858012217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 858012215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.97794116, g: 0.23010379, b: 0.23010379, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 858012218} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 858012217} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &858012218 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 858012215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &858012219 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 858012215} +--- !u!1 &866959192 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 866959193} + - 222: {fileID: 866959195} + - 114: {fileID: 866959194} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &866959193 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 866959192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1564193757} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &866959194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 866959192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Orange +--- !u!222 &866959195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 866959192} +--- !u!1 &1095153078 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1095153079} + - 222: {fileID: 1095153082} + - 114: {fileID: 1095153081} + - 114: {fileID: 1095153080} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1095153079 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1095153078} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.00013248} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1251226201} + m_Father: {fileID: 1180038084} + m_RootOrder: 7 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.5001316, y: -199} + m_SizeDelta: {x: 1435, y: 113} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1095153080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1095153078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1095153081} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 811441984} + m_MethodName: SetMenuVisible + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1095153081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1095153078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1095153082 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1095153078} +--- !u!1 &1138996143 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1138996144} + - 33: {fileID: 1138996148} + - 136: {fileID: 1138996147} + - 23: {fileID: 1138996146} + - 114: {fileID: 1138996145} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1138996144 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138996143} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.15, z: 0} + m_LocalScale: {x: 1, y: 0.7, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 811441983} + m_RootOrder: 0 +--- !u!114 &1138996145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138996143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 079afddb0d7f05e40bcb44383f149949, type: 3} + m_Name: + m_EditorClassIdentifier: + Normal: {fileID: 2100000, guid: 041d9bdcafbd02b40946f96a381b16d5, type: 2} + Hovered: {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + Pressed: {fileID: 2100000, guid: 9cdad01e44871fc419f9f98ca8e08ec9, type: 2} + dragged: {fileID: 0} + heighlightButton: 0 +--- !u!23 &1138996146 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138996143} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!136 &1138996147 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138996143} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 3 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1138996148 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138996143} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1164272514 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1164272515} + - 222: {fileID: 1164272518} + - 114: {fileID: 1164272517} + - 114: {fileID: 1164272516} + m_Layer: 5 + m_Name: Button_Green + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1164272515 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164272514} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1181896367} + m_Father: {fileID: 1180038084} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 136, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1164272516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164272514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.04947201, g: 0.78676474, b: 0.023140162, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1164272517} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1164272516} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1164272517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164272514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1164272518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164272514} +--- !u!1 &1180038083 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1180038084} + - 222: {fileID: 1180038086} + - 114: {fileID: 1180038085} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1180038084 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1696859509} + - {fileID: 858012216} + - {fileID: 1564193757} + - {fileID: 1744800312} + - {fileID: 1164272515} + - {fileID: 313210004} + - {fileID: 1390033348} + - {fileID: 1095153079} + m_Father: {fileID: 275406378} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1180038085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1180038086 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1180038083} +--- !u!1 &1181896366 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1181896367} + - 222: {fileID: 1181896369} + - 114: {fileID: 1181896368} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1181896367 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181896366} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1164272515} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1181896368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181896366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Green +--- !u!222 &1181896369 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181896366} +--- !u!1 &1251226200 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1251226201} + - 222: {fileID: 1251226203} + - 114: {fileID: 1251226202} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1251226201 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251226200} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1095153079} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1251226202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251226200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 80 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 100 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close +--- !u!222 &1251226203 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1251226200} +--- !u!1 &1263982282 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1263982283} + - 33: {fileID: 1263982285} + - 65: {fileID: 1263982284} + m_Layer: 1 + m_Name: Wall (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1263982283 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1263982282} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 4.85, z: 5.82} + m_LocalScale: {x: 15, y: 20, z: 2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 2 +--- !u!65 &1263982284 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1263982282} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1263982285 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1263982282} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1301394018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1301394019} + - 222: {fileID: 1301394021} + - 114: {fileID: 1301394020} + m_Layer: 5 + m_Name: Instruction + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1301394019 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301394018} + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: -1047} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} + m_Children: + - {fileID: 458677297} + m_Father: {fileID: 742880707} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 81, y: 1827} + m_SizeDelta: {x: 2438, y: 1022} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1301394020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301394018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.3882353} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1301394021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301394018} +--- !u!1 &1345921005 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1345921006} + - 33: {fileID: 1345921008} + - 65: {fileID: 1345921007} + m_Layer: 1 + m_Name: Ceilling + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1345921006 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1345921005} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 14, z: 0} + m_LocalScale: {x: 10, y: 2, z: 10} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 1 +--- !u!65 &1345921007 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1345921005} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1345921008 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1345921005} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1360509611 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1360509612} + - 114: {fileID: 1360509613} + m_Layer: 0 + m_Name: GravitySwitch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1360509612 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1360509611} + m_LocalRotation: {x: 0, y: -0.34430498, z: 0, w: 0.9388579} + m_LocalPosition: {x: -1.972, y: 0.295, z: 0.652} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: -40.278698, z: 0} + m_Children: + - {fileID: 1910243698} + - {fileID: 411181631} + m_Father: {fileID: 261686743} + m_RootOrder: 1 +--- !u!114 &1360509613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1360509611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98e2feabd543add4d9446392f79bf4a4, type: 3} + m_Name: + m_EditorClassIdentifier: + switchObject: {fileID: 411181631} + gravityEnabled: 0 + impalse: {x: 0, y: 0.5, z: 0} +--- !u!1 &1371699278 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1371699280} + - 108: {fileID: 1371699279} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1371699279 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1371699280 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1390033347 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1390033348} + - 222: {fileID: 1390033351} + - 114: {fileID: 1390033350} + - 114: {fileID: 1390033349} + m_Layer: 5 + m_Name: Button_Purple + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1390033348 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390033347} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2028313886} + m_Father: {fileID: 1180038084} + m_RootOrder: 6 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 618, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1390033349 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390033347} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.5537076, g: 0.2568123, b: 0.9191176, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1390033350} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1390033349} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1390033350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390033347} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1390033351 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390033347} +--- !u!1 &1410765605 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1410765610} + - 33: {fileID: 1410765609} + - 65: {fileID: 1410765608} + - 23: {fileID: 1410765607} + - 54: {fileID: 1410765611} + - 114: {fileID: 1410765606} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1410765606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + alignPosition: 0 + alignRotation: 0 + alignPositionOffset: {x: 0, y: 0, z: 0} + alignRotationOffset: {x: 0, y: 0, z: 0} + m_followingDuration: 0.04 + m_overrideMaxAngularVelocity: 1 + m_unblockableGrab: 1 + m_primaryGrabButton: 0 + m_secondaryGrabButton: 1 + m_grabButton: 0 + m_allowMultipleGrabbers: 1 + m_afterGrabbed: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 168363246} + m_MethodName: OnGrabbed + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_beforeRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 168363246} + m_MethodName: OnRelease + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDrop: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.BasicGrabbable+UnityEventGrabbable, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!23 &1410765607 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1410765608 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1410765609 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1410765610 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1814568728} + m_RootOrder: 0 +--- !u!54 &1410765611 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410765605} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &1564193756 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1564193757} + - 222: {fileID: 1564193760} + - 114: {fileID: 1564193759} + - 114: {fileID: 1564193758} + m_Layer: 5 + m_Name: Button_Orange + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1564193757 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1564193756} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 866959193} + m_Father: {fileID: 1180038084} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -362, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1564193758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1564193756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.9852941, g: 0.46886408, b: 0, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1564193759} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1564193758} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1564193759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1564193756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1564193760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1564193756} +--- !u!1 &1567158599 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1567158600} + m_Layer: 0 + m_Name: Room + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1567158600 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567158599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1774619873} + - {fileID: 1345921006} + - {fileID: 1263982283} + - {fileID: 1982783167} + - {fileID: 1719052490} + - {fileID: 605551738} + m_Father: {fileID: 261686743} + m_RootOrder: 0 +--- !u!1 &1662793827 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1662793828} + - 135: {fileID: 1662793829} + - 114: {fileID: 1662793830} + m_Layer: 2 + m_Name: Spawner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1662793828 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1662793827} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.098, y: 0.74249995, z: 0.734} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 261686743} + m_RootOrder: 4 +--- !u!135 &1662793829 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1662793827} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1662793830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1662793827} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 464cbdc121d1b72428c28867e893f7f4, type: 3} + m_Name: + m_EditorClassIdentifier: + effectTarget: {fileID: 1410765605} + delay: 1 +--- !u!1 &1696859508 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1696859509} + - 222: {fileID: 1696859511} + - 114: {fileID: 1696859510} + m_Layer: 5 + m_Name: ColorLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1696859509 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696859508} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1180038084} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 224} + m_SizeDelta: {x: 1000, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1696859510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696859508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 100 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Change box colors +--- !u!222 &1696859511 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696859508} +--- !u!1 &1705459497 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1705459498} + - 33: {fileID: 1705459501} + - 23: {fileID: 1705459499} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1705459498 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_LocalRotation: {x: 0, y: 0, z: -0.13052621, w: 0.9914449} + m_LocalPosition: {x: -0.259, y: 0.1, z: 0} + m_LocalScale: {x: 0.17, y: 0.05, z: 0.03} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -15} + m_Children: [] + m_Father: {fileID: 411181631} + m_RootOrder: 2 +--- !u!23 &1705459499 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1705459501 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1705459497} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1718741201 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1718741202} + - 222: {fileID: 1718741204} + - 114: {fileID: 1718741203} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1718741202 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1718741201} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 313210004} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1718741203 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1718741201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Blue +--- !u!222 &1718741204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1718741201} +--- !u!1 &1719052489 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1719052490} + - 33: {fileID: 1719052492} + - 65: {fileID: 1719052491} + m_Layer: 1 + m_Name: Wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1719052490 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1719052489} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.68, y: 4.85, z: 0} + m_LocalScale: {x: 2, y: 20, z: 15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 4 +--- !u!65 &1719052491 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1719052489} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1719052492 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1719052489} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1744800311 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1744800312} + - 222: {fileID: 1744800315} + - 114: {fileID: 1744800314} + - 114: {fileID: 1744800313} + m_Layer: 5 + m_Name: Button_Yellow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1744800312 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1744800311} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 750464160} + m_Father: {fileID: 1180038084} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -109, y: 11} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1744800313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1744800311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 0.80689657, b: 0, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1744800314} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1814568727} + m_MethodName: ChangeColor + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1744800313} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1744800314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1744800311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1744800315 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1744800311} +--- !u!1 &1774619872 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1774619873} + - 33: {fileID: 1774619876} + - 65: {fileID: 1774619875} + - 23: {fileID: 1774619874} + - 114: {fileID: 1774619877} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1774619873 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 10, y: 2, z: 10} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 0 +--- !u!23 &1774619874 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 179baae881749d24399a1d0d8e294181, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1774619875 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1774619876 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1774619877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f753025abc16bb45bbc83939f863bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 511087344} + pivot: {fileID: 1804374876} + fadeDuration: 0.3 + primaryTeleportButton: 0 + secondaryTeleportButton: 2 + _teleportButton: 1 + triggeredType: 0 + m_reticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + rotateToHitObjectFront: 0 + teleportToHitObjectPivot: 0 + useSteamVRFade: 1 + onBeforeTeleport: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.Teleportable+UnityEventTeleport, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onAfterTeleport: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.Teleportable+UnityEventTeleport, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!1001 &1804374875 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1948262689} + m_Modifications: + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1804374876 stripped +Transform: + m_PrefabParentObject: {fileID: 431768, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + m_PrefabInternal: {fileID: 1804374875} +--- !u!1 &1814568726 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1814568728} + - 114: {fileID: 1814568727} + m_Layer: 0 + m_Name: Boxes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1814568727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1814568726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ee012eca24e76e4dac8fce388ea951c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1814568728 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1814568726} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.095, y: 0.627, z: 0.725} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1410765610} + m_Father: {fileID: 261686743} + m_RootOrder: 2 +--- !u!1 &1862339469 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1862339470} + - 33: {fileID: 1862339473} + - 65: {fileID: 1862339472} + - 23: {fileID: 1862339471} + m_Layer: 0 + m_Name: Table + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1862339470 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.098, y: 0.192, z: 0.734} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 261686743} + m_RootOrder: 3 +--- !u!23 &1862339471 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: ec9d8842c4331fa4282aff483e181842, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1862339472 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1862339473 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1862339469} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1892031236 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1892031237} + - 33: {fileID: 1892031239} + - 23: {fileID: 1892031238} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1892031237 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1892031236} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.657, z: 0} + m_LocalScale: {x: 0.7, y: 0.1, z: 0.7} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 811441983} + m_RootOrder: 1 +--- !u!23 &1892031238 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1892031236} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b8c527c7a697ee4408daa3ef17b495bb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1892031239 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1892031236} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1910243697 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1910243698} + - 33: {fileID: 1910243701} + - 65: {fileID: 1910243700} + - 23: {fileID: 1910243699} + - 114: {fileID: 1910243702} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1910243698 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1.3, z: 0.5} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1360509612} + m_RootOrder: 0 +--- !u!23 &1910243699 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1910243700 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1.4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1910243701 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1910243702 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1910243697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 079afddb0d7f05e40bcb44383f149949, type: 3} + m_Name: + m_EditorClassIdentifier: + Normal: {fileID: 2100000, guid: 041d9bdcafbd02b40946f96a381b16d5, type: 2} + Hovered: {fileID: 2100000, guid: 38c5f53e7f1806a4a9fc159718f63db0, type: 2} + Pressed: {fileID: 2100000, guid: 9cdad01e44871fc419f9f98ca8e08ec9, type: 2} + dragged: {fileID: 2100000, guid: 926919ce7f495aa44b10ce012bb13b43, type: 2} + heighlightButton: 0 +--- !u!1 &1948262688 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1948262689} + - 114: {fileID: 1948262690} + m_Layer: 0 + m_Name: DeviceHeight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1948262689 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1948262688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 676368209} + m_Father: {fileID: 511087344} + m_RootOrder: 0 +--- !u!114 &1948262690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1948262688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e038909a6547ef64f850aedb13ccc471, type: 3} + m_Name: + m_EditorClassIdentifier: + m_height: 1.3 +--- !u!1 &1982783166 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1982783167} + - 33: {fileID: 1982783169} + - 65: {fileID: 1982783168} + m_Layer: 1 + m_Name: Wall (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1982783167 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1982783166} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 5.54, y: 4.85, z: 0} + m_LocalScale: {x: 2, y: 20, z: 15} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 3 +--- !u!65 &1982783168 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1982783166} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1982783169 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1982783166} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2028313885 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2028313886} + - 222: {fileID: 2028313888} + - 114: {fileID: 2028313887} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2028313886 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2028313885} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1390033348} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2028313887 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2028313885} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Purple +--- !u!222 &2028313888 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2028313885} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..388d78f96211e80dcd1202c74646728b7ec59cb9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/ControllerManagerSample.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47f6e15cfe07a644095ae09e4fd298a4 +timeCreated: 1483542587 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..2ab533b684d4fca8bff376881f0802b31cd4027e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f10badc680b8e6548b66439d8783a53f +folderAsset: yes +timeCreated: 1483535676 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs new file mode 100644 index 0000000000000000000000000000000000000000..98cc9d5936ae32116d3970609a25f9cf7113fe55 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs @@ -0,0 +1,23 @@ +using HTC.UnityPlugin.Utility; +using UnityEngine; +using UnityEngine.UI; + +public class ChangeMaterialToButtonsColor : MonoBehaviour +{ + private Material m_mat; + + public void ChangeColor(Button btn) + { + if (m_mat == null) + { + m_mat = new Material(Shader.Find("Diffuse")); + } + + m_mat.SetColor("_Color", btn.colors.normalColor); + + var renderers = ListPool<MeshRenderer>.Get(); + GetComponentsInChildren(renderers); + for (int i = renderers.Count - 1; i >= 0; --i) { renderers[i].sharedMaterial = m_mat; } + ListPool<MeshRenderer>.Release(renderers); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a6f5e788b5e8483eb731958e905c58ff2068038d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ChangeMaterialToButtonsColor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ee012eca24e76e4dac8fce388ea951c +timeCreated: 1482909426 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs new file mode 100644 index 0000000000000000000000000000000000000000..ede558c9fba15ae7ccee0869b88e472c072389d9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs @@ -0,0 +1,63 @@ +using HTC.UnityPlugin.ColliderEvent; +using System.Collections.Generic; +using UnityEngine; + +public class ShowMenuOnClick : MonoBehaviour + , IColliderEventClickHandler + , IColliderEventPressEnterHandler + , IColliderEventPressExitHandler +{ + public GameObject effectMenu; + public ControllerManagerSample controllerManager; + [SerializeField] + private ColliderButtonEventData.InputButton m_activeButton = ColliderButtonEventData.InputButton.Trigger; + + public Transform buttonObject; + public Vector3 buttonDownDisplacement; + + private Vector3 buttonOriginPosition; + private bool menuVisible = false; + + private HashSet<ColliderButtonEventData> pressingEvents = new HashSet<ColliderButtonEventData>(); + + public ColliderButtonEventData.InputButton activeButton { get { return m_activeButton; } set { m_activeButton = value; } } + + private void Start() + { + buttonOriginPosition = buttonObject.position; + SetMenuVisible(menuVisible); + } + + public void SetMenuVisible(bool value) + { + menuVisible = value; + effectMenu.gameObject.SetActive(value); + controllerManager.rightLaserPointerActive = value; + controllerManager.leftLaserPointerActive = value; + controllerManager.UpdateActivity(); + } + + public void OnColliderEventClick(ColliderButtonEventData eventData) + { + if (pressingEvents.Contains(eventData) && pressingEvents.Count == 1) + { + SetMenuVisible(!menuVisible); + } + } + + public void OnColliderEventPressEnter(ColliderButtonEventData eventData) + { + if (eventData.button == m_activeButton && eventData.clickingHandlers.Contains(gameObject) && pressingEvents.Add(eventData) && pressingEvents.Count == 1) + { + buttonObject.position = buttonOriginPosition + buttonDownDisplacement; + } + } + + public void OnColliderEventPressExit(ColliderButtonEventData eventData) + { + if (pressingEvents.Remove(eventData) && pressingEvents.Count == 0) + { + buttonObject.position = buttonOriginPosition; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1a34fa06b3a019dcc4e8ce54aea33418dcc9b535 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/ShowMenuOnClick.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 82f13b6073133754e85a2098fffc779b +timeCreated: 1482979269 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs new file mode 100644 index 0000000000000000000000000000000000000000..d8a56380392ee8fb3636db060956064c297ac225 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs @@ -0,0 +1,42 @@ +using UnityEngine; +using System.Collections; + +public class SpawnObjectOnTriggerExit : MonoBehaviour +{ + public GameObject effectTarget; + public float delay = 1.0f; + + private Vector3 originPosition; + private Quaternion originRotation; + + private GameObject clonedTarget; + + private void Start() + { + clonedTarget = effectTarget; + originPosition = effectTarget.transform.localPosition; + originRotation = effectTarget.transform.localRotation; + } + + private void OnTriggerExit(Collider other) + { + if (other.gameObject == clonedTarget) + { + StopAllCoroutines(); + StartCoroutine(CopyTarget()); + } + } + + private IEnumerator CopyTarget() + { + yield return new WaitForSeconds(delay); + + var copy = Instantiate(effectTarget); + copy.transform.SetParent(effectTarget.transform.parent); + copy.transform.localPosition = originPosition; + copy.transform.localRotation = originRotation; + copy.name = effectTarget.name; + + clonedTarget = copy; + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9529e57c1b20b4021fb9a26004f50870b9659e9f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/6.ControllerManagerSample/Scripts/SpawnObjectOnTriggerExit.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 464cbdc121d1b72428c28867e893f7f4 +timeCreated: 1483535688 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample.meta new file mode 100644 index 0000000000000000000000000000000000000000..5aa1adac902f49e0eab842a743d38cdca2a89e26 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a73d2df6d39d1e64daf782e4e44904b2 +folderAsset: yes +timeCreated: 1489644158 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity new file mode 100644 index 0000000000000000000000000000000000000000..0ed4ce67ecba3467de3a70de0a488d40a90cf553 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity @@ -0,0 +1,4007 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &2147831 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2147832} + - 114: {fileID: 2147833} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2147832 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2147831} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 330306704} + m_RootOrder: 0 +--- !u!114 &2147833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2147831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device11 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &12161306 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 12161307} + - 114: {fileID: 12161308} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &12161307 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12161306} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2044996603} + m_RootOrder: 0 +--- !u!114 &12161308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12161306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device7 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &31757215 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 31757216} + - 114: {fileID: 31757217} + m_Layer: 0 + m_Name: DeviceHeight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &31757216 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 31757215} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1517009474} + - {fileID: 615557289} + - {fileID: 611809147} + - {fileID: 150944322} + m_Father: {fileID: 676368209} + m_RootOrder: 0 +--- !u!114 &31757217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 31757215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e038909a6547ef64f850aedb13ccc471, type: 3} + m_Name: + m_EditorClassIdentifier: + m_height: 1.3 +--- !u!4 &150944322 stripped +Transform: + m_PrefabParentObject: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_PrefabInternal: {fileID: 1397687082} +--- !u!1 &261686742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 261686743} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &261686743 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 261686742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1567158600} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!1 &330306703 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 330306704} + - 114: {fileID: 330306706} + - 114: {fileID: 330306705} + m_Layer: 0 + m_Name: 11 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &330306704 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330306703} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2147832} + m_Father: {fileID: 615557289} + m_RootOrder: 11 +--- !u!114 &330306705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330306703} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device11 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2147831} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &330306706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330306703} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device11 + m_roleValueInt: 0 +--- !u!1 &343589839 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 343589840} + - 114: {fileID: 343589841} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &343589840 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 343589839} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1474819612} + m_RootOrder: 0 +--- !u!114 &343589841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 343589839} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device4 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &368184230 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 368184231} + - 114: {fileID: 368184233} + - 114: {fileID: 368184232} + m_Layer: 0 + m_Name: 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &368184231 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 368184230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 861563731} + m_Father: {fileID: 615557289} + m_RootOrder: 3 +--- !u!114 &368184232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 368184230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device3 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 861563730} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &368184233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 368184230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device3 + m_roleValueInt: 0 +--- !u!1 &507884800 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 507884801} + - 114: {fileID: 507884803} + - 114: {fileID: 507884802} + m_Layer: 0 + m_Name: 14 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &507884801 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507884800} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1292079774} + m_Father: {fileID: 615557289} + m_RootOrder: 14 +--- !u!114 &507884802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507884800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device14 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1292079773} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &507884803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507884800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device14 + m_roleValueInt: 0 +--- !u!1 &580268734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 580268735} + - 114: {fileID: 580268737} + - 114: {fileID: 580268736} + m_Layer: 0 + m_Name: 13 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &580268735 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580268734} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 907988509} + m_Father: {fileID: 615557289} + m_RootOrder: 13 +--- !u!114 &580268736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580268734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device13 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 907988508} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &580268737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580268734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device13 + m_roleValueInt: 0 +--- !u!1001 &611809146 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 31757216} + m_Modifications: + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11477406, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11497058, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11493680, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_buttonEvents + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 11491370, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_buttonEvents + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 462580, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.x + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 462580, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.y + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 462580, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.z + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 446634, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.x + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 446634, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.y + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 446634, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_LocalScale.z + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 152968, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &611809147 stripped +Transform: + m_PrefabParentObject: {fileID: 450334, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 611809146} +--- !u!1 &615557288 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 615557289} + m_Layer: 0 + m_Name: Models + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &615557289 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 615557288} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2116285151} + - {fileID: 1727369471} + - {fileID: 1072407972} + - {fileID: 368184231} + - {fileID: 1474819612} + - {fileID: 1812545768} + - {fileID: 2014800163} + - {fileID: 2044996603} + - {fileID: 1364746206} + - {fileID: 1201133162} + - {fileID: 1385811154} + - {fileID: 330306704} + - {fileID: 1074699717} + - {fileID: 580268735} + - {fileID: 507884801} + - {fileID: 1449676440} + m_Father: {fileID: 31757216} + m_RootOrder: 1 +--- !u!4 &676368209 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 498762, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 709910319} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 31757216} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &709910319 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 107548, guid: cbfd31aaac017204885fcc03f0579a1a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 676368209} + m_Layer: 0 + m_Name: VROrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &752259955 stripped +GameObject: + m_PrefabParentObject: {fileID: 101448, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + m_PrefabInternal: {fileID: 2065756005} +--- !u!114 &752259956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 752259955} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d518a00ceacb57f4d94b3cc806d60f40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!114 &765078276 stripped +MonoBehaviour: + m_PrefabParentObject: {fileID: 11445754, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, + type: 2} + m_PrefabInternal: {fileID: 2065756005} + m_Script: {fileID: 11500000, guid: 78b94ded620fdd64ca175c8d9bad0ee6, type: 3} +--- !u!1 &860110754 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 860110755} + - 114: {fileID: 860110756} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &860110755 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 860110754} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2116285151} + m_RootOrder: 0 +--- !u!114 &860110756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 860110754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Hmd + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &861563730 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 861563731} + - 114: {fileID: 861563732} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &861563731 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 861563730} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 368184231} + m_RootOrder: 0 +--- !u!114 &861563732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 861563730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device3 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &887756411 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 887756412} + - 114: {fileID: 887756413} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &887756412 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 887756411} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1812545768} + m_RootOrder: 0 +--- !u!114 &887756413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 887756411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device5 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &907988508 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 907988509} + - 114: {fileID: 907988510} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &907988509 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 907988508} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 580268735} + m_RootOrder: 0 +--- !u!114 &907988510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 907988508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device13 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1072407971 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1072407972} + - 114: {fileID: 1072407974} + - 114: {fileID: 1072407973} + m_Layer: 0 + m_Name: 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1072407972 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1072407971} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1473566317} + m_Father: {fileID: 615557289} + m_RootOrder: 2 +--- !u!114 &1072407973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1072407971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device2 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1473566316} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1072407974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1072407971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device2 + m_roleValueInt: 0 +--- !u!1 &1074699716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1074699717} + - 114: {fileID: 1074699719} + - 114: {fileID: 1074699718} + m_Layer: 0 + m_Name: 12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1074699717 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1074699716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1943067404} + m_Father: {fileID: 615557289} + m_RootOrder: 12 +--- !u!114 &1074699718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1074699716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device12 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1943067403} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1074699719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1074699716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device12 + m_roleValueInt: 0 +--- !u!1 &1201133161 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1201133162} + - 114: {fileID: 1201133164} + - 114: {fileID: 1201133163} + m_Layer: 0 + m_Name: 9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1201133162 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1201133161} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1410376713} + m_Father: {fileID: 615557289} + m_RootOrder: 9 +--- !u!114 &1201133163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1201133161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device9 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1410376712} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1201133164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1201133161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device9 + m_roleValueInt: 0 +--- !u!1 &1292079773 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1292079774} + - 114: {fileID: 1292079775} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1292079774 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292079773} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 507884801} + m_RootOrder: 0 +--- !u!114 &1292079775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292079773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device14 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1304165887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1304165888} + - 114: {fileID: 1304165889} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1304165888 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1304165887} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1364746206} + m_RootOrder: 0 +--- !u!114 &1304165889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1304165887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device8 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1364746205 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1364746206} + - 114: {fileID: 1364746208} + - 114: {fileID: 1364746207} + m_Layer: 0 + m_Name: 8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364746206 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364746205} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1304165888} + m_Father: {fileID: 615557289} + m_RootOrder: 8 +--- !u!114 &1364746207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364746205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device8 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1304165887} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1364746208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364746205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device8 + m_roleValueInt: 0 +--- !u!1 &1371699278 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1371699280} + - 108: {fileID: 1371699279} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1371699279 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1371699280 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371699278} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1385811153 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1385811154} + - 114: {fileID: 1385811156} + - 114: {fileID: 1385811155} + m_Layer: 0 + m_Name: 10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1385811154 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1385811153} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1724751218} + m_Father: {fileID: 615557289} + m_RootOrder: 10 +--- !u!114 &1385811155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1385811153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device10 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1724751217} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1385811156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1385811153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device10 + m_roleValueInt: 0 +--- !u!1001 &1397687082 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 31757216} + m_Modifications: + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419526, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1508201428} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetActive + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1508201428} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetActive + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 11410246, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1919033508} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1919033508} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetActive + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressDown.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetActive + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 11493210, guid: 8c93af22a072961489d61255c39d9659, type: 2} + propertyPath: m_onVirtualPressUp.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 8c93af22a072961489d61255c39d9659, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1410376712 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1410376713} + - 114: {fileID: 1410376714} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1410376713 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410376712} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1201133162} + m_RootOrder: 0 +--- !u!114 &1410376714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1410376712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device9 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1449676439 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1449676440} + - 114: {fileID: 1449676442} + - 114: {fileID: 1449676441} + m_Layer: 0 + m_Name: 15 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1449676440 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449676439} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1667855200} + m_Father: {fileID: 615557289} + m_RootOrder: 15 +--- !u!114 &1449676441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449676439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device15 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1667855199} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1449676442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449676439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device15 + m_roleValueInt: 0 +--- !u!1 &1473566316 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1473566317} + - 114: {fileID: 1473566318} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1473566317 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1473566316} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1072407972} + m_RootOrder: 0 +--- !u!114 &1473566318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1473566316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device2 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1474819611 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1474819612} + - 114: {fileID: 1474819614} + - 114: {fileID: 1474819613} + m_Layer: 0 + m_Name: 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1474819612 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474819611} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 343589840} + m_Father: {fileID: 615557289} + m_RootOrder: 4 +--- !u!114 &1474819613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474819611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device4 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 343589839} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1474819614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1474819611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device4 + m_roleValueInt: 0 +--- !u!1 &1477956672 stripped +GameObject: + m_PrefabParentObject: {fileID: 130230, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + m_PrefabInternal: {fileID: 2065756005} +--- !u!114 &1477956676 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1477956672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1508201428 stripped +GameObject: + m_PrefabParentObject: {fileID: 191206, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 611809146} +--- !u!1 &1517009473 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 116882, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1517009474} + - 20: {fileID: 1517009477} + - 114: {fileID: 1517009475} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1517009474 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 404836, guid: cb3370c18187bb444b240cfb08dcc02f, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1517009473} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 31757216} + m_RootOrder: 0 +--- !u!114 &1517009475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1517009473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 326f9add24fafee418bdcd053a0324a0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!20 &1517009477 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2071970, guid: cb3370c18187bb444b240cfb08dcc02f, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1517009473} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.05 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &1567158599 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1567158600} + m_Layer: 0 + m_Name: Room + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1567158600 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567158599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1774619873} + m_Father: {fileID: 261686743} + m_RootOrder: 0 +--- !u!1 &1667855199 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1667855200} + - 114: {fileID: 1667855201} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1667855200 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1667855199} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1449676440} + m_RootOrder: 0 +--- !u!114 &1667855201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1667855199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device15 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1724751217 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1724751218} + - 114: {fileID: 1724751219} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1724751218 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1724751217} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1385811154} + m_RootOrder: 0 +--- !u!114 &1724751219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1724751217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device10 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1727369470 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1727369471} + - 114: {fileID: 1727369473} + - 114: {fileID: 1727369472} + m_Layer: 0 + m_Name: 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1727369471 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1727369470} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1767079606} + m_Father: {fileID: 615557289} + m_RootOrder: 1 +--- !u!114 &1727369472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1727369470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device1 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1767079605} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1727369473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1727369470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device1 + m_roleValueInt: 0 +--- !u!1 &1767079605 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1767079606} + - 114: {fileID: 1767079607} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1767079606 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1767079605} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1727369471} + m_RootOrder: 0 +--- !u!114 &1767079607 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1767079605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device1 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1774619872 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1774619873} + - 33: {fileID: 1774619876} + - 65: {fileID: 1774619875} + - 23: {fileID: 1774619874} + - 114: {fileID: 1774619877} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1774619873 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 10, y: 2, z: 10} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1567158600} + m_RootOrder: 0 +--- !u!23 &1774619874 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 179baae881749d24399a1d0d8e294181, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1774619875 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1774619876 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1774619877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1774619872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f753025abc16bb45bbc83939f863bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 676368209} + pivot: {fileID: 0} + fadeDuration: 0.3 + m_reticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + teleportButton: 1 +--- !u!1 &1805808956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1805808957} + - 114: {fileID: 1805808958} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1805808957 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1805808956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2014800163} + m_RootOrder: 0 +--- !u!114 &1805808958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1805808956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device6 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &1812545767 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1812545768} + - 114: {fileID: 1812545770} + - 114: {fileID: 1812545769} + m_Layer: 0 + m_Name: 5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1812545768 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1812545767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 887756412} + m_Father: {fileID: 615557289} + m_RootOrder: 5 +--- !u!114 &1812545769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1812545767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device5 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 887756411} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &1812545770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1812545767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device5 + m_roleValueInt: 0 +--- !u!1 &1872957507 stripped +GameObject: + m_PrefabParentObject: {fileID: 135972, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + m_PrefabInternal: {fileID: 2065756005} +--- !u!114 &1872957513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1872957507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cecce3f724b63824a858c964a8a84e1a, type: 3} + m_Name: + m_EditorClassIdentifier: + minimalMode: 0 +--- !u!1 &1919033508 stripped +GameObject: + m_PrefabParentObject: {fileID: 158376, guid: 12ee41758a687f54e98120e486ccd16e, type: 2} + m_PrefabInternal: {fileID: 611809146} +--- !u!1 &1943067403 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1943067404} + - 114: {fileID: 1943067405} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1943067404 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1943067403} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1074699717} + m_RootOrder: 0 +--- !u!114 &1943067405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1943067403} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device12 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!1 &2014800162 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2014800163} + - 114: {fileID: 2014800165} + - 114: {fileID: 2014800164} + m_Layer: 0 + m_Name: 6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2014800163 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2014800162} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1805808957} + m_Father: {fileID: 615557289} + m_RootOrder: 6 +--- !u!114 &2014800164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2014800162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device6 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1805808956} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &2014800165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2014800162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device6 + m_roleValueInt: 0 +--- !u!1 &2044996602 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2044996603} + - 114: {fileID: 2044996605} + - 114: {fileID: 2044996604} + m_Layer: 0 + m_Name: 7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2044996603 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2044996602} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 12161307} + m_Father: {fileID: 615557289} + m_RootOrder: 7 +--- !u!114 &2044996604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2044996602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device7 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 12161306} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &2044996605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2044996602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Device7 + m_roleValueInt: 0 +--- !u!1001 &2065756005 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22439012, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalPosition.z + value: 1.6 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: 1.2 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 1920 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 1080 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22453420, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22453420, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 0.9999827 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 106.5 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 163 + objectReference: {fileID: 0} + - target: {fileID: 22432026, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 106.5 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 213 + objectReference: {fileID: 0} + - target: {fileID: 22475682, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22478724, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22437368, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: -445 + objectReference: {fileID: 0} + - target: {fileID: 22424708, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: -445 + objectReference: {fileID: 0} + - target: {fileID: 22362282, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_RenderMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalScale.x + value: 0.002 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalScale.y + value: 0.002 + objectReference: {fileID: 0} + - target: {fileID: 22413782, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_LocalScale.z + value: 0.002 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -81.5 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22468210, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 63 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -170.5 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22419498, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 55 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -248 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22440330, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -318 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22452618, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -699 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22475208, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 662 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -81.5 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22461552, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 63 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -586.5 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22465084, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 887 + objectReference: {fileID: 0} + - target: {fileID: 22451350, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22451350, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22451350, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: -22 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22416914, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22494792, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22494792, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22494792, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22494792, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22494792, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 286 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 412 + objectReference: {fileID: 0} + - target: {fileID: 22495178, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 79 + objectReference: {fileID: 0} + - target: {fileID: 22496640, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 156.5 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 22422820, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 262.5 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 187 + objectReference: {fileID: 0} + - target: {fileID: 22407384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -144.5 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22495054, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 189 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -274 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22464804, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -349 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22437046, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -459 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22468984, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -534 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22463986, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -599 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22475172, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -664 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22405456, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -729 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22426772, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -819 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22491916, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -846 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 22475274, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 112.5 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -70 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 185 + objectReference: {fileID: 0} + - target: {fileID: 22491168, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 46 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 112.5 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 225 + objectReference: {fileID: 0} + - target: {fileID: 22497006, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22488450, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 215.5 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 291 + objectReference: {fileID: 0} + - target: {fileID: 22459290, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 46 + objectReference: {fileID: 0} + - target: {fileID: 22488220, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22488220, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22488220, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 381 + objectReference: {fileID: 0} + - target: {fileID: 22488220, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22488220, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 431 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22435062, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22462600, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22462600, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22462600, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 481 + objectReference: {fileID: 0} + - target: {fileID: 22462600, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22462600, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 644.5 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 287 + objectReference: {fileID: 0} + - target: {fileID: 22438874, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 46 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 530 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 1040 + objectReference: {fileID: 0} + - target: {fileID: 22402670, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 1090 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22486470, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 1160 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22431776, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 1190 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22479774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 1200 + objectReference: {fileID: 0} + - target: {fileID: 22451718, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -140 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 1200 + objectReference: {fileID: 0} + - target: {fileID: 22411604, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 22478724, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchoredPosition.y + value: -0.0030517578 + objectReference: {fileID: 0} + - target: {fileID: 22453420, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 765078276} + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ToggleBindingInterface + objectReference: {fileID: 0} + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 11441384, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 123654, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22492774, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 11445754, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_closeExCamOnEnable + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 101448, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 11431294, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + - {fileID: 11472886, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + m_ParentPrefab: {fileID: 100100000, guid: 26a034c83db7bcb4f99de4ddf57cbcfc, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &2116285150 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2116285151} + - 114: {fileID: 2116285153} + - 114: {fileID: 2116285152} + m_Layer: 0 + m_Name: 0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2116285151 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2116285150} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 860110755} + m_Father: {fileID: 615557289} + m_RootOrder: 0 +--- !u!114 &2116285152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2116285150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Hmd + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 860110754} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &2116285153 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2116285150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.DeviceRole + m_roleValueName: Hmd + m_roleValueInt: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..6194009d8630ce9b00d580c2b7360cef8109753a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/7.RoleBindingExample/RoleBindingExample.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc4e44a3b6c99684384abd378f45e9fe +timeCreated: 1489399830 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared.meta new file mode 100644 index 0000000000000000000000000000000000000000..ac0d2b0c0991e852bed2d6ebf89495545fd3393f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6b0ee42927055cc45975925d11ae7886 +folderAsset: yes +timeCreated: 1465285257 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..c482e16dc63ed6651b73c947a7a795ba3f0f458b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f2373a63470b4ad4d816a9567d392ccf +folderAsset: yes +timeCreated: 1458292341 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial new file mode 100644 index 0000000000000000000000000000000000000000..870f918faa3ed155059a484d6d7cdb96dc305a00 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial @@ -0,0 +1,13 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Bouncing + dynamicFriction: 0.6 + staticFriction: 0.6 + bounciness: 1 + frictionCombine: 0 + bounceCombine: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial.meta new file mode 100644 index 0000000000000000000000000000000000000000..93f77300dc60c2a1b67543862d00e78418b40122 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Bouncing.physicMaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da255c4dcecefcf44a886ce71ed58de2 +timeCreated: 1478247026 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat new file mode 100644 index 0000000000000000000000000000000000000000..c2ceb35d7ecd02ec0cb077aa27a6c09e4ea9ed6b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: DiceRed + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..34b4435648ca53052e3270e16d157b754b669e0f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceRed.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b8c527c7a697ee4408daa3ef17b495bb +timeCreated: 1477988403 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat new file mode 100644 index 0000000000000000000000000000000000000000..10d6263923297c82926c9e8267a43f54730dea11 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: DiceTable + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.332657, g: 0.30882353, b: 1, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..5b388bbc62b6afe50f5854291625e1f302de0171 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DiceTable.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec9d8842c4331fa4282aff483e181842 +timeCreated: 1477999241 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat new file mode 100644 index 0000000000000000000000000000000000000000..e0b0ba489628afb406b797a43a7c9d2a15db2e85 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: DraggedColor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0, g: 1, b: 1, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..f60e614d068677b4d172c5f15d6ebf2265ab6eb6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/DraggedColor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 926919ce7f495aa44b10ce012bb13b43 +timeCreated: 1480066298 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat new file mode 100644 index 0000000000000000000000000000000000000000..eaf0acc7e4a78f6f7a447cadd5222409ca5de47f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Floor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.5343187, g: 0.7352941, b: 0.47037196, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..06125782d6edfdb1be652dbef9b6ef239377da27 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/Floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 179baae881749d24399a1d0d8e294181 +timeCreated: 1477988356 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat new file mode 100644 index 0000000000000000000000000000000000000000..47ed5e74123a6bced67f5ada3865e411876611be --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: HighlightColor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 0.99286765, b: 0.28676468, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..cbdb09297abd7964ace0583a5d74f08ff6c76b6b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/HighlightColor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38c5f53e7f1806a4a9fc159718f63db0 +timeCreated: 1477988297 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat new file mode 100644 index 0000000000000000000000000000000000000000..6c38bfd855df56238332971eff1c67d2f4115c11 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: NormalColor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..75cd57cbb327610f6db679c9b078d3cecbf6210e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/NormalColor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 041d9bdcafbd02b40946f96a381b16d5 +timeCreated: 1477988294 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat new file mode 100644 index 0000000000000000000000000000000000000000..4da16abc53a2af66a8515ea96e1f7ddcff683a15 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: PressedColor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.46877897, g: 0.97794116, b: 0.2157223, a: 1} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..17fcd874e30469c2a66da7f418e222b94f102ad2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Materials/PressedColor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cdad01e44871fc419f9f98ca8e08ec9 +timeCreated: 1477988310 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..c3503240d0f5451ecfd4bd4119b97070335f0b48 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 48136d5d249cbb441ac1178a55a76485 +folderAsset: yes +timeCreated: 1515650125 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs new file mode 100644 index 0000000000000000000000000000000000000000..d527cb947000817715e0f383df37f95e2a9d285d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs @@ -0,0 +1,82 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using UnityEngine; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#endif + +namespace HTC.UnityPlugin.Vive +{ + // This script set custom device height depends on loaded VR device, + // Daydream need additional height for device so + // we can control camera-rig like using room-scale VR devices + public class CustomDeviceHeight : MonoBehaviour + { + [SerializeField] + private float m_height = 1.3f; + + public float height + { + get { return m_height; } + set { if (ChangeProp.Set(ref m_height, value)) { UpdateHeight(); } } + } + +#if UNITY_EDITOR + private void OnValidate() + { + if (Application.isPlaying && isActiveAndEnabled && VRModule.Active) + { + UpdateHeight(); + } + } +#endif + + private void OnEnable() + { + VRModule.onActiveModuleChanged += OnActiveModuleChanged; + VRModule.Initialize(); + + UpdateHeight(); + } + + private void OnDisable() + { + VRModule.onActiveModuleChanged -= OnActiveModuleChanged; + } + + private void OnActiveModuleChanged(VRModuleActiveEnum activeModule) + { + UpdateHeight(); + } + + public void UpdateHeight() + { + var pos = transform.localPosition; + + switch (VRModule.activeModule) + { + case VRModuleActiveEnum.DayDream: + transform.localPosition = new Vector3(pos.x, m_height, pos.z); + break; +#if VIU_OCULUSVR && !VIU_OCULUSVR_19_0_OR_NEWER + case VRModuleActiveEnum.OculusVR: + if (OVRPlugin.GetSystemHeadsetType().Equals(OVRPlugin.SystemHeadset.Oculus_Go)) + { + transform.localPosition = new Vector3(pos.x, m_height, pos.z); + } + break; +#endif +#if UNITY_2019_2_OR_NEWER && !UNITY_2019_3_OR_NEWER + case VRModuleActiveEnum.UnityNativeVR: + if (XRDevice.model.Equals("Oculus Go")) + { + transform.localPosition = new Vector3(pos.x, m_height, pos.z); + } + break; +#endif + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5acf90b9341cbb29820874c89e0895cc6476d61 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Examples/Shared/Scripts/CustomDeviceHeight.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: e038909a6547ef64f850aedb13ccc471 +timeCreated: 1515685186 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..3e58649e19a9db0fff8dd941290ab9e94acdd131 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 862b385c715c97b449065c85e8e0f4d1 +folderAsset: yes +timeCreated: 1478846512 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat new file mode 100644 index 0000000000000000000000000000000000000000..4affb3a625fda0206a810c54deb02f22e3e40dac --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GuideLine + m_Shader: {fileID: 4800000, guid: 9e9f91441a2f9e046a588efe5b089830, type: 3} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS + _LIGHTMAPPING_REALTIME _UVSEC_UV1 + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Occlusion + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 10 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _AlphaTestRef + second: 0.5 + data: + first: + name: _ZWrite + second: 0 + data: + first: + name: _Glossiness + second: 0.1 + data: + first: + name: _Metallic + second: 0.1 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 3 + data: + first: + name: _Lightmapping + second: 1 + data: + first: + name: _EmissionScaleUI + second: 2 + data: + first: + name: _InvFade + second: 1 + data: + first: + name: _Stencil + second: 0 + data: + first: + name: _StencilComp + second: 8 + data: + first: + name: _StencilOp + second: 0 + data: + first: + name: _StencilReadMask + second: 255 + data: + first: + name: _StencilWriteMask + second: 255 + data: + first: + name: _ColorMask + second: 15 + data: + first: + name: _UseUIAlphaClip + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1.3348337} + data: + first: + name: _Color + second: {r: 0, g: 1, b: 1, a: 0.2509804} + data: + first: + name: _SpecColor + second: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _EmissionColorWithMapUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + data: + first: + name: _TintColor + second: {r: 0, g: 1, b: 1, a: 0.109} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..b0c4884dfabcbeafc18d0bd7b74d3dba91b21886 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLine.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2807c77f22a845e4f9765e00034f4446 +timeCreated: 1476858466 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat new file mode 100644 index 0000000000000000000000000000000000000000..6439bbede8f152bd4a47f5e91af7abe0e7391b29 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GuideLineWhite + m_Shader: {fileID: 4800000, guid: 9e9f91441a2f9e046a588efe5b089830, type: 3} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS + _LIGHTMAPPING_REALTIME _UVSEC_UV1 + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Occlusion + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 10 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _AlphaTestRef + second: 0.5 + data: + first: + name: _ZWrite + second: 0 + data: + first: + name: _Glossiness + second: 0.1 + data: + first: + name: _Metallic + second: 0.1 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 3 + data: + first: + name: _Lightmapping + second: 1 + data: + first: + name: _EmissionScaleUI + second: 2 + data: + first: + name: _InvFade + second: 1 + data: + first: + name: _Stencil + second: 0 + data: + first: + name: _StencilComp + second: 8 + data: + first: + name: _StencilOp + second: 0 + data: + first: + name: _StencilReadMask + second: 255 + data: + first: + name: _StencilWriteMask + second: 255 + data: + first: + name: _ColorMask + second: 15 + data: + first: + name: _UseUIAlphaClip + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1.3348337} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 0.2509804} + data: + first: + name: _SpecColor + second: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _EmissionColorWithMapUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + data: + first: + name: _TintColor + second: {r: 0, g: 1, b: 1, a: 0.109} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..cb89ba921cc9de6c7e55bd258983a778948dbe2c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineWhite.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: abc43bcd82cb6b8409bc484d5d9816d2 +timeCreated: 1482895937 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat new file mode 100644 index 0000000000000000000000000000000000000000..fdc51de16c302e8e225c9c4c920a069b17912c04 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GuideLineYellow + m_Shader: {fileID: 4800000, guid: 9e9f91441a2f9e046a588efe5b089830, type: 3} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS + _LIGHTMAPPING_REALTIME _UVSEC_UV1 + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Occlusion + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 10 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _AlphaTestRef + second: 0.5 + data: + first: + name: _ZWrite + second: 0 + data: + first: + name: _Glossiness + second: 0.1 + data: + first: + name: _Metallic + second: 0.1 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 3 + data: + first: + name: _Lightmapping + second: 1 + data: + first: + name: _EmissionScaleUI + second: 2 + data: + first: + name: _InvFade + second: 1 + data: + first: + name: _Stencil + second: 0 + data: + first: + name: _StencilComp + second: 8 + data: + first: + name: _StencilOp + second: 0 + data: + first: + name: _StencilReadMask + second: 255 + data: + first: + name: _StencilWriteMask + second: 255 + data: + first: + name: _ColorMask + second: 15 + data: + first: + name: _UseUIAlphaClip + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1.3348337} + data: + first: + name: _Color + second: {r: 1, g: 0.99599993, b: 0, a: 0.2509804} + data: + first: + name: _SpecColor + second: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _EmissionColorWithMapUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + data: + first: + name: _TintColor + second: {r: 0, g: 1, b: 1, a: 0.109} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..7d49ce399080c62abe9a27a37ddcbc83b1c2c071 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/GuideLineYellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d2435df2508a1048b42248ac6d63074 +timeCreated: 1490087571 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat new file mode 100644 index 0000000000000000000000000000000000000000..ee35d9a07cff2847d71965354515751a297bdded --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat @@ -0,0 +1,258 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Reticle + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS _LIGHTMAPPING_REALTIME + _UVSEC_UV1 + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Occlusion + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Ramp + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MainBump + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _AlphaTestRef + second: 0.5 + data: + first: + name: _Shininess + second: 0.2 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.1 + data: + first: + name: _Metallic + second: 0.1 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Lightmapping + second: 1 + data: + first: + name: _EmissionScaleUI + second: 2 + data: + first: + name: _InvFade + second: 0.9 + data: + first: + name: _Stencil + second: 0 + data: + first: + name: _StencilComp + second: 8 + data: + first: + name: _StencilOp + second: 0 + data: + first: + name: _StencilReadMask + second: 255 + data: + first: + name: _StencilWriteMask + second: 255 + data: + first: + name: _ColorMask + second: 15 + data: + first: + name: _UseUIAlphaClip + second: 0 + data: + first: + name: _BumpAmt + second: 10 + data: + first: + name: _Outline + second: 0.005 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1.3348337} + data: + first: + name: _Color + second: {r: 1, g: 0.9647059, b: 0, a: 0.2509804} + data: + first: + name: _SpecColor + second: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _EmissionColorWithMapUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + data: + first: + name: _TintColor + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.2509804} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Specular + second: {r: 0, g: 0, b: 0, a: 0} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..61be62f02dc8f4d1983d9a2c365eb2eaa3ca698b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/Reticle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3320905fb6f6bd54297f26399d87c525 +timeCreated: 1458184668 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat new file mode 100644 index 0000000000000000000000000000000000000000..07178b66a8c44bae021131c97aa716e02f534813 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat @@ -0,0 +1,258 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ReticleRed + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS _LIGHTMAPPING_REALTIME + _UVSEC_UV1 + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Occlusion + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Ramp + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MainBump + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _AlphaTestRef + second: 0.5 + data: + first: + name: _Shininess + second: 0.2 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.1 + data: + first: + name: _Metallic + second: 0.1 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Lightmapping + second: 1 + data: + first: + name: _EmissionScaleUI + second: 2 + data: + first: + name: _InvFade + second: 0.9 + data: + first: + name: _Stencil + second: 0 + data: + first: + name: _StencilComp + second: 8 + data: + first: + name: _StencilOp + second: 0 + data: + first: + name: _StencilReadMask + second: 255 + data: + first: + name: _StencilWriteMask + second: 255 + data: + first: + name: _ColorMask + second: 15 + data: + first: + name: _UseUIAlphaClip + second: 0 + data: + first: + name: _BumpAmt + second: 10 + data: + first: + name: _Outline + second: 0.005 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1.3348337} + data: + first: + name: _Color + second: {r: 1, g: 0, b: 0, a: 0.2509804} + data: + first: + name: _SpecColor + second: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _EmissionColorWithMapUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecularColor + second: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + data: + first: + name: _TintColor + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.2509804} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Specular + second: {r: 0, g: 0, b: 0, a: 0} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..4e8f56c42d0cc3d1aef70eeeae5785d7c3277bf5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Materials/ReticleRed.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50143b523bb80ca4696e4d922443e44f +timeCreated: 1527229240 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8607cd155b029ad2df6f924b5175a96b8366fadb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2117426f9d0f43742ae43b86b4493679 +folderAsset: yes +timeCreated: 1470387008 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab new file mode 100644 index 0000000000000000000000000000000000000000..0b5f3511d3ff0f1914c481fbb19897861cd01ff1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab @@ -0,0 +1,733 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &101730 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 458504} + - 114: {fileID: 11406716} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116882 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 404836} + - 20: {fileID: 2071970} + - 124: {fileID: 12406598} + - 81: {fileID: 8189340} + - 114: {fileID: 11450330} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134036 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475582} + - 114: {fileID: 11464814} + - 114: {fileID: 11456816} + m_Layer: 0 + m_Name: Tracker3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134682 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 477402} + - 114: {fileID: 11401166} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &139784 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 484838} + - 114: {fileID: 11460048} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156092 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 430650} + - 114: {fileID: 11436490} + - 114: {fileID: 11450602} + m_Layer: 0 + m_Name: RightHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167866 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475928} + - 114: {fileID: 11474168} + - 114: {fileID: 11451248} + m_Layer: 0 + m_Name: Tracker2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &175660 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 463184} + m_Layer: 0 + m_Name: ViveCameraRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &181226 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 418338} + - 114: {fileID: 11458044} + - 114: {fileID: 11472306} + m_Layer: 0 + m_Name: Tracker1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183082 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 451864} + - 114: {fileID: 11460300} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188906 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 470082} + - 114: {fileID: 11422458} + - 114: {fileID: 11489386} + m_Layer: 0 + m_Name: LeftHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192544 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 454686} + - 114: {fileID: 11401118} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &404836 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116882} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 463184} + m_RootOrder: 0 +--- !u!4 &418338 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 484838} + m_Father: {fileID: 463184} + m_RootOrder: 3 +--- !u!4 &430650 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 477402} + m_Father: {fileID: 463184} + m_RootOrder: 1 +--- !u!4 &451864 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183082} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 475582} + m_RootOrder: 0 +--- !u!4 &454686 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192544} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 475928} + m_RootOrder: 0 +--- !u!4 &458504 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101730} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 470082} + m_RootOrder: 0 +--- !u!4 &463184 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 404836} + - {fileID: 430650} + - {fileID: 470082} + - {fileID: 418338} + - {fileID: 475928} + - {fileID: 475582} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &470082 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188906} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 458504} + m_Father: {fileID: 463184} + m_RootOrder: 2 +--- !u!4 &475582 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134036} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 451864} + m_Father: {fileID: 463184} + m_RootOrder: 5 +--- !u!4 &475928 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167866} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 454686} + m_Father: {fileID: 463184} + m_RootOrder: 4 +--- !u!4 &477402 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134682} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 430650} + m_RootOrder: 0 +--- !u!4 &484838 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139784} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 418338} + m_RootOrder: 0 +--- !u!20 &2071970 +Camera: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116882} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.05 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!81 &8189340 +AudioListener: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116882} + m_Enabled: 1 +--- !u!114 &11401118 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11401166 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11406716 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11422458 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 +--- !u!114 &11436490 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 +--- !u!114 &11450330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 326f9add24fafee418bdcd053a0324a0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11450602 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11451248 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11456816 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11458044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 1 +--- !u!114 &11460048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11460300 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11464814 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 3 +--- !u!114 &11472306 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11474168 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 2 +--- !u!114 &11489386 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!124 &12406598 +Behaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116882} + m_Enabled: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 175660} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..0c1d3a464442aed835eb40bc05484a3045bee2cd --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCameraRig.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb3370c18187bb444b240cfb08dcc02f +timeCreated: 1495996627 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab new file mode 100644 index 0000000000000000000000000000000000000000..ebda2c6acf9788a18cea70368656a568a2819f38 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab @@ -0,0 +1,549 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &116174 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 497380} + - 65: {fileID: 6577642} + m_Layer: 0 + m_Name: BoxCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119500 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 405076} + - 54: {fileID: 5412376} + - 114: {fileID: 11474546} + m_Layer: 0 + m_Name: ColliderEventCaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &121978 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 429460} + - 65: {fileID: 6522414} + m_Layer: 0 + m_Name: BoxCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &131342 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 487242} + - 135: {fileID: 13587540} + m_Layer: 0 + m_Name: SphereCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &137016 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 448982} + - 114: {fileID: 11472020} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147962 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 454418} + - 54: {fileID: 5403124} + - 114: {fileID: 11487946} + m_Layer: 0 + m_Name: ColliderEventCaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &150154 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 415520} + - 114: {fileID: 11417838} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &151838 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 442356} + - 135: {fileID: 13593168} + m_Layer: 0 + m_Name: SphereCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156484 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 453072} + - 114: {fileID: 11426326} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &160224 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475840} + m_Layer: 0 + m_Name: ViveColliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &175226 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 440850} + - 114: {fileID: 11414188} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &405076 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119500} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 487242} + - {fileID: 497380} + m_Father: {fileID: 448982} + m_RootOrder: 0 +--- !u!4 &415520 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150154} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 448982} + m_Father: {fileID: 475840} + m_RootOrder: 1 +--- !u!4 &429460 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121978} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.115600005} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 454418} + m_RootOrder: 1 +--- !u!4 &440850 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 454418} + m_Father: {fileID: 453072} + m_RootOrder: 0 +--- !u!4 &442356 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151838} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 454418} + m_RootOrder: 0 +--- !u!4 &448982 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137016} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 405076} + m_Father: {fileID: 415520} + m_RootOrder: 0 +--- !u!4 &453072 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156484} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 440850} + m_Father: {fileID: 475840} + m_RootOrder: 0 +--- !u!4 &454418 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 442356} + - {fileID: 429460} + m_Father: {fileID: 440850} + m_RootOrder: 0 +--- !u!4 &475840 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160224} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 453072} + - {fileID: 415520} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &487242 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 405076} + m_RootOrder: 0 +--- !u!4 &497380 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116174} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.115600005} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 405076} + m_RootOrder: 1 +--- !u!54 &5403124 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147962} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &5412376 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119500} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &6522414 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121978} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.05, y: 0.03, z: 0.2} + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &6577642 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116174} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.05, y: 0.03, z: 0.2} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &11414188 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 147962} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11417838 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand +--- !u!114 &11426326 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand +--- !u!114 &11472020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 119500} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11474546 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ef2272bf13df804f93135bad41885ae, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonEventSource: 3 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_buttonEvents: 7 +--- !u!114 &11487946 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ef2272bf13df804f93135bad41885ae, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonEventSource: 3 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_buttonEvents: 7 +--- !u!135 &13587540 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131342} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.06 + m_Center: {x: 0, y: 0, z: 0} +--- !u!135 &13593168 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151838} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.06 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 160224} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..4db6fd57168a57423d3e69380f041245973022c6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveColliders.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b3a4efa04a7cf2428e0835b20f15fdc +timeCreated: 1477968007 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab new file mode 100644 index 0000000000000000000000000000000000000000..5c9ac895935ea510331486e713c17359dfe8750e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab @@ -0,0 +1,1349 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100038 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 496568} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &112326 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 419526} + - 114: {fileID: 11410246} + - 114: {fileID: 11493210} + m_Layer: 0 + m_Name: ViveCurvePointers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123148 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 486948} + - 114: {fileID: 11431676} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &126794 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 494740} + - 114: {fileID: 11451150} + - 114: {fileID: 11447226} + - 114: {fileID: 11448250} + - 114: {fileID: 11437668} + m_Layer: 0 + m_Name: EventRaycaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &131212 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 421126} + - 114: {fileID: 11483274} + - 114: {fileID: 11448620} + - 114: {fileID: 11496304} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148278 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 421890} + - 114: {fileID: 11437806} + - 114: {fileID: 11473206} + - 114: {fileID: 11478412} + - 114: {fileID: 11499974} + m_Layer: 0 + m_Name: EventRaycaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &149512 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434936} + - 33: {fileID: 3391988} + - 23: {fileID: 2337162} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &151592 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 460512} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &167350 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 449326} + - 33: {fileID: 3359846} + - 23: {fileID: 2387262} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &171358 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 464708} + - 114: {fileID: 11498228} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &171958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 459758} + - 114: {fileID: 11487576} + - 120: {fileID: 12027144} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &173962 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 409120} + - 33: {fileID: 3382680} + - 23: {fileID: 2328780} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &179616 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482800} + - 114: {fileID: 11439286} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &182204 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 419388} + - 114: {fileID: 11427138} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &185714 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 465812} + - 114: {fileID: 11482988} + - 114: {fileID: 11434118} + - 114: {fileID: 11476802} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &185890 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 416210} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &187000 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 427866} + - 114: {fileID: 11471466} + - 120: {fileID: 12083068} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &195776 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 418128} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &198796 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 450438} + - 33: {fileID: 3362918} + - 23: {fileID: 2392060} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &409120 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173962} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 416210} + m_RootOrder: 0 +--- !u!4 &416210 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 409120} + m_Father: {fileID: 464708} + m_RootOrder: 0 +--- !u!4 &418128 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195776} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 449326} + m_Father: {fileID: 482800} + m_RootOrder: 0 +--- !u!4 &419388 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182204} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 421126} + - {fileID: 482800} + - {fileID: 427866} + m_Father: {fileID: 419526} + m_RootOrder: 0 +--- !u!4 &419526 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112326} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 419388} + - {fileID: 486948} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &421126 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131212} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 421890} + m_Father: {fileID: 419388} + m_RootOrder: 0 +--- !u!4 &421890 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148278} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 421126} + m_RootOrder: 0 +--- !u!4 &427866 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 419388} + m_RootOrder: 2 +--- !u!4 &434936 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149512} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 460512} + m_RootOrder: 0 +--- !u!4 &449326 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167350} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 418128} + m_RootOrder: 0 +--- !u!4 &450438 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 496568} + m_RootOrder: 0 +--- !u!4 &459758 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171958} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 486948} + m_RootOrder: 2 +--- !u!4 &460512 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151592} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 434936} + m_Father: {fileID: 464708} + m_RootOrder: 1 +--- !u!4 &464708 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171358} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 416210} + - {fileID: 460512} + m_Father: {fileID: 486948} + m_RootOrder: 1 +--- !u!4 &465812 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185714} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 494740} + m_Father: {fileID: 486948} + m_RootOrder: 0 +--- !u!4 &482800 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179616} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 418128} + - {fileID: 496568} + m_Father: {fileID: 419388} + m_RootOrder: 1 +--- !u!4 &486948 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123148} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 465812} + - {fileID: 464708} + - {fileID: 459758} + m_Father: {fileID: 419526} + m_RootOrder: 1 +--- !u!4 &494740 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126794} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 465812} + m_RootOrder: 0 +--- !u!4 &496568 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100038} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 450438} + m_Father: {fileID: 482800} + m_RootOrder: 1 +--- !u!23 &2328780 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173962} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2337162 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149512} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2387262 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167350} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2392060 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198796} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3359846 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167350} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3362918 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198796} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3382680 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173962} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3391988 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149512} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11410246 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93ab9066e8186884da64ee239717c741, type: 3} + m_Name: + m_EditorClassIdentifier: + m_combineInputsOperator: 0 + m_inputs: + - viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + button: 1 + m_onVirtualPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualPressDown: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 123148} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualPressUp: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 123148} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_toggleGameObjectOnVirtualClick: [] + m_toggleComponentOnVirtualClick: [] +--- !u!114 &11427138 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 +--- !u!114 &11431676 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 +--- !u!114 &11434118 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11437668 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4da06ab1072a44a419406789d8054158, type: 3} + m_Name: + m_EditorClassIdentifier: + velocity: 1.5 + gravity: {x: 0, y: -1, z: 0} +--- !u!114 &11437806 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 3 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11439286 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11437806} + reticleForDefaultRay: {fileID: 496568} + reticleForCurvedRay: {fileID: 418128} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, + type: 2} + reticleRenderer: + - {fileID: 2387262} +--- !u!114 &11447226 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!114 &11448250 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11448620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11451150 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 3 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11471466 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11437806} + lineRenderer: {fileID: 12083068} +--- !u!114 &11473206 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!114 &11476802 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11478412 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11482988 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 126794} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 171958} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 171358} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11483274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 148278} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 187000} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 179616} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11487576 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11451150} + lineRenderer: {fileID: 12027144} +--- !u!114 &11493210 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93ab9066e8186884da64ee239717c741, type: 3} + m_Name: + m_EditorClassIdentifier: + m_combineInputsOperator: 0 + m_inputs: + - viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + button: 1 + m_onVirtualPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualPressDown: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 182204} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onVirtualPressUp: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 182204} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ViveInputVirtualButton+OutputEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_toggleGameObjectOnVirtualClick: [] + m_toggleComponentOnVirtualClick: [] +--- !u!114 &11496304 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11498228 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11451150} + reticleForDefaultRay: {fileID: 460512} + reticleForCurvedRay: {fileID: 416210} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, + type: 2} + reticleRenderer: + - {fileID: 2328780} +--- !u!114 &11499974 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4da06ab1072a44a419406789d8054158, type: 3} + m_Name: + m_EditorClassIdentifier: + velocity: 1.5 + gravity: {x: 0, y: -1, z: 0} +--- !u!120 &12027144 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171958} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!120 &12083068 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187000} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 112326} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..36da42cdcb29de6ae257b1e3a719202a381d1d33 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveCurvePointers.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c93af22a072961489d61255c39d9659 +timeCreated: 1497970233 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab new file mode 100644 index 0000000000000000000000000000000000000000..a9b27b880a16e5df8be9b35b71c7ca9798911c8f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab @@ -0,0 +1,1197 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &103070 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 479270} + - 114: {fileID: 11495984} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &103092 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434494} + - 114: {fileID: 11491370} + - 114: {fileID: 11497058} + - 114: {fileID: 11480554} + m_Layer: 0 + m_Name: EventRaycaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &107412 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434320} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &119652 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 452790} + - 33: {fileID: 3309724} + - 23: {fileID: 2371780} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &125872 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 471106} + - 114: {fileID: 11477482} + - 120: {fileID: 12070334} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &132546 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 476770} + - 114: {fileID: 11493680} + - 114: {fileID: 11477406} + - 114: {fileID: 11461550} + m_Layer: 0 + m_Name: EventRaycaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &138744 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424628} + - 114: {fileID: 11470716} + - 114: {fileID: 11456614} + - 114: {fileID: 11436958} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143394 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475326} + - 33: {fileID: 3338718} + - 23: {fileID: 2332894} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145766 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 481890} + - 114: {fileID: 11421756} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &152968 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 450334} + m_Layer: 0 + m_Name: VivePointers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &153366 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400992} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &158376 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 478616} + - 114: {fileID: 11469040} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161416 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 462580} + - 33: {fileID: 3387576} + - 23: {fileID: 2381596} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164930 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 446634} + - 33: {fileID: 3319532} + - 23: {fileID: 2333998} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167322 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 458240} + - 114: {fileID: 11479152} + - 114: {fileID: 11482874} + - 114: {fileID: 11464294} + m_Layer: 0 + m_Name: PoseTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &179636 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 433756} + - 114: {fileID: 11477806} + - 120: {fileID: 12028396} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &189930 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475950} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &189970 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 498084} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &191206 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 498766} + - 114: {fileID: 11495674} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400992 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153366} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 446634} + m_Father: {fileID: 479270} + m_RootOrder: 1 +--- !u!4 &424628 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 434494} + m_Father: {fileID: 478616} + m_RootOrder: 0 +--- !u!4 &433756 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179636} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 478616} + m_RootOrder: 2 +--- !u!4 &434320 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 475326} + m_Father: {fileID: 479270} + m_RootOrder: 0 +--- !u!4 &434494 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 424628} + m_RootOrder: 0 +--- !u!4 &446634 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164930} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 400992} + m_RootOrder: 0 +--- !u!4 &450334 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152968} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 498766} + - {fileID: 478616} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &452790 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119652} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 475950} + m_RootOrder: 0 +--- !u!4 &458240 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167322} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 476770} + m_Father: {fileID: 498766} + m_RootOrder: 0 +--- !u!4 &462580 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161416} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 498084} + m_RootOrder: 0 +--- !u!4 &471106 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 498766} + m_RootOrder: 2 +--- !u!4 &475326 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143394} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 434320} + m_RootOrder: 0 +--- !u!4 &475950 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189930} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 452790} + m_Father: {fileID: 481890} + m_RootOrder: 0 +--- !u!4 &476770 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132546} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 458240} + m_RootOrder: 0 +--- !u!4 &478616 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 424628} + - {fileID: 479270} + - {fileID: 433756} + m_Father: {fileID: 450334} + m_RootOrder: 1 +--- !u!4 &479270 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 434320} + - {fileID: 400992} + m_Father: {fileID: 478616} + m_RootOrder: 1 +--- !u!4 &481890 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 475950} + - {fileID: 498084} + m_Father: {fileID: 498766} + m_RootOrder: 1 +--- !u!4 &498084 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189970} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 462580} + m_Father: {fileID: 481890} + m_RootOrder: 1 +--- !u!4 &498766 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191206} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 458240} + - {fileID: 481890} + - {fileID: 471106} + m_Father: {fileID: 450334} + m_RootOrder: 0 +--- !u!23 &2332894 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143394} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2333998 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164930} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2371780 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119652} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2381596 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161416} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3309724 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119652} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3319532 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164930} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3338718 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143394} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3387576 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161416} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11421756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11493680} + reticleForDefaultRay: {fileID: 498084} + reticleForCurvedRay: {fileID: 475950} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, + type: 2} + reticleRenderer: + - {fileID: 2371780} + - {fileID: 2381596} +--- !u!114 &11436958 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11456614 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11461550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11464294 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11469040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 +--- !u!114 &11470716 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 103092} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 179636} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 103070} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11477406 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!114 &11477482 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11493680} + lineRenderer: {fileID: 12070334} +--- !u!114 &11477806 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11491370} + lineRenderer: {fileID: 12028396} +--- !u!114 &11479152 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 132546} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 125872} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 145766} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11480554 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11482874 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11491370 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 3 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11493680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 3 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11495674 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 +--- !u!114 &11495984 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11491370} + reticleForDefaultRay: {fileID: 400992} + reticleForCurvedRay: {fileID: 434320} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, + type: 2} + reticleRenderer: + - {fileID: 2332894} + - {fileID: 2333998} +--- !u!114 &11497058 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!120 &12028396 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179636} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!120 &12070334 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125872} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 152968} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..7ade5250acfeaed92294081b0d6ce5624c47048f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/VivePointers.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 12ee41758a687f54e98120e486ccd16e +timeCreated: 1470387014 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab new file mode 100644 index 0000000000000000000000000000000000000000..83f76bad51b62034e3410093198e1c8049e668f2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab @@ -0,0 +1,4298 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &107548 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 498762} + m_Layer: 0 + m_Name: ViveRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &107740 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 481378} + - 114: {fileID: 11416844} + - 114: {fileID: 11480700} + - 114: {fileID: 11423792} + m_Layer: 0 + m_Name: StablizedDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &108178 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 496820} + - 33: {fileID: 3398306} + - 135: {fileID: 13525442} + - 23: {fileID: 2322310} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &108378 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 476058} + - 54: {fileID: 5448616} + - 114: {fileID: 11485264} + m_Layer: 0 + m_Name: RigidbodyDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &108766 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 489520} + - 114: {fileID: 11406126} + - 120: {fileID: 12081958} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &111470 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 447914} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &113284 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 413592} + - 33: {fileID: 3312818} + - 23: {fileID: 2367626} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &114414 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 418032} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &114796 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 441074} + - 114: {fileID: 11440968} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &115884 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 431494} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &117332 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 444792} + - 114: {fileID: 11485484} + m_Layer: 0 + m_Name: OpenVRRenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118284 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 453310} + m_Layer: 0 + m_Name: Grabber + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118426 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 413832} + - 114: {fileID: 11461172} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118436 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 401734} + - 65: {fileID: 6506750} + m_Layer: 0 + m_Name: BoxCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119468 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 497448} + - 114: {fileID: 11455550} + - 114: {fileID: 11412748} + - 114: {fileID: 11408242} + m_Layer: 0 + m_Name: StablizedDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &121498 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 461866} + - 114: {fileID: 11452568} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &122586 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 416412} + - 114: {fileID: 11402006} + m_Layer: 0 + m_Name: OpenVRRenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123566 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 447830} + - 114: {fileID: 11449718} + - 114: {fileID: 11488408} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &124284 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 404002} + - 33: {fileID: 3395824} + - 23: {fileID: 2398006} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &124554 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 439814} + - 114: {fileID: 11431902} + - 114: {fileID: 11405614} + - 114: {fileID: 11476536} + m_Layer: 0 + m_Name: StablizedDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &125382 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420334} + - 114: {fileID: 11429604} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127668 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 467608} + - 114: {fileID: 11445368} + - 120: {fileID: 12058722} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &129918 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420420} + - 114: {fileID: 11452356} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &129952 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 438626} + - 114: {fileID: 11487112} + m_Layer: 0 + m_Name: Tracker2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &136122 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 446372} + m_Layer: 0 + m_Name: RenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &136278 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420404} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &137262 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 497386} + m_Layer: 0 + m_Name: LaserPointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &137356 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 475462} + m_Layer: 0 + m_Name: CustomModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &142646 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 470168} + - 65: {fileID: 6579128} + m_Layer: 0 + m_Name: BoxCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142976 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 426158} + - 114: {fileID: 11496538} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143056 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 493328} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &143222 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 428236} + m_Layer: 0 + m_Name: ViveTrackers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143998 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 466922} + m_Layer: 0 + m_Name: CurvePointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &144936 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 408190} + m_Layer: 0 + m_Name: CustomModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &145626 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 459962} + - 114: {fileID: 11492502} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148530 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 430332} + - 114: {fileID: 11406484} + - 114: {fileID: 11449010} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148634 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 450478} + - 114: {fileID: 11434722} + - 120: {fileID: 12010886} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152668 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 471794} + - 114: {fileID: 11463628} + m_Layer: 0 + m_Name: Tracker1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &153602 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 466742} + - 114: {fileID: 11496784} + - 114: {fileID: 11463328} + - 114: {fileID: 11495122} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &155060 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 443576} + - 135: {fileID: 13575112} + m_Layer: 0 + m_Name: SphereCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156202 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 408806} + - 114: {fileID: 11474622} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156528 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 425908} + - 114: {fileID: 11460700} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156530 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 467342} + - 33: {fileID: 3360018} + - 23: {fileID: 2309482} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156828 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 456390} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156852 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 401538} + - 114: {fileID: 11483628} + - 114: {fileID: 11415316} + - 114: {fileID: 11446364} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161794 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 477268} + - 114: {fileID: 11448822} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164482 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 495004} + - 114: {fileID: 11489584} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167174 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 407740} + - 114: {fileID: 11442394} + m_Layer: 0 + m_Name: OpenVRRenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167582 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 439088} + m_Layer: 0 + m_Name: RenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168160 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482200} + - 54: {fileID: 5498330} + - 114: {fileID: 11490446} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168388 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 430026} + - 114: {fileID: 11490702} + - 120: {fileID: 12022086} + m_Layer: 0 + m_Name: GuideLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168570 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 413152} + - 33: {fileID: 3386626} + - 23: {fileID: 2343150} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &169832 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 455230} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &174124 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 414446} + - 54: {fileID: 5419818} + - 114: {fileID: 11482040} + m_Layer: 0 + m_Name: Caster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &174588 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 488940} + - 54: {fileID: 5454030} + - 114: {fileID: 11456374} + m_Layer: 0 + m_Name: RigidbodyDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &174722 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 472258} + - 33: {fileID: 3354740} + - 135: {fileID: 13546012} + - 23: {fileID: 2374858} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &178720 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 465406} + - 114: {fileID: 11477294} + m_Layer: 0 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &178932 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 406058} + - 33: {fileID: 3337238} + - 23: {fileID: 2310982} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &180602 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 457462} + - 135: {fileID: 13552738} + m_Layer: 0 + m_Name: SphereCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &180974 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 470144} + - 33: {fileID: 3360560} + - 23: {fileID: 2308762} + m_Layer: 0 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &187742 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 456314} + - 33: {fileID: 3387244} + - 65: {fileID: 6571638} + - 23: {fileID: 2358670} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188274 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 477432} + - 33: {fileID: 3395590} + - 23: {fileID: 2342164} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188944 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 437544} + - 114: {fileID: 11481170} + m_Layer: 0 + m_Name: OpenVRRenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189358 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 445028} + m_Layer: 0 + m_Name: LaserPointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &190106 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 495908} + - 114: {fileID: 11470256} + - 114: {fileID: 11494136} + - 114: {fileID: 11448600} + m_Layer: 0 + m_Name: StablizedDeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &193960 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 417228} + m_Layer: 0 + m_Name: CurvePointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &194242 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400244} + m_Layer: 0 + m_Name: Grabber + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195354 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 493696} + - 114: {fileID: 11420450} + m_Layer: 0 + m_Name: DeviceTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195788 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434072} + - 33: {fileID: 3324824} + - 23: {fileID: 2394866} + m_Layer: 0 + m_Name: default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &196104 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 461510} + m_Layer: 0 + m_Name: Pyramid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &196232 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424710} + - 114: {fileID: 11411378} + m_Layer: 0 + m_Name: ViveControllers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &196910 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 463596} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197010 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400010} + - 114: {fileID: 11458490} + m_Layer: 0 + m_Name: OpenVRRenderModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197116 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 431768} + - 20: {fileID: 2029416} + - 114: {fileID: 11470140} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &198280 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 428120} + - 33: {fileID: 3356880} + - 65: {fileID: 6520556} + - 23: {fileID: 2349652} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &198524 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 405956} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &199620 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 489070} + - 114: {fileID: 11405572} + m_Layer: 0 + m_Name: Tracker3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400010 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197010} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 493696} + m_RootOrder: 0 +--- !u!4 &400244 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194242} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 425908} + m_Father: {fileID: 441074} + m_RootOrder: 1 +--- !u!4 &401538 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156852} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 495908} + m_RootOrder: 0 +--- !u!4 &401734 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118436} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.115600005} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482200} + m_RootOrder: 1 +--- !u!4 &404002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124284} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 405956} + m_RootOrder: 0 +--- !u!4 &405956 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198524} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 404002} + m_Father: {fileID: 426158} + m_RootOrder: 1 +--- !u!4 &406058 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178932} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 461510} + m_RootOrder: 0 +--- !u!4 &407740 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167174} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 477268} + m_RootOrder: 0 +--- !u!4 &408190 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144936} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 488940} + m_Father: {fileID: 420334} + m_RootOrder: 4 +--- !u!4 &408806 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156202} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 482200} + m_Father: {fileID: 453310} + m_RootOrder: 0 +--- !u!4 &413152 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168570} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 493328} + m_RootOrder: 0 +--- !u!4 &413592 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113284} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 447914} + m_RootOrder: 0 +--- !u!4 &413832 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118426} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 416412} + m_Father: {fileID: 439088} + m_RootOrder: 0 +--- !u!4 &414446 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174124} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 457462} + - {fileID: 470168} + m_Father: {fileID: 425908} + m_RootOrder: 0 +--- !u!4 &416412 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 122586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 413832} + m_RootOrder: 0 +--- !u!4 &417228 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193960} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 495908} + - {fileID: 420420} + - {fileID: 450478} + m_Father: {fileID: 441074} + m_RootOrder: 3 +--- !u!4 &418032 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114414} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 477432} + m_Father: {fileID: 465406} + m_RootOrder: 0 +--- !u!4 &420334 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125382} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 446372} + - {fileID: 453310} + - {fileID: 445028} + - {fileID: 466922} + - {fileID: 408190} + m_Father: {fileID: 424710} + m_RootOrder: 0 +--- !u!4 &420404 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136278} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 434072} + m_Father: {fileID: 426158} + m_RootOrder: 0 +--- !u!4 &420420 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129918} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 447914} + - {fileID: 431494} + m_Father: {fileID: 417228} + m_RootOrder: 1 +--- !u!4 &424710 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196232} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 420334} + - {fileID: 441074} + m_Father: {fileID: 498762} + m_RootOrder: 2 +--- !u!4 &425908 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156528} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 414446} + m_Father: {fileID: 400244} + m_RootOrder: 0 +--- !u!4 &426158 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 420404} + - {fileID: 405956} + m_Father: {fileID: 466922} + m_RootOrder: 1 +--- !u!4 &428120 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198280} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.1156} + m_LocalScale: {x: 0.05, y: 0.03, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 463596} + m_RootOrder: 1 +--- !u!4 &428236 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143222} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 471794} + - {fileID: 438626} + - {fileID: 489070} + m_Father: {fileID: 498762} + m_RootOrder: 1 +--- !u!4 &430026 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168388} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 445028} + m_RootOrder: 2 +--- !u!4 &430332 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 439814} + m_RootOrder: 0 +--- !u!4 &431494 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115884} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 470144} + m_Father: {fileID: 420420} + m_RootOrder: 1 +--- !u!4 &431768 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 498762} + m_RootOrder: 0 +--- !u!4 &434072 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195788} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 420404} + m_RootOrder: 0 +--- !u!4 &437544 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188944} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 495004} + m_RootOrder: 0 +--- !u!4 &438626 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129952} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 461866} + m_Father: {fileID: 428236} + m_RootOrder: 1 +--- !u!4 &439088 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167582} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 413832} + m_Father: {fileID: 441074} + m_RootOrder: 0 +--- !u!4 &439814 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124554} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 430332} + m_Father: {fileID: 497386} + m_RootOrder: 0 +--- !u!4 &441074 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 439088} + - {fileID: 400244} + - {fileID: 497386} + - {fileID: 417228} + - {fileID: 475462} + m_Father: {fileID: 424710} + m_RootOrder: 1 +--- !u!4 &443576 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482200} + m_RootOrder: 0 +--- !u!4 &444792 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117332} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 461866} + m_RootOrder: 0 +--- !u!4 &445028 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189358} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 481378} + - {fileID: 465406} + - {fileID: 430026} + m_Father: {fileID: 420334} + m_RootOrder: 2 +--- !u!4 &446372 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136122} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 493696} + m_Father: {fileID: 420334} + m_RootOrder: 0 +--- !u!4 &447830 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123566} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 481378} + m_RootOrder: 0 +--- !u!4 &447914 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111470} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 413592} + m_Father: {fileID: 420420} + m_RootOrder: 0 +--- !u!4 &450478 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148634} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 417228} + m_RootOrder: 2 +--- !u!4 &453310 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118284} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 408806} + m_Father: {fileID: 420334} + m_RootOrder: 1 +--- !u!4 &455230 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 169832} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 467342} + m_Father: {fileID: 459962} + m_RootOrder: 1 +--- !u!4 &456314 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.1156} + m_LocalScale: {x: 0.05, y: 0.03, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 456390} + m_RootOrder: 1 +--- !u!4 &456390 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156828} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 496820} + - {fileID: 456314} + m_Father: {fileID: 488940} + m_RootOrder: 0 +--- !u!4 &457462 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180602} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 414446} + m_RootOrder: 0 +--- !u!4 &459962 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 461510} + - {fileID: 455230} + m_Father: {fileID: 497386} + m_RootOrder: 1 +--- !u!4 &461510 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196104} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 406058} + m_Father: {fileID: 459962} + m_RootOrder: 0 +--- !u!4 &461866 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121498} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 444792} + m_Father: {fileID: 438626} + m_RootOrder: 0 +--- !u!4 &463596 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196910} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 472258} + - {fileID: 428120} + m_Father: {fileID: 476058} + m_RootOrder: 0 +--- !u!4 &465406 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178720} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 418032} + - {fileID: 493328} + m_Father: {fileID: 445028} + m_RootOrder: 1 +--- !u!4 &466742 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153602} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 497448} + m_RootOrder: 0 +--- !u!4 &466922 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143998} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 497448} + - {fileID: 426158} + - {fileID: 489520} + m_Father: {fileID: 420334} + m_RootOrder: 3 +--- !u!4 &467342 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 455230} + m_RootOrder: 0 +--- !u!4 &467608 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127668} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 497386} + m_RootOrder: 2 +--- !u!4 &470144 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180974} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.10000002, z: 0.10000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 431494} + m_RootOrder: 0 +--- !u!4 &470168 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142646} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0355, z: -0.115600005} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 414446} + m_RootOrder: 1 +--- !u!4 &471794 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152668} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 495004} + m_Father: {fileID: 428236} + m_RootOrder: 0 +--- !u!4 &472258 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174722} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.12, y: 0.12, z: 0.12} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 463596} + m_RootOrder: 0 +--- !u!4 &475462 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 476058} + m_Father: {fileID: 441074} + m_RootOrder: 4 +--- !u!4 &476058 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108378} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 463596} + m_Father: {fileID: 475462} + m_RootOrder: 0 +--- !u!4 &477268 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161794} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 407740} + m_Father: {fileID: 489070} + m_RootOrder: 0 +--- !u!4 &477432 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188274} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0.2} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 418032} + m_RootOrder: 0 +--- !u!4 &481378 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107740} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 447830} + m_Father: {fileID: 445028} + m_RootOrder: 0 +--- !u!4 &482200 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.0355, z: 0.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 443576} + - {fileID: 401734} + m_Father: {fileID: 408806} + m_RootOrder: 0 +--- !u!4 &488940 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 456390} + m_Father: {fileID: 408190} + m_RootOrder: 0 +--- !u!4 &489070 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199620} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 477268} + m_Father: {fileID: 428236} + m_RootOrder: 2 +--- !u!4 &489520 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 466922} + m_RootOrder: 2 +--- !u!4 &493328 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143056} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 413152} + m_Father: {fileID: 465406} + m_RootOrder: 1 +--- !u!4 &493696 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 400010} + m_Father: {fileID: 446372} + m_RootOrder: 0 +--- !u!4 &495004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164482} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 437544} + m_Father: {fileID: 471794} + m_RootOrder: 0 +--- !u!4 &495908 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190106} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 401538} + m_Father: {fileID: 417228} + m_RootOrder: 0 +--- !u!4 &496820 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108178} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.12, y: 0.12, z: 0.12} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 456390} + m_RootOrder: 0 +--- !u!4 &497386 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137262} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 439814} + - {fileID: 459962} + - {fileID: 467608} + m_Father: {fileID: 441074} + m_RootOrder: 2 +--- !u!4 &497448 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 466742} + m_Father: {fileID: 466922} + m_RootOrder: 0 +--- !u!4 &498762 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107548} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 431768} + - {fileID: 428236} + - {fileID: 424710} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!20 &2029416 +Camera: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197116} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.05 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!23 &2308762 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180974} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2309482 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156530} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2310982 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178932} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2322310 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108178} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2342164 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188274} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2343150 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168570} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2349652 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198280} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2358670 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187742} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2367626 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113284} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2374858 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174722} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2394866 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195788} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2398006 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124284} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 3320905fb6f6bd54297f26399d87c525, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3312818 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113284} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3324824 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195788} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3337238 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178932} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3354740 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174722} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3356880 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198280} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3360018 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156530} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3360560 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180974} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3386626 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168570} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3387244 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187742} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3395590 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188274} + m_Mesh: {fileID: 4300000, guid: 34f5197a8108c0744a2f1b72b7bfa340, type: 3} +--- !u!33 &3395824 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124284} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3398306 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108178} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &5419818 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174124} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &5448616 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108378} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &5454030 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &5498330 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168160} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &6506750 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118436} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.05, y: 0.03, z: 0.2} + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &6520556 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198280} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &6571638 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187742} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &6579128 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142646} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.05, y: 0.03, z: 0.2} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &11402006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 122586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11405572 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 0 +--- !u!114 &11405614 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + duration: 0.2 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11406126 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11496784} + lineRenderer: {fileID: 12081958} +--- !u!114 &11406484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 2 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11408242 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11411378 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afea3b80346a74d4bb1ccdcd457390bf, type: 3} + m_Name: + m_EditorClassIdentifier: + hideRenderModelOnGrab: 1 + customModelActiveMode: 1 + laserPointerActiveMode: 1 + curvePointerActiveMode: 1 + rightRenderModel: {fileID: 136122} + rightCustomModel: {fileID: 144936} + rightGrabber: {fileID: 118284} + rightLaserPointer: {fileID: 189358} + rightCurvePointer: {fileID: 143998} + leftRenderModel: {fileID: 167582} + leftCustomModel: {fileID: 137356} + leftGrabber: {fileID: 194242} + leftLaserPointer: {fileID: 137262} + leftCurvePointer: {fileID: 193960} +--- !u!114 &11412748 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11415316 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!114 &11416844 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 123566} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 178720} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 168388} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11420450 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11423792 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.003 + rotationThreshold: 1 +--- !u!114 &11429604 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125382} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 +--- !u!114 &11431902 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 148530} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 145626} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 127668} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11434722 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11483628} + lineRenderer: {fileID: 12010886} +--- !u!114 &11440968 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 +--- !u!114 &11442394 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11445368 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11406484} + lineRenderer: {fileID: 12058722} +--- !u!114 &11446364 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4da06ab1072a44a419406789d8054158, type: 3} + m_Name: + m_EditorClassIdentifier: + velocity: 1.5 + gravity: {x: 0, y: -1, z: 0} +--- !u!114 &11448600 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.0005 + rotationThreshold: 0.5 +--- !u!114 &11448822 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker3 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11449010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11449718 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 2 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11452356 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11483628} + reticleForDefaultRay: {fileID: 431494} + reticleForCurvedRay: {fileID: 447914} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, + type: 2} + reticleRenderer: + - {fileID: 2367626} +--- !u!114 &11452568 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11455550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 153602} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 142976} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 108766} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11456374 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 940d1e8e53ab15349af970bd722f06c2, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 156828} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 + m_snapOnEnable: 1 + followingDuration: 0.04 +--- !u!114 &11458490 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11460700 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 174124} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11461172 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11463328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f26c248b16aef5b419526eee6ea07d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + maskType: 1 + mask: + serializedVersion: 2 + m_Bits: 6 +--- !u!114 &11463628 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 0 +--- !u!114 &11470140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 326f9add24fafee418bdcd053a0324a0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11470256 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 156852} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 129918} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 148634} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11474622 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156202} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 168160} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11476536 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15e4d85dc1bd6124aa83b6d6d84f849f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + positionThreshold: 0.003 + rotationThreshold: 1 +--- !u!114 &11477294 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11449718} + reticleForDefaultRay: {fileID: 493328} + reticleForCurvedRay: {fileID: 418032} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 0} + reticleRenderer: [] +--- !u!114 &11480700 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 0 + duration: 0.2 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11481170 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11482040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174124} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ef2272bf13df804f93135bad41885ae, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_buttonTrigger: 0 + m_buttonPadOrStick: 1 + m_buttonGripOrHandTrigger: 2 + m_buttonFunctionKey: 4 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11483628 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 2 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11485264 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 940d1e8e53ab15349af970bd722f06c2, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: LeftHand + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 196910} + m_MethodName: SetActive + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 + m_snapOnEnable: 1 + followingDuration: 0.04 +--- !u!114 &11485484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f62138db21b7ec439beba5c9b61c2d9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_mode: 1 + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 0 + m_origin: {fileID: 0} + m_deviceIndex: 0 + m_overrideModel: 0 + m_overrideShader: {fileID: 0} +--- !u!114 &11487112 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 387fb5d74b1a932479013876b27a0e1e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker2 + m_roleValueInt: 0 +--- !u!114 &11488408 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8c3f25a28b4f824f825e53629c17c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11489584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8fdc450c311d1e94291658aa5ec57b9b, type: 3} + m_Name: + m_EditorClassIdentifier: + posOffset: {x: 0, y: 0, z: 0} + rotOffset: {x: 0, y: 0, z: 0} + origin: {fileID: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.TrackerRole + m_roleValueName: Tracker1 + m_roleValueInt: 0 + onIsValidChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.Vive.VivePoseTracker+UnityEventBool, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + role: -2 +--- !u!114 &11490446 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ef2272bf13df804f93135bad41885ae, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_buttonTrigger: 0 + m_buttonPadOrStick: 1 + m_buttonGripOrHandTrigger: 2 + m_buttonFunctionKey: 4 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!114 &11490702 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa380deb7f1437a4c8678ec04f101197, type: 3} + m_Name: + m_EditorClassIdentifier: + gravityDirection: {x: 0, y: -1, z: 0} + showOnHitOnly: 0 + segmentLength: 0.05 + raycaster: {fileID: 11449718} + lineRenderer: {fileID: 12022086} +--- !u!114 &11492502 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11406484} + reticleForDefaultRay: {fileID: 455230} + reticleForCurvedRay: {fileID: 461510} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 0} + reticleRenderer: [] +--- !u!114 &11494136 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94db5e6392a8004a8880d13e66933ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_priority: 1 + duration: 0.15 + easePositionX: 1 + easePositionY: 1 + easePositionZ: 1 + easeRotationX: 1 + easeRotationY: 1 + easeRotationZ: 1 +--- !u!114 &11495122 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4da06ab1072a44a419406789d8054158, type: 3} + m_Name: + m_EditorClassIdentifier: + velocity: 1.5 + gravity: {x: 0, y: -1, z: 0} +--- !u!114 &11496538 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d295652c296b049959c933d5db7951, type: 3} + m_Name: + m_EditorClassIdentifier: + raycaster: {fileID: 11496784} + reticleForDefaultRay: {fileID: 405956} + reticleForCurvedRay: {fileID: 420404} + showOnHitOnly: 1 + hitTarget: {fileID: 0} + hitDistance: 0 + defaultReticleMaterial: {fileID: 2100000, guid: 50143b523bb80ca4696e4d922443e44f, + type: 2} + reticleRenderer: + - {fileID: 2394866} +--- !u!114 &11496784 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 174b153ed154e784a8bd7e3b391fe253, type: 3} + m_Name: + m_EditorClassIdentifier: + nearDistance: 0 + farDistance: 20 + dragThreshold: 0.02 + clickInterval: 0.3 + showDebugRay: 1 + m_raycastMode: 0 + m_velocity: 2 + m_gravity: {x: 0, y: -1, z: 0} + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: RightHand + m_roleValueInt: 0 + m_mouseButtonLeft: 0 + m_mouseButtonMiddle: 2 + m_mouseButtonRight: 1 + m_additionalButtons: 0 + m_scrollType: 0 + m_scrollDeltaScale: {x: 1, y: -1} +--- !u!120 &12010886 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148634} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!120 &12022086 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168388} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!120 &12058722 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127668} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!120 &12081958 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108766} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: 2807c77f22a845e4f9765e00034f4446, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + startWidth: 0.01 + endWidth: 0 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!135 &13525442 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108178} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!135 &13546012 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174722} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!135 &13552738 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180602} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.06 + m_Center: {x: 0, y: 0, z: 0} +--- !u!135 &13575112 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155060} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.06 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 107548} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..adde1201256a8792606f7d8617066cf7ed9695f7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/ViveRig.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbfd31aaac017204885fcc03f0579a1a +timeCreated: 1482400087 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab new file mode 100644 index 0000000000000000000000000000000000000000..dd4542f04386ae2bd4ac1aa5e7db9e6feffad2d8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab @@ -0,0 +1,175 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &181412 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 444316} + - 114: {fileID: 11426014} + m_Layer: 0 + m_Name: '[ExternalCamera]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &193950 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 430778} + - 114: {fileID: 11468196} + - 114: {fileID: 11439658} + - 114: {fileID: 11413610} + - 114: {fileID: 11459320} + m_Layer: 0 + m_Name: '[ViveInputUtility]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &430778 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193950} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 444316} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &444316 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 430778} + m_RootOrder: 0 +--- !u!114 &11413610 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f21e9f542d73914180798bfa4c535d0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_overrideConfigPath: vive_role_bindings.cfg +--- !u!114 &11426014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a8deef80f4da8a44f858a453c0f74ecf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_viveRole: + m_roleTypeFullName: HTC.UnityPlugin.Vive.HandRole + m_roleValueName: ExternalCamera + m_roleValueInt: 2 + m_origin: {fileID: 0} + m_configPath: externalcamera.cfg + m_toggleSwitch: 1 +--- !u!114 &11439658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9f5306be5e1185844905bb31df1d47b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_dontDestroyOnLoad: 1 +--- !u!114 &11459320 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d411276c604086141ae1eff2b8bf37b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_clickInterval: 0.3 + m_dontDestroyOnLoad: 1 + m_onUpdate: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!114 &11468196 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 826daa2506a45f1469eacd8269c5c081, type: 3} + m_Name: + m_EditorClassIdentifier: + m_dontDestroyOnLoad: 1 + m_lockPhysicsUpdateRateToRenderFrequency: 1 + m_selectModule: -1 + m_trackingSpaceType: 1 + m_onNewPoses: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.VRModuleManagement.VRModule+NewPosesEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onControllerRoleChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.VRModuleManagement.VRModule+ControllerRoleChangedEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onInputFocus: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.VRModuleManagement.VRModule+InputFocusEvent, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onDeviceConnected: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.VRModuleManagement.VRModule+DeviceConnectedEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onActiveModuleChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: HTC.UnityPlugin.VRModuleManagement.VRModule+ActiveModuleChangedEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 193950} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..1c0262cd1f7ecb15f3e9e5b468b286ca1029d9cc --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Prefabs/[ViveInputUtility].prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8075b10b3fa5b5b45bc02a03074b8b95 +timeCreated: 1503401655 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources.meta new file mode 100644 index 0000000000000000000000000000000000000000..795917d9f3d4e2807370b2f2d9719e05376d5581 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f1d532c1e91ce734ab54807c1a4c1f3f +folderAsset: yes +timeCreated: 1478846954 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation.meta new file mode 100644 index 0000000000000000000000000000000000000000..bd0b13544614a832d6d6705ee7827f49e522f113 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 369af420aee33aa44b9f5bb86c797be3 +folderAsset: yes +timeCreated: 1502890379 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim new file mode 100644 index 0000000000000000000000000000000000000000..71cd5b8311510c928a9d2a18b56bd92ef9d8f577 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim @@ -0,0 +1,99 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BindingInterfaceSlideDevicePanel + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 0.25 + value: -600 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.x + path: + classID: 224 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - path: 0 + attribute: 1460864421 + script: {fileID: 0} + classID: 224 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.25 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 0.25 + value: -600 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.x + path: + classID: 224 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_GenerateMotionCurves: 0 + m_Events: [] diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..6891f85bda5a5710860bb11c0e52b30f540042a8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanel.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bff4c2ba27c810d4789a4796b78ff5df +timeCreated: 1502175093 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller new file mode 100644 index 0000000000000000000000000000000000000000..49cc4de27d86ea879ddb4724bc9de780ef431172 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller @@ -0,0 +1,701 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BindingInterfaceSlideDevicePanelAnim + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: SlideDeviceViewRight + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: SlideDeviceViewLeft + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: isEditing + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 110760532} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &110100278 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110206170} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110109008 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110215896} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110111420 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110263920} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.1 + m_TransitionOffset: 0 + m_ExitTime: 0.9 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110114444 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110217508} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110117554 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110229900} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.1 + m_TransitionOffset: 0 + m_ExitTime: 0.9 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110129192 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110263920} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110132966 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110206170} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110136542 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110236274} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110138144 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110217508} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110155514 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110229900} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110157028 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110236274} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110164712 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110263920} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110168678 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110215896} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110168926 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110236274} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110171402 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110215896} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110175966 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewRight + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110217508} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110179554 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: isEditing + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110229900} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110185486 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideDeviceViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110206170} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &110206170 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: IdleLeft + m_Speed: 100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110164712} + - {fileID: 110185486} + - {fileID: 110114444} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bff4c2ba27c810d4789a4796b78ff5df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110215896 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: IdelRight + m_Speed: 100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110109008} + - {fileID: 110136542} + - {fileID: 110155514} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 0 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110217508 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SnapRight + m_Speed: -100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110171402} + - {fileID: 110179554} + - {fileID: 110168926} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bff4c2ba27c810d4789a4796b78ff5df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110229900 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SlideLeft + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110100278} + - {fileID: 110111420} + - {fileID: 110138144} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bff4c2ba27c810d4789a4796b78ff5df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110236274 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SnapLeft + m_Speed: 100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110132966} + - {fileID: 110129192} + - {fileID: 110175966} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bff4c2ba27c810d4789a4796b78ff5df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110263920 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SlideRight + m_Speed: -1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110168678} + - {fileID: 110157028} + - {fileID: 110117554} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bff4c2ba27c810d4789a4796b78ff5df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1107 &110760532 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 110206170} + m_Position: {x: 228, y: 192, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110263920} + m_Position: {x: 372, y: 324, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110217508} + m_Position: {x: 636, y: 324, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110215896} + m_Position: {x: 804, y: 192, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110229900} + m_Position: {x: 372, y: 60, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110236274} + m_Position: {x: 636, y: 60, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 1188, y: 192, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 110206170} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller.meta new file mode 100644 index 0000000000000000000000000000000000000000..1f47c10387b2eea60d3059055b5d2d7a5e4b96a5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideDevicePanelAnim.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9b3b338cda67e8448178c6959553a93 +timeCreated: 1502175087 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim new file mode 100644 index 0000000000000000000000000000000000000000..bddcf9dbec538b494a131e3a367191f0a1bd7dc4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim @@ -0,0 +1,99 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BindingInterfaceSlideRoleSetPanel + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 0.25 + value: -600 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.x + path: + classID: 224 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - path: 0 + attribute: 1460864421 + script: {fileID: 0} + classID: 224 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.25 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 0.25 + value: -600 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.x + path: + classID: 224 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_GenerateMotionCurves: 0 + m_Events: [] diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..b2c0ac0daf5b76c3ab4a5e52ed954c4af6c6958a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanel.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca26ded647478c54ea819cd0ef664904 +timeCreated: 1502160869 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller new file mode 100644 index 0000000000000000000000000000000000000000..ed260baf7ac32e8a39de0a1f26533487401257a3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller @@ -0,0 +1,380 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BindingInterfaceSlideRoleSetPanelAnim + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: SlideRoleSetViewRight + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: SlideRoleSetViewLeft + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 110704354} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &110103986 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110287892} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110114254 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110232600} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110133080 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110251894} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110141948 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110251894} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110153654 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110257148} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.25 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110154034 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewLeft + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110257148} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110157330 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110287892} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.25 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &110182286 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: SlideRoleSetViewRight + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110232600} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &110232600 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: IdleRight + m_Speed: -100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110154034} + - {fileID: 110114254} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: ca26ded647478c54ea819cd0ef664904, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110251894 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: IdleLeft + m_Speed: 100 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110133080} + - {fileID: 110103986} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 0 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110257148 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 3 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SlideBindingsLeft + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110157330} + - {fileID: 110141948} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: ca26ded647478c54ea819cd0ef664904, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110281902 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SlideBindingsWindow + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: ca26ded647478c54ea819cd0ef664904, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1102 &110287892 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SlideBindingsRight + m_Speed: -1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 110153654} + - {fileID: 110182286} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_Motion: {fileID: 7400000, guid: ca26ded647478c54ea819cd0ef664904, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: +--- !u!1107 &110704354 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 110287892} + m_Position: {x: 600, y: 348, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110232600} + m_Position: {x: 228, y: 156, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110257148} + m_Position: {x: 228, y: 348, z: 0} + - serializedVersion: 1 + m_State: {fileID: 110251894} + m_Position: {x: 600, y: 156, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 60, y: 24, z: 0} + m_EntryPosition: {x: 60, y: 84, z: 0} + m_ExitPosition: {x: 816, y: 84, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 110232600} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller.meta new file mode 100644 index 0000000000000000000000000000000000000000..990e02379f540b8318b86f98b45b748f1671724e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Animation/BindingInterfaceSlideRoleSetPanelAnim.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c0a01cdabc7f2647b3727c432959904 +timeCreated: 1502160851 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models.meta new file mode 100644 index 0000000000000000000000000000000000000000..723f61f93077fc41adb7e276e9a9169e50790a5c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 81d67f08bf2b07a43a98b9d064d22c0f +folderAsset: yes +timeCreated: 1496157916 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx new file mode 100644 index 0000000000000000000000000000000000000000..d3dfe80973f949c253b4c245e7ffe6a6866d2b4c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3f2947b61e84b4e99687a2f9feb68e3e7e1cc3349cc7673fdbdc09de687f358 +size 79600 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..ff179213361e01e09518a34cf4f46822e910fe5c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelDaydreamController.fbx.meta @@ -0,0 +1,77 @@ +fileFormatVersion: 2 +guid: 279eae6e1e119ec4f97c601f4658ea98 +timeCreated: 1510220282 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ddcontroller + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelIndexControllerRight.obj.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelIndexControllerRight.obj.meta new file mode 100644 index 0000000000000000000000000000000000000000..2b5fdbc5ec6d0ffc65dea2e477a5751ed3166baf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelIndexControllerRight.obj.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: dafde740d11228749a63b949c94b5cda +timeCreated: 1572857817 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 100002: r_0all + 400000: //RootNode + 400002: r_0all + 2300000: r_0all + 3300000: r_0all + 4300000: r_0all + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx new file mode 100644 index 0000000000000000000000000000000000000000..9282473b390b5626f9e0cd0defb652e35af59995 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1fbaa849087caea8028a4cf730cf3a352a48f80f57407fe7f8a4f6b078b2b6b +size 472012 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..1bdf0866943569e181bf052149576e8f7e9056d2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelKnucklesRight.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 759bd215186979048815e5fcec79c48d +timeCreated: 1503689425 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelKnucklesRight + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx new file mode 100644 index 0000000000000000000000000000000000000000..0395e9406b950b2694b5ebc8d138f61237943591 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ec61ab327a8825f73af5bdc6990947c210a642ce9d1367f10b62586f7e5df36 +size 638576 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..bdb96b16b344a94a810fd4198938c6004f4f10c6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGearVrController.fbx.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6edfa91e984e125488b968a80e340754 +timeCreated: 1534399100 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: back_button_PLY + 100002: center_button_PLY + 100004: chassis_PLY + 100006: disc_button_PLY + 100008: home_button_PLY + 100010: //RootNode + 100012: text_PLY + 100014: trigger_PLY + 400000: back_button_PLY + 400002: center_button_PLY + 400004: chassis_PLY + 400006: disc_button_PLY + 400008: home_button_PLY + 400010: //RootNode + 400012: text_PLY + 400014: trigger_PLY + 2300000: back_button_PLY + 2300002: center_button_PLY + 2300004: chassis_PLY + 2300006: disc_button_PLY + 2300008: home_button_PLY + 2300010: text_PLY + 2300012: trigger_PLY + 3300000: back_button_PLY + 3300002: center_button_PLY + 3300004: chassis_PLY + 3300006: disc_button_PLY + 3300008: home_button_PLY + 3300010: text_PLY + 3300012: trigger_PLY + 4300000: text_PLY + 4300002: center_button_PLY + 4300004: trigger_PLY + 4300006: home_button_PLY + 4300008: back_button_PLY + 4300010: disc_button_PLY + 4300012: chassis_PLY + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx new file mode 100644 index 0000000000000000000000000000000000000000..e4170bfb244c84949f49fe049207bcd6b2a1e2fd --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fa7d3af62585a859c8b0f4fd98472b439e82695d81c71bd5215706b7c3726d9 +size 111740 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..d0786fe7f14149676f48b2d8de10511b3ee4c829 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusGoController.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 0d378a433f08ef84e84e051977b1131a +timeCreated: 1532934868 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Mesh + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx new file mode 100644 index 0000000000000000000000000000000000000000..ea282ce00dadbacd7d31d14229dec66ef65a9f62 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1da951971570105cff39f7f10122caff22e0655811d9be13730ed2f8de305483 +size 422784 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..5f99219686ae4744dc8200d40eaf8fc18f77c0ff --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusQuestControllerRight.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9a2b49b3efbb6f449ae63a94abd5bed3 +timeCreated: 1558956116 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: r_controller_ply + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx new file mode 100644 index 0000000000000000000000000000000000000000..39ab81428d919d1a53d760fffb8864e11dac9afd --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de0c3e682c89cdf6862e819c78b7a8f7998e67ef23531801632c75dccf20b592 +size 24220 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..4a84394a2a4fea64a89038ebde1a9854f2b6d088 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusSensor.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: c8886ded5921aea4cb5f6efddcd6b9f9 +timeCreated: 1503689375 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelOculusSensor + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx new file mode 100644 index 0000000000000000000000000000000000000000..9dfb50ac272a2d2f9d96dfcf3460b5ce339c23d1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c90995d0bf6d949d80bb1ae982ecef9b26a9a009969bbd9220b013f101028580 +size 540588 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..2754a0b5882c673fb47df88a9d4d259b230ca6ff --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelOculusTouchRight.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 5ddc673c3add8d44ca7de2b080765736 +timeCreated: 1503689313 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelOculusTouchRight + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx new file mode 100644 index 0000000000000000000000000000000000000000..170cb9d65bb945e940ec9092ce10973c8cb70192 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c72d9d9ed7064f16398ff2ee6321da9c9b51584d0d4d5d839ac8571bd38ec6 +size 95660 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5c392f4bcb3bf638da2538e76ab7cf9ee7ff32e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveBaseStation.fbx.meta @@ -0,0 +1,77 @@ +fileFormatVersion: 2 +guid: 049146e7ae633314bac999005e1fefb9 +timeCreated: 1503689166 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelViveBaseStation.001 + 4300002: ObjModelViveBaseStation + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx new file mode 100644 index 0000000000000000000000000000000000000000..60cffe21b9a0be9395f81fd94a10ad556f084905 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0606628f24b159aa07b77ceb2c9705873cdb4db30c01e31a967a6e964570960d +size 703500 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..a57838036eacdea3e5e7f3879a69c994647ec54b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveController.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: a84c25639fd3f5b47826a4a5e99e0428 +timeCreated: 1503685082 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelViveController + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveCosmosControllerRight.obj.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveCosmosControllerRight.obj.meta new file mode 100644 index 0000000000000000000000000000000000000000..ed104d78427afbc2a68273ce8325e89721805e26 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveCosmosControllerRight.obj.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 9af60db94080f0b409bb776a936cdc39 +timeCreated: 1558956117 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 100002: vive_cosmos_controller_right + 400000: //RootNode + 400002: vive_cosmos_controller_right + 2300000: vive_cosmos_controller_right + 3300000: vive_cosmos_controller_right + 4300000: vive_cosmos_controller_right + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx new file mode 100644 index 0000000000000000000000000000000000000000..b8f7145747131c6cf8e447ab5ce7c68f6a4e3687 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d60b4e9e865fc59b3c9804d760dbf78dec4999e59560ac90c0a55b5a1e32677 +size 962224 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..81438e9e31cd82a194c7dc27a5596663b9dd0195 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusChirp.fbx.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 862629c097036324e8afeb4ce76e7a36 +timeCreated: 1592904923 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: __CM__AppButton + 100002: __CM__BeamOrigin + 100004: __CM__Body + 100006: __CM__Grip + 100008: __CM__HomeButton + 100010: __CM__TouchPad + 100012: __CM__TouchPad_Touch + 100014: __CM__TriggerKey + 100016: //RootNode + 400000: __CM__AppButton + 400002: __CM__BeamOrigin + 400004: __CM__Body + 400006: __CM__Grip + 400008: __CM__HomeButton + 400010: __CM__TouchPad + 400012: __CM__TouchPad_Touch + 400014: __CM__TriggerKey + 400016: //RootNode + 2100000: Default + 2100002: Touch + 2300000: __CM__AppButton + 2300002: __CM__BeamOrigin + 2300004: __CM__Body + 2300006: __CM__Grip + 2300008: __CM__HomeButton + 2300010: __CM__TouchPad + 2300012: __CM__TouchPad_Touch + 2300014: __CM__TriggerKey + 3300000: __CM__AppButton + 3300002: __CM__BeamOrigin + 3300004: __CM__Body + 3300006: __CM__Grip + 3300008: __CM__HomeButton + 3300010: __CM__TouchPad + 3300012: __CM__TouchPad_Touch + 3300014: __CM__TriggerKey + 4300000: __CM__BeamOrigin + 4300002: __CM__Grip + 4300004: __CM__TriggerKey + 4300006: __CM__TouchPad + 4300008: __CM__TouchPad_Touch + 4300010: __CM__AppButton + 4300012: __CM__HomeButton + 4300014: __CM__Body + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx new file mode 100644 index 0000000000000000000000000000000000000000..585c9f244a6098882a8da11b9ea61759e87b4063 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d94cf9a4fa4811f20c01b3dc49bcbaa019022c993936c79333ef119cdd6c6e80 +size 82864 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..4bf363c73ea5247d441ea8d18567e7eb62390d07 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveFocusFinch.fbx.meta @@ -0,0 +1,123 @@ +fileFormatVersion: 2 +guid: aa58a01d293edc24987fbbf6ec9578ad +timeCreated: 1518523280 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: AppButton + 100002: Body + 100004: HomeButton + 100006: //RootNode + 100008: Side_button_L + 100010: Side_button_R + 100012: TouchPad + 100014: Trigger + 100016: body + 100018: side_button + 100020: trigger + 400000: AppButton + 400002: Body + 400004: HomeButton + 400006: //RootNode + 400008: Side_button_L + 400010: Side_button_R + 400012: TouchPad + 400014: Trigger + 400016: body + 400018: side_button + 400020: trigger + 2300000: AppButton + 2300002: Body + 2300004: HomeButton + 2300006: Side_button_L + 2300008: Side_button_R + 2300010: TouchPad + 2300012: Trigger + 2300014: body + 2300016: side_button + 2300018: trigger + 3300000: AppButton + 3300002: Body + 3300004: HomeButton + 3300006: Side_button_L + 3300008: Side_button_R + 3300010: TouchPad + 3300012: Trigger + 3300014: body + 3300016: side_button + 3300018: trigger + 4300000: TouchPad + 4300002: Side_button_L + 4300004: Side_button_R + 4300006: AppButton + 4300008: HomeButton + 4300010: Body + 4300012: Trigger + 4300014: trigger + 4300016: body + 4300018: side_button + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 50 + normalImportMode: 0 + tangentImportMode: 2 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx new file mode 100644 index 0000000000000000000000000000000000000000..492866c2fcb78e8fd4551663776baf66b02cd50f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca16fb52e96b278bca2812c1fb637d61271d0950e143e828daa6ed108518792e +size 433996 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..ae8a5e7ccd57351654b3e7b424947024e6931c87 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelViveTracker.fbx.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 41a3b4523a140e245b18852ca870c49e +timeCreated: 1503681975 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: Camera + 100002: Lamp + 100004: //RootNode + 100006: ObjModelViveTracker + 400000: Camera + 400002: Lamp + 400004: //RootNode + 400006: ObjModelViveTracker + 2300000: ObjModelViveTracker + 2300002: //RootNode + 3300000: ObjModelViveTracker + 3300002: //RootNode + 4300000: ObjModelViveTracker + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx new file mode 100644 index 0000000000000000000000000000000000000000..a9b7330a3b19dfb65dc7b699a08007cbd0f975db --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:944167627cd2d8f3cec44d01a261168ddf6fdc22989e665a61998bc598230987 +size 234764 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..ccdd7018052cb8e218cf1b1d97bd2b24decea76c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/ObjModelWMRControllerLeft.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 26b8ac0911f9d0c4bbee55586c74b36c +timeCreated: 1544690044 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ObjModelWMRControllerLeft + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab new file mode 100644 index 0000000000000000000000000000000000000000..cf673829c85adabdfdf3983c48b60fb236eac1fa --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &137192 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 410282} + - 33: {fileID: 3396588} + - 23: {fileID: 2331800} + m_Layer: 0 + m_Name: ObjModelDaydreamController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166226 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434042} + m_Layer: 0 + m_Name: VIUModelDaydreamController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &410282 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 434042} + m_RootOrder: 0 +--- !u!4 &434042 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 410282} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2331800 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137192} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3396588 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137192} + m_Mesh: {fileID: 4300000, guid: 279eae6e1e119ec4f97c601f4658ea98, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 166226} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..e8f38c75cfcc4906f5f9afa93c60a14955a22569 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelDaydreamController.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce6568255d710c04bb51f9f17d7c1d9f +timeCreated: 1510220555 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..8bbb6c77ca2ff9f29443fda8e0172bd3c767a429 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &176644 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 481982} + m_Layer: 0 + m_Name: ObjModelIndexControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176964 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 489620} + m_Layer: 0 + m_Name: VIUModelIndexControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &191218 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 417556} + - 33: {fileID: 3306938} + - 23: {fileID: 2350232} + m_Layer: 0 + m_Name: r_0all + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &417556 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191218} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 481982} + m_RootOrder: 0 +--- !u!4 &481982 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176644} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: + - {fileID: 417556} + m_Father: {fileID: 489620} + m_RootOrder: 0 +--- !u!4 &489620 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 481982} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2350232 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191218} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3306938 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191218} + m_Mesh: {fileID: 4300000, guid: dafde740d11228749a63b949c94b5cda, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 176964} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..2865da9dd11ab0b4bc2656cb0dec1a6fff202733 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7218d5052cbee6d4fabb4ade961a6d45 +timeCreated: 1572858077 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..97b293777042e0084931765e67668389de7e0775 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &131536 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 480650} + m_Layer: 0 + m_Name: ObjModelIndexControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156526 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 467254} + m_Layer: 0 + m_Name: VIUModelIndexControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192154 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 429024} + - 33: {fileID: 3342214} + - 23: {fileID: 2332274} + m_Layer: 0 + m_Name: r_0all + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &429024 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192154} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 480650} + m_RootOrder: 0 +--- !u!4 &467254 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 480650} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &480650 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131536} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: + - {fileID: 429024} + m_Father: {fileID: 467254} + m_RootOrder: 0 +--- !u!23 &2332274 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192154} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3342214 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192154} + m_Mesh: {fileID: 4300000, guid: dafde740d11228749a63b949c94b5cda, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 156526} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..4e14669fa66bb67ad86df637092d1b8cbaea5a2a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelIndexControllerRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eef64bbf7f95c974b8a2effcbc0a3f02 +timeCreated: 1572858080 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..5d8346adc8ca68fba84458643d0cf52260d80914 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &105550 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482390} + - 33: {fileID: 3348064} + - 23: {fileID: 2329678} + m_Layer: 0 + m_Name: ObjModelKnucklesRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148702 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 471774} + m_Layer: 0 + m_Name: VIUModelKnucklesLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &471774 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148702} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 482390} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &482390 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105550} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 471774} + m_RootOrder: 0 +--- !u!23 &2329678 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105550} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3348064 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105550} + m_Mesh: {fileID: 4300000, guid: 759bd215186979048815e5fcec79c48d, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 148702} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..d547198b4b9bf7183edcab922f8bbc588609ecfb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e568c2d9060754a409b5cc294cd3a79f +timeCreated: 1499860900 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..43c70f11db8211cc84855364302bc5ea1d3bbff5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &104192 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 492740} + m_Layer: 0 + m_Name: VIUModelKnucklesRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &171650 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 456736} + - 33: {fileID: 3351368} + - 23: {fileID: 2366792} + m_Layer: 0 + m_Name: ObjModelKnucklesRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &456736 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171650} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 492740} + m_RootOrder: 0 +--- !u!4 &492740 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 456736} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2366792 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171650} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3351368 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171650} + m_Mesh: {fileID: 4300000, guid: 759bd215186979048815e5fcec79c48d, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 104192} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..c14d21a851f37adaef0f1db1930068707ca493d9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelKnucklesRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2bb7668e99e3b44cb17473208d3a790 +timeCreated: 1499860908 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab new file mode 100644 index 0000000000000000000000000000000000000000..a713f21f8d64e2a719ff81ad36f18b996ac68640 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab @@ -0,0 +1,518 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &104384 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482308} + m_Layer: 0 + m_Name: ObjModelOculusGearVrController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &108708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411116} + - 33: {fileID: 3328076} + - 23: {fileID: 2375176} + m_Layer: 0 + m_Name: back_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &112860 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424832} + m_Layer: 0 + m_Name: VIUModelOculusGearVrController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127378 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 422044} + - 33: {fileID: 3355012} + - 23: {fileID: 2324710} + m_Layer: 0 + m_Name: trigger_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143062 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 480602} + - 33: {fileID: 3331252} + - 23: {fileID: 2389724} + m_Layer: 0 + m_Name: home_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &153702 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 416198} + - 33: {fileID: 3314698} + - 23: {fileID: 2323958} + m_Layer: 0 + m_Name: chassis_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156968 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 416908} + - 33: {fileID: 3314482} + - 23: {fileID: 2362526} + m_Layer: 0 + m_Name: center_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164734 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 405880} + - 33: {fileID: 3388102} + - 23: {fileID: 2317216} + m_Layer: 0 + m_Name: text_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197764 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 484458} + - 33: {fileID: 3319182} + - 23: {fileID: 2374948} + m_Layer: 0 + m_Name: disc_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &405880 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164734} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 5 +--- !u!4 &411116 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 0 +--- !u!4 &416198 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153702} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 2 +--- !u!4 &416908 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156968} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 1 +--- !u!4 &422044 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127378} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 6 +--- !u!4 &424832 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112860} + m_LocalRotation: {x: 6.123234e-17, y: -0.0000000754979, z: 6.1232336e-17, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 482308} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &480602 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143062} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 4 +--- !u!4 &482308 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104384} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 411116} + - {fileID: 416908} + - {fileID: 416198} + - {fileID: 484458} + - {fileID: 480602} + - {fileID: 405880} + - {fileID: 422044} + m_Father: {fileID: 424832} + m_RootOrder: 0 +--- !u!4 &484458 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0.00007190227, z: -0.023617705} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 482308} + m_RootOrder: 3 +--- !u!23 &2317216 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164734} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2323958 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153702} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2324710 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127378} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2362526 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156968} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2374948 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197764} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2375176 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108708} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2389724 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143062} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3314482 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156968} + m_Mesh: {fileID: 4300002, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3314698 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153702} + m_Mesh: {fileID: 4300012, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3319182 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197764} + m_Mesh: {fileID: 4300010, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3328076 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108708} + m_Mesh: {fileID: 4300008, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3331252 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143062} + m_Mesh: {fileID: 4300006, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3355012 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127378} + m_Mesh: {fileID: 4300004, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!33 &3388102 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164734} + m_Mesh: {fileID: 4300000, guid: 6edfa91e984e125488b968a80e340754, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 112860} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..3bb2c77d6cfdef6deb79865d5646c89fcfd502b1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGearVrController.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d35a216c66c350a4b9271430d390df1f +timeCreated: 1534399143 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f9c3c589f20f2ca5b8a5f7a8e08946302eb5c91e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &108892 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 427784} + - 33: {fileID: 3301200} + - 23: {fileID: 2362304} + m_Layer: 0 + m_Name: ObjModelOculusGoController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &112860 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424832} + m_Layer: 0 + m_Name: VIUModelOculusGoController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &424832 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112860} + m_LocalRotation: {x: 6.123234e-17, y: -0.0000000754979, z: 6.1232336e-17, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 427784} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &427784 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108892} + m_LocalRotation: {x: 6.123234e-17, y: -0.0000000754979, z: 6.1232336e-17, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 424832} + m_RootOrder: 0 +--- !u!23 &2362304 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108892} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3301200 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108892} + m_Mesh: {fileID: 4300000, guid: 0d378a433f08ef84e84e051977b1131a, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 112860} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..d1aada30ea7913f88ad54205689dc9b36a008c5c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusGoController.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb81d87d3b9a20e42976d9e6fdff48a4 +timeCreated: 1533626127 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..4eb4d507768cda1550df2c10c126d31dee744587 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &137716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411044} + m_Layer: 0 + m_Name: VIUModelOculusQuestControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &174002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 492390} + - 33: {fileID: 3364504} + - 23: {fileID: 2391520} + m_Layer: 0 + m_Name: ObjModelOculusQuestControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &411044 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 492390} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &492390 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 411044} + m_RootOrder: 0 +--- !u!23 &2391520 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3364504 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174002} + m_Mesh: {fileID: 4300000, guid: 9a2b49b3efbb6f449ae63a94abd5bed3, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 137716} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..36b6146d68f951d2118c901dd2e5c927a03646e6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70626e17c3abc8b4cb65e74a3ce19f64 +timeCreated: 1558956115 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..e8f770f9b22fe89c0637d72caa5ab687dc2e07c2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &190330 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 492966} + - 33: {fileID: 3377292} + - 23: {fileID: 2382992} + m_Layer: 0 + m_Name: ObjModelOculusQuestControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192398 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 493476} + m_Layer: 0 + m_Name: VIUModelOculusQuestControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &492966 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 493476} + m_RootOrder: 0 +--- !u!4 &493476 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192398} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 492966} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2382992 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3377292 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_Mesh: {fileID: 4300000, guid: 9a2b49b3efbb6f449ae63a94abd5bed3, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 192398} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..cf7fdcc10b71e0795f16b78368ab490cb3545c74 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestControllerRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0679ffce1bdb106408aacc4412fd0b4b +timeCreated: 1558956115 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..edaad3197e10f33bb2c5725bcf872362176036d2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &137716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411044} + m_Layer: 0 + m_Name: VIUModelOculusQuestOrRiftSControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163636 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 430400} + - 33: {fileID: 3389062} + - 23: {fileID: 2384358} + m_Layer: 0 + m_Name: ObjModelOculusQuestControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &411044 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137716} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 430400} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &430400 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163636} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 411044} + m_RootOrder: 0 +--- !u!23 &2384358 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163636} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3389062 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163636} + m_Mesh: {fileID: 4300000, guid: 9a2b49b3efbb6f449ae63a94abd5bed3, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 137716} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..29cdb6a9862f7df03909ec4b13231f75c3dbe1e7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerLeft.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1587ed6f309906347a153766688233e3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..dc0424ff79e74a9751b0dc670b3db383079fa48f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &190330 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 492966} + - 33: {fileID: 3377292} + - 23: {fileID: 2382992} + m_Layer: 0 + m_Name: ObjModelOculusQuestControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192398 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 493476} + m_Layer: 0 + m_Name: VIUModelOculusQuestOrRiftSControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &492966 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 493476} + m_RootOrder: 0 +--- !u!4 &493476 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192398} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 492966} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2382992 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3377292 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190330} + m_Mesh: {fileID: 4300000, guid: 9a2b49b3efbb6f449ae63a94abd5bed3, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 192398} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..796d26ea820022eaabeb3c8187202237ee1cb0a1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusQuestOrRiftSControllerRight.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 168fcee857b239245b839d6b4c3d2d1c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab new file mode 100644 index 0000000000000000000000000000000000000000..2429e4698b21922f8e865820c0357a23d661ef16 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &146384 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 443922} + - 33: {fileID: 3327062} + - 23: {fileID: 2379726} + m_Layer: 0 + m_Name: ObjModelOculusSensor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &443922 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146384} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4484730070740206} + m_RootOrder: 0 +--- !u!23 &2379726 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146384} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3327062 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146384} + m_Mesh: {fileID: 4300000, guid: c8886ded5921aea4cb5f6efddcd6b9f9, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1780382098857660} + m_IsPrefabParent: 1 +--- !u!1 &1780382098857660 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4484730070740206} + m_Layer: 0 + m_Name: VIUModelOculusSensor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4484730070740206 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1780382098857660} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 443922} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..b8c7caf7a82f4f3cad60198e10d7e806d8b9118d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusSensor.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c2099480c1b09b49b123ba87f48456c +timeCreated: 1496158010 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..672d6efccb4b769b081ffe344997d3aa3274111f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &148764 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 486248} + - 33: {fileID: 3389252} + - 23: {fileID: 2380914} + m_Layer: 0 + m_Name: ObjModelOculusTouchRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &486248 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4477146889216608} + m_RootOrder: 0 +--- !u!23 &2380914 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148764} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3389252 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148764} + m_Mesh: {fileID: 4300000, guid: 5ddc673c3add8d44ca7de2b080765736, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1265160060230792} + m_IsPrefabParent: 1 +--- !u!1 &1265160060230792 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4477146889216608} + m_Layer: 0 + m_Name: VIUModelOculusTouchLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4477146889216608 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1265160060230792} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 486248} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..4df2360093be86a81d36771d7173ca05c59c6051 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19e1aa1ea4e8cb74dae7634c5bb26c06 +timeCreated: 1496158020 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..8ad32f6329aa8158cec72ba00ae227495eb940c1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &124318 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 435506} + - 33: {fileID: 3355418} + - 23: {fileID: 2370978} + m_Layer: 0 + m_Name: ObjModelOculusTouchRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &435506 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124318} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4293629190323148} + m_RootOrder: 0 +--- !u!23 &2370978 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124318} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 29b14cf4189894a4eb6b66ce4c9ec156, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3355418 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 124318} + m_Mesh: {fileID: 4300000, guid: 5ddc673c3add8d44ca7de2b080765736, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1625120507809922} + m_IsPrefabParent: 1 +--- !u!1 &1625120507809922 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4293629190323148} + m_Layer: 0 + m_Name: VIUModelOculusTouchRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4293629190323148 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1625120507809922} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 435506} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..3dfa1496b0677b794a939c3a0c52a7f31797bdc4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelOculusTouchRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb9aa177fa87fc44d831255bf057c139 +timeCreated: 1496158025 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab new file mode 100644 index 0000000000000000000000000000000000000000..33f2eccfd07bbd6912159ebf68f7225a167e7b1b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &160758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 487702} + - 33: {fileID: 3334042} + - 23: {fileID: 2354682} + m_Layer: 0 + m_Name: ObjModelViveController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &487702 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4647123020713812} + m_RootOrder: 0 +--- !u!23 &2354682 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3334042 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_Mesh: {fileID: 4300000, guid: a84c25639fd3f5b47826a4a5e99e0428, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1793084268422988} + m_IsPrefabParent: 1 +--- !u!1 &1793084268422988 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4647123020713812} + m_Layer: 0 + m_Name: VIUModelUnknown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4647123020713812 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1793084268422988} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 487702} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..d8d45792aa1027d9de012f557313a2d7e90f9785 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelUnknown.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4e1e979cda7b354b8d19911537d9e9e +timeCreated: 1554126211 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab new file mode 100644 index 0000000000000000000000000000000000000000..1a580de7b04a2ad1aa279acc8d6f5768308de35c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &140004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 479554} + - 33: {fileID: 3380088} + - 23: {fileID: 2310740} + m_Layer: 0 + m_Name: ObjModelViveBaseStation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &479554 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 140004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4984866688650410} + m_RootOrder: 0 +--- !u!23 &2310740 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 140004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3380088 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 140004} + m_Mesh: {fileID: 4300002, guid: 049146e7ae633314bac999005e1fefb9, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1906513972533550} + m_IsPrefabParent: 1 +--- !u!1 &1906513972533550 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4984866688650410} + m_Layer: 0 + m_Name: VIUModelViveBaseStation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4984866688650410 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1906513972533550} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 479554} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..8c34c645fbe1f9feaa77867bfb89814e33d3231a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveBaseStation.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9a9a167dab56c2458daea76c851f6e5 +timeCreated: 1496158033 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab new file mode 100644 index 0000000000000000000000000000000000000000..d809093671c570953b92a47b9a265243060383d4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &160758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 487702} + - 33: {fileID: 3334042} + - 23: {fileID: 2354682} + m_Layer: 0 + m_Name: ObjModelViveController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &487702 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4647123020713812} + m_RootOrder: 0 +--- !u!23 &2354682 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3334042 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160758} + m_Mesh: {fileID: 4300000, guid: a84c25639fd3f5b47826a4a5e99e0428, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1793084268422988} + m_IsPrefabParent: 1 +--- !u!1 &1793084268422988 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4647123020713812} + m_Layer: 0 + m_Name: VIUModelViveController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4647123020713812 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1793084268422988} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 487702} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..e4227e15c601d4746c6185c25458aa218f23c730 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveController.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd41dc1459ac9a945ab13148fcaf6574 +timeCreated: 1496158041 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..36fbf1bb898b1366b4f4381c6ea0d8d7f3c13c5e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &136058 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 415756} + m_Layer: 0 + m_Name: VIUModelViveCosmosControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150984 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 488844} + m_Layer: 0 + m_Name: ObjModelViveCosmosControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &191716 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 476562} + - 33: {fileID: 3368698} + - 23: {fileID: 2301714} + m_Layer: 0 + m_Name: vive_cosmos_controller_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415756 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136058} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 488844} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &476562 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 488844} + m_RootOrder: 0 +--- !u!4 &488844 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150984} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: + - {fileID: 476562} + m_Father: {fileID: 415756} + m_RootOrder: 0 +--- !u!23 &2301714 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191716} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3368698 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191716} + m_Mesh: {fileID: 4300000, guid: 9af60db94080f0b409bb776a936cdc39, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 136058} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..6a06121bcecfa9538682111cfe2b316ba199c5ae --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af1e002043388548a5048c62287af4c +timeCreated: 1559029139 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..7e2327903068fff33aa0204722a8cf18984c58a0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &108294 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 451270} + m_Layer: 0 + m_Name: ObjModelViveCosmosControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &117894 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 404106} + - 33: {fileID: 3380472} + - 23: {fileID: 2323648} + m_Layer: 0 + m_Name: vive_cosmos_controller_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189066 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 443350} + m_Layer: 0 + m_Name: VIUModelViveCosmosControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &404106 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117894} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 451270} + m_RootOrder: 0 +--- !u!4 &443350 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189066} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 451270} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &451270 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108294} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: + - {fileID: 404106} + m_Father: {fileID: 443350} + m_RootOrder: 0 +--- !u!23 &2323648 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117894} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3380472 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117894} + m_Mesh: {fileID: 4300000, guid: 9af60db94080f0b409bb776a936cdc39, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 189066} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..e856d4ad06e94591cdb408db18893fb1e4c85319 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveCosmosControllerRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e0753deab720f945b4f2dc9ae9eac64 +timeCreated: 1559029143 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab new file mode 100644 index 0000000000000000000000000000000000000000..9a225b3b3d90135bb5591dc6b14532b4bd288d51 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab @@ -0,0 +1,582 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &103028 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 420966} + m_Layer: 0 + m_Name: ObjModelViveFocusChirp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &107980 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 445614} + - 33: {fileID: 3333004} + - 23: {fileID: 2318800} + m_Layer: 0 + m_Name: __CM__HomeButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119372 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 490832} + m_Layer: 0 + m_Name: VIUModelViveFocusChirp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &131736 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 452652} + - 33: {fileID: 3317372} + - 23: {fileID: 2350684} + m_Layer: 0 + m_Name: __CM__TriggerKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134998 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 479082} + - 33: {fileID: 3304168} + - 23: {fileID: 2389540} + m_Layer: 0 + m_Name: __CM__TouchPad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &137814 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 455968} + - 33: {fileID: 3305116} + - 23: {fileID: 2353718} + m_Layer: 0 + m_Name: __CM__BeamOrigin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143106 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 497522} + - 33: {fileID: 3319028} + - 23: {fileID: 2380732} + m_Layer: 0 + m_Name: __CM__Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148160 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 401114} + - 33: {fileID: 3362920} + - 23: {fileID: 2378492} + m_Layer: 0 + m_Name: __CM__TouchPad_Touch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &172180 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 450206} + - 33: {fileID: 3305358} + - 23: {fileID: 2302894} + m_Layer: 0 + m_Name: __CM__AppButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197600 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 428566} + - 33: {fileID: 3305684} + - 23: {fileID: 2361974} + m_Layer: 0 + m_Name: __CM__Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &401114 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148160} + m_LocalRotation: {x: 6.123234e-17, y: 1, z: -6.123234e-17, w: 5.0532154e-16} + m_LocalPosition: {x: -0.000015350603, y: 0.016700575, z: 0.016473612} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 6 +--- !u!4 &420966 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 450206} + - {fileID: 455968} + - {fileID: 497522} + - {fileID: 428566} + - {fileID: 445614} + - {fileID: 479082} + - {fileID: 401114} + - {fileID: 452652} + m_Father: {fileID: 490832} + m_RootOrder: 0 +--- !u!4 &428566 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197600} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.00003749192, y: -0.014117872, z: -0.0059978534} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 3 +--- !u!4 &445614 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107980} + m_LocalRotation: {x: 0, y: -4.6022926e-16, z: -0, w: 1} + m_LocalPosition: {x: 0.010385159, y: 0.005547008, z: -0.014181708} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 4 +--- !u!4 &450206 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172180} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.010385159, y: 0.0055501973, z: -0.0141863255} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 0 +--- !u!4 &452652 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131736} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.000016388727, y: -0.008300389, z: 0.026415166} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 7 +--- !u!4 &455968 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137814} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 1 +--- !u!4 &479082 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134998} + m_LocalRotation: {x: 6.123234e-17, y: 1, z: -6.123234e-17, w: 5.0532154e-16} + m_LocalPosition: {x: -0.000015350603, y: 0.013661661, z: 0.016473612} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 5 +--- !u!4 &490832 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119372} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 420966} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &497522 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143106} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.000015351463, y: -0.010883665, z: -0.0013479609} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 420966} + m_RootOrder: 2 +--- !u!23 &2302894 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172180} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2318800 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107980} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2350684 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131736} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2353718 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137814} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2361974 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197600} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2378492 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148160} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2380732 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143106} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2389540 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134998} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3304168 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134998} + m_Mesh: {fileID: 4300006, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3305116 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137814} + m_Mesh: {fileID: 4300000, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3305358 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172180} + m_Mesh: {fileID: 4300010, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3305684 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197600} + m_Mesh: {fileID: 4300002, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3317372 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131736} + m_Mesh: {fileID: 4300004, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3319028 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143106} + m_Mesh: {fileID: 4300014, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3333004 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107980} + m_Mesh: {fileID: 4300012, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!33 &3362920 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148160} + m_Mesh: {fileID: 4300008, guid: 862629c097036324e8afeb4ce76e7a36, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 119372} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..caa6c7d82a1b9bec3120e0b1707d3d5708a23221 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusChirp.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4923ecd69927e647a68c24ca7ebc44b +timeCreated: 1592905042 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab new file mode 100644 index 0000000000000000000000000000000000000000..26f3dfa8dc446ddb565e1f0c5bd3fa5149ef4066 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab @@ -0,0 +1,454 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &119746 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 471830} + - 33: {fileID: 3381562} + - 23: {fileID: 2352948} + m_Layer: 0 + m_Name: AppButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &122708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 444806} + - 33: {fileID: 3376948} + - 23: {fileID: 2346004} + m_Layer: 0 + m_Name: body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &125062 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 468478} + - 33: {fileID: 3388860} + - 23: {fileID: 2350704} + m_Layer: 0 + m_Name: side_button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &141418 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 459350} + - 33: {fileID: 3337106} + - 23: {fileID: 2341806} + m_Layer: 0 + m_Name: TouchPad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &146580 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 462306} + - 33: {fileID: 3317896} + - 23: {fileID: 2360380} + m_Layer: 0 + m_Name: trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150120 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 426032} + m_Layer: 0 + m_Name: ObjModelViveFocusFinch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &158684 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 446438} + - 33: {fileID: 3301220} + - 23: {fileID: 2353476} + m_Layer: 0 + m_Name: HomeButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161592 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 472608} + m_Layer: 0 + m_Name: VIUModelViveFocusFinch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &426032 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150120} + m_LocalRotation: {x: 0.7071069, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: + - {fileID: 471830} + - {fileID: 444806} + - {fileID: 446438} + - {fileID: 468478} + - {fileID: 459350} + - {fileID: 462306} + m_Father: {fileID: 472608} + m_RootOrder: 0 +--- !u!4 &444806 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 122708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 1 +--- !u!4 &446438 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158684} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: -0.0025904092, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 2 +--- !u!4 &459350 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 141418} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 4 +--- !u!4 &462306 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146580} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 5 +--- !u!4 &468478 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125062} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.00536715, y: 0.019170923, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 3 +--- !u!4 &471830 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119746} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: -0.0025904092, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 426032} + m_RootOrder: 0 +--- !u!4 &472608 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161592} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.1092} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 426032} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2341806 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 141418} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2346004 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 122708} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2350704 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125062} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2352948 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119746} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2353476 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158684} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2360380 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146580} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3301220 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158684} + m_Mesh: {fileID: 4300008, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!33 &3317896 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146580} + m_Mesh: {fileID: 4300014, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!33 &3337106 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 141418} + m_Mesh: {fileID: 4300000, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!33 &3376948 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 122708} + m_Mesh: {fileID: 4300016, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!33 &3381562 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119746} + m_Mesh: {fileID: 4300006, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!33 &3388860 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125062} + m_Mesh: {fileID: 4300018, guid: aa58a01d293edc24987fbbf6ec9578ad, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 161592} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..25ad6703797b7edc4d88ac65ff185a5456809cc2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveFocusFinch.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c997af07165b6348bd95769a755cac9 +timeCreated: 1518593403 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab new file mode 100644 index 0000000000000000000000000000000000000000..55987956a4cccc537322aaeb54d7a3623b6b85e4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &150636 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 498250} + - 33: {fileID: 3302616} + - 23: {fileID: 2329434} + m_Layer: 0 + m_Name: ObjModelViveTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &498250 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150636} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 4648916280100144} + m_RootOrder: 0 +--- !u!23 &2329434 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150636} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3302616 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150636} + m_Mesh: {fileID: 4300000, guid: 41a3b4523a140e245b18852ca870c49e, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1824519365176864} + m_IsPrefabParent: 1 +--- !u!1 &1824519365176864 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 4648916280100144} + m_Layer: 0 + m_Name: VIUModelViveTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4648916280100144 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1824519365176864} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 498250} + m_Father: {fileID: 0} + m_RootOrder: 0 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..781305d62cd9f47609534864f5c98e2df91f969f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelViveTracker.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8b466cf32c6b7a49832b2d706b33923 +timeCreated: 1496157992 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f974c9b1e39faaf8b9522a03d292b0c728534f3c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &137934 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 408342} + m_Layer: 0 + m_Name: VIUModelWMRControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176186 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 435506} + - 33: {fileID: 3338398} + - 23: {fileID: 2301478} + m_Layer: 0 + m_Name: ObjModelWMRControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &408342 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137934} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 435506} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &435506 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176186} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 408342} + m_RootOrder: 0 +--- !u!23 &2301478 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176186} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3338398 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176186} + m_Mesh: {fileID: 4300000, guid: 26b8ac0911f9d0c4bbee55586c74b36c, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 137934} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..deb515c41d5c2068eae8e62949ecce7e7bab5b4e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerLeft.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 660ddf181ae0cf34e83efbe29b90acc9 +timeCreated: 1544690257 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f11efa79df18b6fc84c7f0295fa2831b23291b98 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &177298 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 448076} + - 33: {fileID: 3367326} + - 23: {fileID: 2360372} + m_Layer: 0 + m_Name: ObjModelWMRControllerLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &182816 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 472018} + m_Layer: 0 + m_Name: VIUModelWMRControllerRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &448076 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177298} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -100, y: 100, z: 100} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_Children: [] + m_Father: {fileID: 472018} + m_RootOrder: 0 +--- !u!4 &472018 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 448076} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2360372 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177298} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3367326 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177298} + m_Mesh: {fileID: 4300000, guid: 26b8ac0911f9d0c4bbee55586c74b36c, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 182816} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..21f646742bbc7a6add83a3b491a8698926934da7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/VIUModelWMRControllerRight.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7d62230002201a4bb07a94deec56e48 +timeCreated: 1544690275 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/pyramid.obj.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/pyramid.obj.meta new file mode 100644 index 0000000000000000000000000000000000000000..496d2fb4dac24e8765926bc38dcc0da25c3ded6d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Models/pyramid.obj.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 34f5197a8108c0744a2f1b72b7bfa340 +timeCreated: 1476859903 +licenseType: Store +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: default + 100002: //RootNode + 400000: default + 400002: //RootNode + 2300000: default + 3300000: default + 4300000: default + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites.meta new file mode 100644 index 0000000000000000000000000000000000000000..56d89ecdf8f425e3f6e3a19f5aa2ae1e6661eadf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 068400893fd58584d87feac773bfc07f +folderAsset: yes +timeCreated: 1502372612 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..de786c001931cb6b80cbf5206078af47e247f0e7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf33543d0ea95bf372ad7b86fac859ab9731a83d3d8a0b5d2968454f1353960e +size 28161 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..10e10c67647732af8e4c974957658e86cb3ab68e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Sprites/binding_ui_icons.png.meta @@ -0,0 +1,726 @@ +fileFormatVersion: 2 +guid: 3a23c65532a98fa409e94bf90a84543e +TextureImporter: + internalIDToNameTable: + - first: + 213: 21300000 + second: binding_ui_ViveHMD + - first: + 213: 21300002 + second: binding_ui_OculusHMD + - first: + 213: 21300004 + second: binding_ui_ViveController + - first: + 213: 21300006 + second: binding_ui_ViveTracker + - first: + 213: 21300008 + second: binding_ui_ViveBaseStation + - first: + 213: 21300010 + second: binding_ui_Unknown + - first: + 213: 21300012 + second: binding_ui_ViveController_y + - first: + 213: 21300014 + second: binding_ui_ViveController_x + - first: + 213: 21300016 + second: binding_ui_ViveController_z + - first: + 213: 21300018 + second: binding_ui_check + - first: + 213: 21300020 + second: binding_ui_KnucklesLeft + - first: + 213: 21300022 + second: binding_ui_KnucklesRight + - first: + 213: 21300024 + second: binding_ui_OculusTouchLeft + - first: + 213: 21300026 + second: binding_ui_OculusTouchRight + - first: + 213: 21300028 + second: binding_ui_OculusSensor + - first: + 213: 21300030 + second: binding_ui_warning + - first: + 213: 21300032 + second: binding_ui_cross + - first: + 213: 21300034 + second: binding_ui_HMD_y + - first: + 213: 21300036 + second: binding_ui_HMD_x + - first: + 213: 21300038 + second: binding_ui_HMD_z + - first: + 213: 21300040 + second: binding_ui_ViveTracker_y + - first: + 213: 21300042 + second: binding_ui_ViveTracker_x + - first: + 213: 21300044 + second: binding_ui_ViveTracker_z + - first: + 213: 21300046 + second: binding_ui_edit + - first: + 213: 21300048 + second: binding_ui_minus + - first: + 213: 21300050 + second: binding_ui_Knuckles_z + - first: + 213: 21300052 + second: binding_ui_OculusTouch_z + - first: + 213: 21300054 + second: binding_ui_plus + - first: + 213: 21300056 + second: binding_ui_Knuckles_y + - first: + 213: 21300058 + second: binding_ui_Knuckles_x + - first: + 213: 21300060 + second: binding_ui_OculusTouch_y + - first: + 213: 21300062 + second: binding_ui_OculusTouch_x + - first: + 213: 21300064 + second: binding_ui_icons_ViveHMD + - first: + 213: 21300066 + second: binding_ui_icons_OculusHMD + - first: + 213: 21300068 + second: binding_ui_icons_ViveController + - first: + 213: 21300070 + second: binding_ui_icons_ViveTracker + - first: + 213: 21300072 + second: binding_ui_icons_ViveBaseStation + - first: + 213: 21300074 + second: binding_ui_icons_KnucklesLeft + - first: + 213: 21300076 + second: binding_ui_icons_KnucklesRight + - first: + 213: 21300078 + second: binding_ui_icons_OculusTouchLeft + - first: + 213: 21300080 + second: binding_ui_icons_OculusTouchRight + - first: + 213: 21300082 + second: binding_ui_icons_OculusSensor + - first: + 213: 21300084 + second: binding_ui_project_HMD + - first: + 213: 21300086 + second: binding_ui_project_KnucklesRight + - first: + 213: 21300088 + second: binding_ui_icons_Unknown + - first: + 213: 21300090 + second: binding_ui_icons_check + - first: + 213: 21300092 + second: binding_ui_icons_minus + - first: + 213: 21300094 + second: binding_ui_project_OculusTouchRight + - first: + 213: 21300096 + second: binding_ui_icons_warn + - first: + 213: 21300098 + second: binding_ui_icons_cross + - first: + 213: 21300100 + second: binding_ui_icons_plus + - first: + 213: 21300102 + second: binding_ui_project_ViveController + - first: + 213: 21300104 + second: binding_ui_project_ViveTracker + - first: + 213: 21300106 + second: binding_ui_icons_chain + - first: + 213: 21300108 + second: binding_ui_icons_edit + - first: + 213: 21300110 + second: binding_ui_icons_arrow + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: binding_ui_icons_ViveHMD + rect: + serializedVersion: 2 + x: 2 + y: 410 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 06305410000000000800000000000000 + internalID: 21300064 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_OculusHMD + rect: + serializedVersion: 2 + x: 104 + y: 410 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 26305410000000000800000000000000 + internalID: 21300066 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_ViveController + rect: + serializedVersion: 2 + x: 206 + y: 410 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 46305410000000000800000000000000 + internalID: 21300068 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_ViveTracker + rect: + serializedVersion: 2 + x: 308 + y: 410 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 66305410000000000800000000000000 + internalID: 21300070 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_ViveBaseStation + rect: + serializedVersion: 2 + x: 410 + y: 410 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 86305410000000000800000000000000 + internalID: 21300072 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_KnucklesRight + rect: + serializedVersion: 2 + x: 104 + y: 308 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: c6305410000000000800000000000000 + internalID: 21300076 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_OculusTouchRight + rect: + serializedVersion: 2 + x: 308 + y: 308 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 07305410000000000800000000000000 + internalID: 21300080 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_OculusSensor + rect: + serializedVersion: 2 + x: 410 + y: 308 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 27305410000000000800000000000000 + internalID: 21300082 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_project_HMD + rect: + serializedVersion: 2 + x: 7 + y: 156 + width: 90 + height: 136 + alignment: 9 + pivot: {x: 0.5, y: 0.7328} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 47305410000000000800000000000000 + internalID: 21300084 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_project_KnucklesRight + rect: + serializedVersion: 2 + x: 134 + y: 232 + width: 52 + height: 70 + alignment: 9 + pivot: {x: 0.3846, y: 1.0571} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 67305410000000000800000000000000 + internalID: 21300086 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_Unknown + rect: + serializedVersion: 2 + x: 207 + y: 206 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 87305410000000000800000000000000 + internalID: 21300088 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_check + rect: + serializedVersion: 2 + x: 308 + y: 206 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: a7305410000000000800000000000000 + internalID: 21300090 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_minus + rect: + serializedVersion: 2 + x: 410 + y: 206 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: c7305410000000000800000000000000 + internalID: 21300092 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_project_OculusTouchRight + rect: + serializedVersion: 2 + x: 135 + y: 150 + width: 45 + height: 48 + alignment: 9 + pivot: {x: 0.4222, y: 1.125} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: e7305410000000000800000000000000 + internalID: 21300094 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_warn + rect: + serializedVersion: 2 + x: 206 + y: 104 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 08305410000000000800000000000000 + internalID: 21300096 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_cross + rect: + serializedVersion: 2 + x: 308 + y: 104 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 28305410000000000800000000000000 + internalID: 21300098 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_plus + rect: + serializedVersion: 2 + x: 410 + y: 104 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 48305410000000000800000000000000 + internalID: 21300100 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_project_ViveController + rect: + serializedVersion: 2 + x: 27 + y: 36 + width: 48 + height: 86 + alignment: 9 + pivot: {x: 0.5, y: 0.7751} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 68305410000000000800000000000000 + internalID: 21300102 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_project_ViveTracker + rect: + serializedVersion: 2 + x: 133 + y: 45 + width: 41 + height: 21 + alignment: 9 + pivot: {x: 0.5, y: 0.3333} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 88305410000000000800000000000000 + internalID: 21300104 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_chain + rect: + serializedVersion: 2 + x: 206 + y: 2 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: a8305410000000000800000000000000 + internalID: 21300106 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_edit + rect: + serializedVersion: 2 + x: 308 + y: 2 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: c8305410000000000800000000000000 + internalID: 21300108 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: binding_ui_icons_arrow + rect: + serializedVersion: 2 + x: 410 + y: 2 + width: 100 + height: 100 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: e8305410000000000800000000000000 + internalID: 21300110 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader new file mode 100644 index 0000000000000000000000000000000000000000..b19ce99779230ac82c9e39b77a5ed5ef7914184d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader @@ -0,0 +1,30 @@ +// http://wiki.unity3d.com/index.php?title=UnlitAlphaWithFade +Shader "Unlit/UnlitAlphaWithFade" +{ + Properties + { + _Color ("Color Tint", Color) = (1,1,1,1) + _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" + } + + Category + { + Lighting Off + ZWrite On + Cull back + Blend SrcAlpha OneMinusSrcAlpha + Tags {Queue=Transparent} + + SubShader + { + Pass + { + SetTexture [_MainTex] + { + ConstantColor [_Color] + Combine Texture * constant + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader.meta new file mode 100644 index 0000000000000000000000000000000000000000..8a97fb7c096d1bb775e04d492f4c5ec9dd0d411b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/Unlit-AlphaWithFade.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9e9f91441a2f9e046a588efe5b089830 +timeCreated: 1478185598 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab new file mode 100644 index 0000000000000000000000000000000000000000..62cdb3ab526c215c3b7747ac5b06bfeb7a76a6ab --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab @@ -0,0 +1,6568 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100552 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22422820} + - 222: {fileID: 22254018} + - 114: {fileID: 11490932} + - 114: {fileID: 11468400} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100702 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22465084} + - 114: {fileID: 11449878} + - 222: {fileID: 22265688} + - 114: {fileID: 11439752} + - 114: {fileID: 11494366} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &101448 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22413782} + - 223: {fileID: 22362282} + - 114: {fileID: 11431294} + - 114: {fileID: 11472886} + m_Layer: 5 + m_Name: VIUBindingInterface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104052 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491092} + - 222: {fileID: 22208752} + - 114: {fileID: 11404780} + - 114: {fileID: 11474218} + - 114: {fileID: 11445044} + m_Layer: 5 + m_Name: TrackingDevice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104876 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22422164} + - 222: {fileID: 22283104} + - 114: {fileID: 11459592} + - 114: {fileID: 11459248} + m_Layer: 5 + m_Name: CloseRightPanelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105596 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22468210} + - 222: {fileID: 22258420} + - 114: {fileID: 11429164} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &107116 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22461552} + - 222: {fileID: 22260014} + - 114: {fileID: 11474334} + m_Layer: 5 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &110688 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22411604} + - 222: {fileID: 22242574} + - 114: {fileID: 11411574} + - 114: {fileID: 11432200} + - 114: {fileID: 11413822} + m_Layer: 5 + m_Name: NewItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &110708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22478724} + - 114: {fileID: 11471506} + - 114: {fileID: 11404572} + - 114: {fileID: 11431242} + m_Layer: 5 + m_Name: RoleButtons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &111790 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22459290} + - 222: {fileID: 22259668} + - 114: {fileID: 11450988} + m_Layer: 5 + m_Name: DeviceSerialNumber + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &113182 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22435062} + - 222: {fileID: 22254588} + - 114: {fileID: 11447646} + - 114: {fileID: 11422598} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &115938 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22402206} + - 222: {fileID: 22215328} + - 114: {fileID: 11488952} + - 114: {fileID: 11488602} + m_Layer: 5 + m_Name: HeighLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119286 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22453814} + - 222: {fileID: 22260378} + - 114: {fileID: 11445958} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119440 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22429782} + - 222: {fileID: 22286322} + - 114: {fileID: 11451460} + - 114: {fileID: 11421076} + m_Layer: 5 + m_Name: RoleSelection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123376 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22407384} + - 222: {fileID: 22202584} + - 114: {fileID: 11455550} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123654 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22475274} + - 222: {fileID: 22271666} + - 114: {fileID: 11448842} + - 114: {fileID: 11441384} + - 114: {fileID: 11469876} + - 114: {fileID: 11428044} + m_Layer: 5 + m_Name: ButtonClose + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &126368 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22475308} + - 222: {fileID: 22260534} + - 114: {fileID: 11432190} + - 114: {fileID: 11453084} + m_Layer: 5 + m_Name: Selected + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &126674 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22477860} + - 222: {fileID: 22259744} + - 114: {fileID: 11481330} + - 114: {fileID: 11454262} + m_Layer: 5 + m_Name: HeighLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &126910 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22499906} + - 222: {fileID: 22210808} + - 114: {fileID: 11443498} + - 114: {fileID: 11484512} + - 114: {fileID: 11445754} + m_Layer: 5 + m_Name: Config + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &128544 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22462600} + - 114: {fileID: 11493018} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &130230 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22424946} + - 222: {fileID: 22260622} + - 114: {fileID: 11443610} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &131816 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22459116} + - 222: {fileID: 22213496} + - 114: {fileID: 11410972} + - 114: {fileID: 11442972} + m_Layer: 5 + m_Name: CloseBindintInterfaceButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132326 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409774} + - 222: {fileID: 22278676} + - 114: {fileID: 11405544} + - 114: {fileID: 11417554} + m_Layer: 5 + m_Name: Selected + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133108 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22427730} + - 222: {fileID: 22299350} + - 114: {fileID: 11425110} + - 114: {fileID: 11418738} + - 114: {fileID: 11475838} + m_Layer: 5 + m_Name: Role + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134072 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22451718} + - 222: {fileID: 22275010} + - 114: {fileID: 11409174} + - 114: {fileID: 11425740} + - 114: {fileID: 11436838} + - 114: {fileID: 11466546} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134688 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22488220} + - 114: {fileID: 11434524} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134858 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22492774} + - 222: {fileID: 22231204} + - 114: {fileID: 11446036} + - 114: {fileID: 11481566} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134870 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22446338} + - 222: {fileID: 22212292} + - 114: {fileID: 11469994} + - 114: {fileID: 11478102} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &135134 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22468984} + - 222: {fileID: 22292208} + - 114: {fileID: 11403280} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &135570 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22426772} + - 222: {fileID: 22243416} + - 114: {fileID: 11468606} + - 114: {fileID: 11405426} + - 114: {fileID: 11434924} + m_Layer: 5 + m_Name: ButtonReload + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &135972 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22419498} + - 222: {fileID: 22271378} + - 114: {fileID: 11485014} + - 114: {fileID: 11486804} + - 114: {fileID: 11458152} + m_Layer: 5 + m_Name: InputDeviceSN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &136040 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491916} + - 222: {fileID: 22255998} + - 114: {fileID: 11498778} + - 114: {fileID: 11433506} + - 114: {fileID: 11472724} + - 114: {fileID: 11405600} + m_Layer: 5 + m_Name: ButtonSave + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &136540 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22437046} + - 222: {fileID: 22246090} + - 114: {fileID: 11494158} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &138560 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22451350} + - 222: {fileID: 22216366} + - 114: {fileID: 11488236} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &138876 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22419352} + - 222: {fileID: 22291148} + - 114: {fileID: 11470452} + - 95: {fileID: 9587312} + - 114: {fileID: 11421100} + - 114: {fileID: 11416064} + m_Layer: 5 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142718 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22464804} + - 222: {fileID: 22277510} + - 114: {fileID: 11409972} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145760 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22437368} + - 222: {fileID: 22211682} + - 114: {fileID: 11427078} + - 114: {fileID: 11417430} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145890 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22460208} + - 222: {fileID: 22221734} + - 114: {fileID: 11474498} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &146014 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22456630} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147286 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22479774} + - 222: {fileID: 22277380} + - 114: {fileID: 11423652} + - 114: {fileID: 11450008} + - 114: {fileID: 11431036} + m_Layer: 5 + m_Name: ButtonAdd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147682 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22459854} + - 222: {fileID: 22202218} + - 114: {fileID: 11419428} + - 114: {fileID: 11433608} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148210 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497006} + - 222: {fileID: 22205256} + - 114: {fileID: 11490080} + - 114: {fileID: 11430434} + - 114: {fileID: 11480522} + - 114: {fileID: 11427618} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148476 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22470624} + - 222: {fileID: 22283262} + - 114: {fileID: 11424382} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150630 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405456} + - 222: {fileID: 22257440} + - 114: {fileID: 11472392} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &151362 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22486470} + - 222: {fileID: 22274120} + - 114: {fileID: 11488680} + - 114: {fileID: 11484168} + - 114: {fileID: 11490060} + m_Layer: 5 + m_Name: ButtonEdit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156848 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22475208} + - 222: {fileID: 22239156} + - 114: {fileID: 11453156} + - 114: {fileID: 11492554} + - 114: {fileID: 11402866} + m_Layer: 5 + m_Name: TrackingMap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156988 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22438874} + - 222: {fileID: 22236074} + - 114: {fileID: 11456966} + m_Layer: 5 + m_Name: Role + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &159184 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22453420} + - 222: {fileID: 22210536} + - 114: {fileID: 11419472} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163248 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491168} + - 222: {fileID: 22228076} + - 114: {fileID: 11415140} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163510 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22453590} + - 222: {fileID: 22243034} + - 114: {fileID: 11476590} + m_Layer: 5 + m_Name: DirtySymble + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &166614 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22431776} + - 222: {fileID: 22230976} + - 114: {fileID: 11456242} + - 114: {fileID: 11447498} + - 114: {fileID: 11469550} + m_Layer: 5 + m_Name: ButtonDelete + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &170394 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452618} + - 222: {fileID: 22200346} + - 114: {fileID: 11471070} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &175610 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22432026} + - 222: {fileID: 22235510} + - 114: {fileID: 11473354} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &175642 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22469512} + - 222: {fileID: 22237574} + - 114: {fileID: 11466814} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &177530 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22488450} + - 222: {fileID: 22230046} + - 114: {fileID: 11427264} + - 114: {fileID: 11433916} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &179110 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22499426} + - 222: {fileID: 22297062} + - 114: {fileID: 11451022} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &179770 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22495054} + - 222: {fileID: 22205740} + - 114: {fileID: 11437904} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &182832 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22447664} + - 222: {fileID: 22221242} + m_Layer: 5 + m_Name: View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183542 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22496640} + - 222: {fileID: 22277422} + - 114: {fileID: 11462042} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188344 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22402670} + - 114: {fileID: 11451602} + - 114: {fileID: 11449470} + - 114: {fileID: 11486618} + - 222: {fileID: 22210990} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192504 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22440330} + - 222: {fileID: 22299824} + - 114: {fileID: 11435926} + m_Layer: 5 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &194734 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22475682} + - 222: {fileID: 22271598} + - 114: {fileID: 11483846} + - 114: {fileID: 11461934} + - 114: {fileID: 11496206} + - 114: {fileID: 11496094} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195256 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22412100} + - 222: {fileID: 22260000} + - 114: {fileID: 11423216} + m_Layer: 5 + m_Name: Bindings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195828 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22424708} + - 222: {fileID: 22277186} + - 114: {fileID: 11445148} + - 114: {fileID: 11445098} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &196376 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22439012} + - 222: {fileID: 22216710} + - 114: {fileID: 11478818} + - 114: {fileID: 11406472} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &199604 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22461414} + - 222: {fileID: 22263656} + - 114: {fileID: 11434130} + m_Layer: 5 + m_Name: ButtonCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &199946 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22470244} + - 222: {fileID: 22290308} + - 114: {fileID: 11436474} + - 95: {fileID: 9568468} + - 114: {fileID: 11411648} + m_Layer: 5 + m_Name: RoleSet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!95 &9568468 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199946} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 5c0a01cdabc7f2647b3727c432959904, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!95 &9587312 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e9b3b338cda67e8448178c6959553a93, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!114 &11402866 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5411765, g: 0.5411765, b: 0.5411765, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11403280 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135134} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: The config file will be stored in "vive_role_device_bindings.cfg". +--- !u!114 &11404572 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 25 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11404780 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.62352943, g: 0.9254902, b: 0.15686275, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300102, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11405426 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.66176474, g: 0.66176474, b: 0.66176474, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11468606} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11445754} + m_MethodName: ReloadConfig + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: RefreshRoleSelection + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: RefreshSelectedRoleBindings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11405544 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11405600 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11406472 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &11409174 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.735, g: 1, b: 0.97456, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11409972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 10 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11410972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11411574 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.735, g: 1, b: 0.97456, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11411648 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c4e61108c773b44ea56a358d2cec76c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_animator: {fileID: 9568468} + m_roleSetButtonItem: {fileID: 11427618} + m_bindingItem: {fileID: 11466546} + m_onSelectRoleSet: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11475838} + m_MethodName: SelecRoleSet + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: SelecRoleSet + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BindingInterface.BindingInterfaceRoleSetPanelController+UnityEventSelectRole, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onEditBinding: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: SetAnimatorSlideLeft + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: SlideRoleSetViewLeft + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: DisableSelection + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: SetAnimatorIsEditing + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: SetAnimatorSlideLeft + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: SlideDeviceViewLeft + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 11475838} + m_MethodName: SelectBindingDevice + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: DisableTracking + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BindingInterface.BindingInterfaceRoleSetPanelController+UnityEventString, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onFinishEditBinding: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11416064} + m_MethodName: SetAnimatorIsEditing + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: SetAnimatorSlideRight + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: SlideRoleSetViewRight + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: EnableSelection + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: DisableHeightLightBinding + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: DisableTracking + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!114 &11413822 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 5 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11415140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 60 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: BodyRole +--- !u!114 &11416064 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0702b282f65fea14fb2a1264fc8b0a58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_animator: {fileID: 9587312} + m_inputDeviceSN: {fileID: 11486804} + m_modelIcon: {fileID: 11427078} + m_buttonCheck: {fileID: 11434130} + m_deviceItem: {fileID: 11445044} + m_deviceViewMargin: 20 + m_showDebugBoundRect: 0 + m_onSelectDevice: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: StartEditBinding + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: UpdateForBindingChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BindingInterface.BindingInterfaceDevicePanelController+UnityEventString, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onMouseEnterDevice: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: EnableHeightLightBinding + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BindingInterface.BindingInterfaceDevicePanelController+UnityEventString, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_onMouseExitDevice: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: DisableHeightLightBinding + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.BindingInterface.BindingInterfaceDevicePanelController+UnityEventString, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11417430 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &11417554 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11418738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 50 + m_Bottom: 50 + m_ChildAlignment: 1 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11419428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 48 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &11419472 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 159184} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11421076 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1184210157, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowSwitchOff: 0 +--- !u!114 &11421100 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 50 + m_Bottom: 50 + m_ChildAlignment: 1 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11422598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11423216 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 20 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11423652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11424382 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Reload +--- !u!114 &11425110 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8014706, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11425740 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 5 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11427078 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5735294, g: 0.5735294, b: 0.5735294, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300088, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11427264 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.33823532, g: 0.33823532, b: 0.33823532, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300088, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11427618 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b18a9703817b4e49afa83028949f791, type: 3} + m_Name: + m_EditorClassIdentifier: + m_toggle: {fileID: 11490080} + m_textName: {fileID: 11415140} +--- !u!114 &11428044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11429164 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 55 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 60 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Select a device +--- !u!114 &11430434 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11431036 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11431242 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &11431294 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11432190 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.43137255, g: 0.43137255, b: 0.43137255, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11432200 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11433506 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.66176474, g: 0.66176474, b: 0.66176474, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11498778} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11445754} + m_MethodName: SaveConfig + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11433608 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11433916 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11434130 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199604} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.7352941, g: 0.7352941, b: 0.7352941, a: 1} + m_HighlightedColor: {r: 0.9044118, g: 0.9044118, b: 0.9044118, a: 1} + m_PressedColor: {r: 0.73333335, g: 0.73333335, b: 0.73333335, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11445148} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11416064} + m_MethodName: DeselectCheckButton + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: ConfirmInputDeviceSN + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11434524 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 20 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11434924 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11435926 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192504} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5735294, g: 0.5735294, b: 0.5735294, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: or +--- !u!114 &11436474 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8088235, g: 0.8088235, b: 0.8088235, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11436838 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11437904 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 55 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 75 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'ViveRole + + Bindings + + Setup Menu' +--- !u!114 &11439752 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &11441384 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.66176474, g: 0.66176474, b: 0.66176474, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11448842} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11445754} + m_MethodName: ToggleBindingInterface + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11442972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11410972} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11445754} + m_MethodName: CloseBindingInterface + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11443498 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.87941176, b: 0.6985294, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11443610 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3de4cc72829dff14a9141c9bcba2fd79, type: 3} + m_Name: + m_EditorClassIdentifier: + texturePath: + - Sprites/binding_ui_icons +--- !u!114 &11445044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ef0b16736a3c80142a3d93f8b77cf995, type: 3} + m_Name: + m_EditorClassIdentifier: + m_imageModel: {fileID: 11404780} + m_button: {fileID: 11474218} +--- !u!114 &11445098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195828} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &11445148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195828} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.14705884, g: 1, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300090, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11445754 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b94ded620fdd64ca175c8d9bad0ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_closeExCamOnEnable: 1 + m_pathInfo: {fileID: 11403280} + m_dirtySymble: {fileID: 163510} +--- !u!114 &11445958 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11419472} + m_HandleRect: {fileID: 22453420} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11446036 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300098, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11447498 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11456242} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11466546} + m_MethodName: OnRemove + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11445754} + m_MethodName: SetDirty + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: UpdateForBindingChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11447646 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5147059, g: 0.5147059, b: 0.5147059, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300106, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11448842 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11449470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11449878 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22478724} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 22451350} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11445958} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11450008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11423652} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: SetAnimatorSlideLeft + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: SlideRoleSetViewLeft + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: DisableSelection + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: SetAnimatorSlideRight + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: SlideDeviceViewRight + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: FinishEditBindingNoEvent + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: DisableHeightLightBinding + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: EnableTracking + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11450988 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LHR-123456789 +--- !u!114 &11451022 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300108, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11451460 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11451602 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11453084 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11453156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 50 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &11454262 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11455550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ' Quit setting' +--- !u!114 &11456242 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11456966 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156988} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ExternalCamera +--- !u!114 &11458152 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 55 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11459248 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11459592} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: FinishEditBinding + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11459592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11461934 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 25 + m_Right: 25 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11462042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183542} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Save +--- !u!114 &11466546 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 63dda72f193755248a0d560ba97f8722, type: 3} + m_Name: + m_EditorClassIdentifier: + m_modelIcon: {fileID: 11427264} + m_deviceSN: {fileID: 11450988} + m_roleName: {fileID: 11456966} + m_editButton: {fileID: 11484168} + m_heighLight: {fileID: 11451602} +--- !u!114 &11466814 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.75686276, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300100, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11468400 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 25 + m_PreferredHeight: 25 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11468606 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11469550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11469876 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11469994 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 48 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter device serial number... +--- !u!114 &11470452 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7941176, g: 0.8296146, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11471070 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Click at the connected device +--- !u!114 &11471506 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1184210157, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowSwitchOff: 0 +--- !u!114 &11472392 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 10 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11472724 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11472886 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11473354 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: RightHand +--- !u!114 &11474218 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.8235294, g: 0.8235294, b: 0.8235294, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.8235294, g: 0.8235294, b: 0.8235294, a: 1} + m_DisabledColor: {r: 0.44852942, g: 0.44852942, b: 0.44852942, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11404780} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11445044} + m_MethodName: OnClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11416064} + m_MethodName: DeselectCheckButton + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11474334 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 55 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 4 + m_MaxSize: 60 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Choose a role +--- !u!114 &11474498 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300098, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11475838 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f3236748e205bc4f8edae2b70de113b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_roleButtonItem: {fileID: 11496094} + m_onBoundDevcieToRole: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11411648} + m_MethodName: RefreshSelectedRoleBindings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11445754} + m_MethodName: SetDirty + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11411648} + m_MethodName: FinishEditBinding + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!114 &11476590 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163510} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '*' +--- !u!114 &11478102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11478818 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300098, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11480522 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 20 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11481330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.83823526, b: 0.83823526, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11481566 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &11483846 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11481330} + toggleTransition: 1 + graphic: {fileID: 11405544} + m_Group: {fileID: 11471506} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11496094} + m_MethodName: OnValueChanged + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!114 &11484168 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11488680} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11466546} + m_MethodName: OnEdit + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11484512 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 50 + m_Bottom: 50 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11485014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11486618 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11486804 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11485014} + m_TextComponent: {fileID: 11419428} + m_Placeholder: {fileID: 11469994} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11416064} + m_MethodName: CheckInputDeviceSN + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 1.22 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11488236 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -146154839, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11488602 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11488680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11488952 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11490060 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11490080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.88235295, g: 0.88235295, b: 0.88235295, a: 1} + m_PressedColor: {r: 0.74509805, g: 0.74509805, b: 0.74509805, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11488952} + toggleTransition: 1 + graphic: {fileID: 11432190} + m_Group: {fileID: 11421076} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11427618} + m_MethodName: OnValueChanged + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!114 &11490932 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300110, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11492554 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -146154839, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11493018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 20 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11494158 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136540} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Add bindings to bind tracking device with specific role. +--- !u!114 &11494366 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.003921569} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11496094 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2aea897927fa7bd41a57ea8faafdb365, type: 3} + m_Name: + m_EditorClassIdentifier: + m_toggle: {fileID: 11483846} + m_textRoleName: {fileID: 11473354} +--- !u!114 &11496206 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11498778 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22200346 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170394} +--- !u!222 &22202218 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147682} +--- !u!222 &22202584 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123376} +--- !u!222 &22205256 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} +--- !u!222 &22205740 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179770} +--- !u!222 &22208752 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104052} +--- !u!222 &22210536 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 159184} +--- !u!222 &22210808 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126910} +--- !u!222 &22210990 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} +--- !u!222 &22211682 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145760} +--- !u!222 &22212292 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134870} +--- !u!222 &22213496 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131816} +--- !u!222 &22215328 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115938} +--- !u!222 &22216366 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138560} +--- !u!222 &22216710 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196376} +--- !u!222 &22221242 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182832} +--- !u!222 &22221734 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145890} +--- !u!222 &22228076 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163248} +--- !u!222 &22230046 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177530} +--- !u!222 &22230976 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166614} +--- !u!222 &22231204 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134858} +--- !u!222 &22235510 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175610} +--- !u!222 &22236074 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156988} +--- !u!222 &22237574 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175642} +--- !u!222 &22239156 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156848} +--- !u!222 &22242574 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110688} +--- !u!222 &22243034 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163510} +--- !u!222 &22243416 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135570} +--- !u!222 &22246090 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136540} +--- !u!222 &22254018 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100552} +--- !u!222 &22254588 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113182} +--- !u!222 &22255998 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} +--- !u!222 &22257440 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150630} +--- !u!222 &22258420 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105596} +--- !u!222 &22259668 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111790} +--- !u!222 &22259744 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126674} +--- !u!222 &22260000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195256} +--- !u!222 &22260014 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107116} +--- !u!222 &22260378 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119286} +--- !u!222 &22260534 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126368} +--- !u!222 &22260622 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130230} +--- !u!222 &22263656 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199604} +--- !u!222 &22265688 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100702} +--- !u!222 &22271378 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135972} +--- !u!222 &22271598 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} +--- !u!222 &22271666 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} +--- !u!222 &22274120 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151362} +--- !u!222 &22275010 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} +--- !u!222 &22277186 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195828} +--- !u!222 &22277380 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147286} +--- !u!222 &22277422 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183542} +--- !u!222 &22277510 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142718} +--- !u!222 &22278676 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132326} +--- !u!222 &22283104 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104876} +--- !u!222 &22283262 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148476} +--- !u!222 &22286322 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119440} +--- !u!222 &22290308 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199946} +--- !u!222 &22291148 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} +--- !u!222 &22292208 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135134} +--- !u!222 &22297062 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179110} +--- !u!222 &22299350 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133108} +--- !u!222 &22299824 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192504} +--- !u!223 &22362282 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101448} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &22402206 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115938} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22497006} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22402670 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22488450} + - {fileID: 22459290} + - {fileID: 22488220} + - {fileID: 22435062} + - {fileID: 22462600} + - {fileID: 22438874} + m_Father: {fileID: 22451718} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22405456 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150630} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499906} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22407384 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22475274} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 262.5, y: -30} + m_SizeDelta: {x: 173.4608, y: 37.170174} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22409774 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132326} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22475682} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22411604 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22479774} + m_Father: {fileID: 22412100} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22412100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195256} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22451718} + - {fileID: 22411604} + m_Father: {fileID: 22470244} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -70} + m_SizeDelta: {x: -120, y: -160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22413782 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 101448} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22424946} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22419352 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138876} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22468210} + - {fileID: 22419498} + - {fileID: 22440330} + - {fileID: 22452618} + - {fileID: 22475208} + m_Father: {fileID: 22424946} + m_RootOrder: 2 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -600, y: 0} + m_SizeDelta: {x: 600, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22419498 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135972} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22437368} + - {fileID: 22459854} + - {fileID: 22461414} + m_Father: {fileID: 22419352} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22422164 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104876} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22492774} + m_Father: {fileID: 22424946} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 960, y: 469} + m_SizeDelta: {x: 120, y: 80} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22422820 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100552} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22475274} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 163.26959, y: -30} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22424708 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195828} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22461414} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22424946 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22499906} + - {fileID: 22427730} + - {fileID: 22419352} + - {fileID: 22422164} + - {fileID: 22459116} + - {fileID: 22470244} + m_Father: {fileID: 22413782} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22426772 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135570} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22470624} + m_Father: {fileID: 22499906} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22427730 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133108} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22461552} + - {fileID: 22465084} + m_Father: {fileID: 22424946} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 600, y: 0} + m_Pivot: {x: 1.0000001, y: 0.5} +--- !u!224 &22429782 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119440} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22497006} + m_Father: {fileID: 22470244} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -100, y: 120} + m_Pivot: {x: 0.5, y: 1} +--- !u!224 &22431776 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166614} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22460208} + m_Father: {fileID: 22451718} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22432026 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175610} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22475682} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22435062 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113182} + m_LocalRotation: {x: 0, y: 0, z: 0.38268346, w: 0.9238795} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22437046 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136540} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499906} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22437368 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145760} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22419498} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22438874 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156988} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22439012 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22459116} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 75, y: 0} + m_SizeDelta: {x: 0, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22440330 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192504} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22419352} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22446338 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134870} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22459854} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.0000019073486} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22447664 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182832} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22491092} + m_Father: {fileID: 22475208} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 668} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22451350 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138560} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22478724} + m_Father: {fileID: 22465084} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22451718 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134072} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22402670} + - {fileID: 22486470} + - {fileID: 22431776} + m_Father: {fileID: 22412100} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22452618 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170394} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22419352} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22453420 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 159184} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22456630} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22453590 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163510} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22491916} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 211.36725, y: -30} + m_SizeDelta: {x: 13.736089, y: 39.491257} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22453814 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22456630} + m_Father: {fileID: 22465084} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 25, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22456630 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146014} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22453420} + m_Father: {fileID: 22453814} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22459116 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 131816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22439012} + m_Father: {fileID: 22424946} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -960, y: 469} + m_SizeDelta: {x: 120, y: 80} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22459290 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22459854 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147682} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22446338} + m_Father: {fileID: 22419498} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 30, y: 0} + m_SizeDelta: {x: -60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22460208 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22431776} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22461414 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199604} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22424708} + m_Father: {fileID: 22419498} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -10, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22461552 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22427730} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22462600 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128544} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22464804 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142718} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499906} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22465084 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100702} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22451350} + - {fileID: 22453814} + m_Father: {fileID: 22427730} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22468210 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105596} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22419352} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22468984 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135134} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499906} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22469512 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 175642} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479774} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22470244 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199946} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22429782} + - {fileID: 22412100} + m_Father: {fileID: 22424946} + m_RootOrder: 5 + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1320, y: 1080} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22470624 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148476} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22426772} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22475208 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156848} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22447664} + m_Father: {fileID: 22419352} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22475274 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22422820} + - {fileID: 22407384} + m_Father: {fileID: 22499906} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 300, y: -832.58124} + m_SizeDelta: {x: 500, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22475308 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126368} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22497006} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.8} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22475682 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194734} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22477860} + - {fileID: 22409774} + - {fileID: 22432026} + m_Father: {fileID: 22478724} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22477860 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22475682} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22478724 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22475682} + m_Father: {fileID: 22451350} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.0000038146973} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!224 &22479774 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22469512} + m_Father: {fileID: 22411604} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22486470 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151362} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22499426} + m_Father: {fileID: 22451718} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22488220 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22488450 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22402670} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22491092 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104052} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447664} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 86} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22491168 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163248} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22497006} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22491916 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 136040} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22453590} + - {fileID: 22496640} + m_Father: {fileID: 22499906} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22492774 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22422164} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 45, y: 0} + m_SizeDelta: {x: 0, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22495054 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179770} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499906} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22496640 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183542} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22491916} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497006 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22402206} + - {fileID: 22475308} + - {fileID: 22491168} + m_Father: {fileID: 22429782} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22499426 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179110} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22486470} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22499906 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126910} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22495054} + - {fileID: 22464804} + - {fileID: 22437046} + - {fileID: 22468984} + - {fileID: 22405456} + - {fileID: 22426772} + - {fileID: 22491916} + - {fileID: 22475274} + m_Father: {fileID: 22424946} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 600, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 101448} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..890ec522234b216503ce205b21b42b50a94cb737 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUBindingInterface.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26a034c83db7bcb4f99de4ddf57cbcfc +timeCreated: 1502653287 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab new file mode 100644 index 0000000000000000000000000000000000000000..09ffa941017a67054e2ca90e690f86e216904d41 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab @@ -0,0 +1,12574 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100764 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22495460} + - 222: {fileID: 22210314} + - 114: {fileID: 11402416} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100962 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22484784} + - 114: {fileID: 11441046} + m_Layer: 5 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &102626 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22479526} + - 222: {fileID: 22272684} + - 114: {fileID: 11413852} + - 114: {fileID: 11498662} + - 114: {fileID: 11482964} + m_Layer: 5 + m_Name: RotZ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104038 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22429638} + - 222: {fileID: 22239976} + - 114: {fileID: 11460428} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104286 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409172} + - 222: {fileID: 22212286} + - 114: {fileID: 11485532} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104306 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22490242} + - 222: {fileID: 22292526} + - 114: {fileID: 11482630} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104638 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22422670} + - 222: {fileID: 22297432} + - 114: {fileID: 11409522} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104914 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22412216} + - 114: {fileID: 11448244} + - 222: {fileID: 22267900} + m_Layer: 5 + m_Name: OpenButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &105674 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22467088} + - 222: {fileID: 22214054} + - 114: {fileID: 11490658} + - 114: {fileID: 11426368} + - 114: {fileID: 11406108} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &106846 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404450} + - 222: {fileID: 22294642} + - 114: {fileID: 11439526} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &106852 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22446124} + - 114: {fileID: 11411576} + - 222: {fileID: 22259060} + m_Layer: 5 + m_Name: DisableStandardAssets + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &108700 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22402014} + - 114: {fileID: 11473694} + m_Layer: 5 + m_Name: FoVInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109850 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22483964} + - 222: {fileID: 22218406} + - 114: {fileID: 11436040} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &110436 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22493004} + - 222: {fileID: 22267986} + - 114: {fileID: 11412200} + - 114: {fileID: 11461180} + - 114: {fileID: 11419686} + m_Layer: 5 + m_Name: PosX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &111144 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22429456} + - 222: {fileID: 22256966} + - 114: {fileID: 11478738} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &111460 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491584} + - 114: {fileID: 11464284} + m_Layer: 5 + m_Name: RotZInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &111742 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22465734} + - 222: {fileID: 22281186} + - 114: {fileID: 11473712} + - 114: {fileID: 11490822} + m_Layer: 5 + m_Name: DirtySymble + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &112176 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22499996} + - 222: {fileID: 22234694} + - 114: {fileID: 11443450} + - 114: {fileID: 11411008} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &112390 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22419086} + - 222: {fileID: 22269420} + - 114: {fileID: 11432358} + - 114: {fileID: 11444882} + - 114: {fileID: 11449206} + m_Layer: 5 + m_Name: PosY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &112576 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22408796} + - 222: {fileID: 22245186} + - 114: {fileID: 11446948} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &112688 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22460534} + - 222: {fileID: 22234678} + - 114: {fileID: 11489398} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &113098 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22412092} + - 222: {fileID: 22294000} + - 114: {fileID: 11422190} + - 114: {fileID: 11426902} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &113198 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22457944} + - 222: {fileID: 22298042} + - 114: {fileID: 11451818} + - 114: {fileID: 11452110} + m_Layer: 5 + m_Name: HMDOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &114456 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22498284} + - 222: {fileID: 22210514} + - 114: {fileID: 11445826} + - 114: {fileID: 11488240} + m_Layer: 5 + m_Name: FoV + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &115784 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404928} + - 222: {fileID: 22241178} + - 114: {fileID: 11455368} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116348 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22460848} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116652 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22478602} + - 114: {fileID: 11446714} + m_Layer: 5 + m_Name: CKRInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &117504 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400622} + - 222: {fileID: 22297202} + - 114: {fileID: 11420674} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &117990 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22488748} + - 222: {fileID: 22283884} + - 114: {fileID: 11471104} + - 114: {fileID: 11403466} + - 114: {fileID: 11459964} + m_Layer: 5 + m_Name: TitleBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118242 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497576} + - 222: {fileID: 22293052} + - 114: {fileID: 11440558} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118686 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22431580} + - 222: {fileID: 22247144} + - 114: {fileID: 11489474} + - 114: {fileID: 11496576} + - 114: {fileID: 11482286} + m_Layer: 5 + m_Name: CKR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119796 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452272} + - 222: {fileID: 22206670} + - 114: {fileID: 11490156} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22446244} + - 20: {fileID: 2034154} + m_Layer: 5 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119846 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22493084} + - 222: {fileID: 22297130} + - 114: {fileID: 11489002} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &120070 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22414150} + - 222: {fileID: 22241204} + - 114: {fileID: 11456086} + - 114: {fileID: 11411648} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &120672 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434838} + - 222: {fileID: 22280738} + - 114: {fileID: 11453858} + - 114: {fileID: 11452336} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &121632 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22414252} + - 222: {fileID: 22256134} + - 114: {fileID: 11404220} + - 114: {fileID: 11431084} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123356 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22465708} + - 222: {fileID: 22227960} + - 114: {fileID: 11477098} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123792 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22485358} + - 222: {fileID: 22277542} + - 114: {fileID: 11420448} + m_Layer: 5 + m_Name: DisableStandardAssets + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &125664 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22480414} + - 222: {fileID: 22290704} + - 114: {fileID: 11490158} + - 114: {fileID: 11477556} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &126416 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22476160} + - 114: {fileID: 11486354} + m_Layer: 5 + m_Name: RotYInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127286 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22447730} + - 222: {fileID: 22223002} + - 114: {fileID: 11402334} + m_Layer: 5 + m_Name: ClipDistance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127342 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22426082} + - 222: {fileID: 22279348} + - 114: {fileID: 11476768} + - 114: {fileID: 11416428} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127606 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22476682} + - 114: {fileID: 11475328} + m_Layer: 5 + m_Name: RotXInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &127766 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22441332} + - 222: {fileID: 22296026} + - 114: {fileID: 11450710} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &128966 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22484992} + - 114: {fileID: 11432172} + m_Layer: 5 + m_Name: PosXInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &128996 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22408584} + - 222: {fileID: 22272794} + - 114: {fileID: 11452000} + - 114: {fileID: 11481520} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &129940 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22488578} + - 222: {fileID: 22221434} + - 114: {fileID: 11447796} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &130188 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22480262} + - 222: {fileID: 22220634} + - 114: {fileID: 11445524} + m_Layer: 5 + m_Name: SceneResolutionScale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132108 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22428304} + - 222: {fileID: 22245920} + - 114: {fileID: 11418586} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132352 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22479612} + - 222: {fileID: 22229710} + - 114: {fileID: 11451230} + - 114: {fileID: 11461860} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132592 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22462168} + - 222: {fileID: 22285100} + - 114: {fileID: 11451020} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132830 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491112} + - 222: {fileID: 22263644} + - 114: {fileID: 11483702} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133032 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22496344} + - 222: {fileID: 22221344} + - 114: {fileID: 11446630} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133684 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22421502} + - 222: {fileID: 22246402} + - 114: {fileID: 11425686} + - 114: {fileID: 11409840} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134978 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22481944} + - 223: {fileID: 22300408} + - 114: {fileID: 11413008} + - 114: {fileID: 11434536} + - 225: {fileID: 22507568} + - 114: {fileID: 11404620} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &137728 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22489590} + - 222: {fileID: 22268380} + - 114: {fileID: 11406570} + - 114: {fileID: 11493008} + m_Layer: 5 + m_Name: FarOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &138744 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22427910} + - 222: {fileID: 22249324} + - 114: {fileID: 11465920} + - 114: {fileID: 11477984} + m_Layer: 5 + m_Name: NearOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &138834 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497950} + - 222: {fileID: 22250920} + - 114: {fileID: 11418678} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &139336 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22471372} + - 222: {fileID: 22261934} + - 114: {fileID: 11435470} + m_Layer: 5 + m_Name: FoV + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142038 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22422224} + - 222: {fileID: 22274896} + - 114: {fileID: 11436280} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142410 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22439318} + - 222: {fileID: 22213458} + - 114: {fileID: 11459004} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142884 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22478504} + - 114: {fileID: 11412594} + m_Layer: 5 + m_Name: NearInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &144602 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22428760} + - 222: {fileID: 22207208} + - 114: {fileID: 11477320} + - 114: {fileID: 11418706} + - 114: {fileID: 11432970} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145142 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22441924} + - 222: {fileID: 22284870} + - 114: {fileID: 11483942} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145422 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22470776} + - 222: {fileID: 22252718} + - 114: {fileID: 11435920} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145494 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22451952} + - 222: {fileID: 22243616} + - 114: {fileID: 11434224} + - 114: {fileID: 11456300} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145994 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22479104} + - 222: {fileID: 22201488} + - 114: {fileID: 11406010} + - 114: {fileID: 11443140} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147762 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22423064} + - 222: {fileID: 22212164} + - 114: {fileID: 11453016} + m_Layer: 5 + m_Name: FrameSkip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147782 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22455690} + - 222: {fileID: 22276656} + - 114: {fileID: 11442680} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &147882 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416166} + - 114: {fileID: 11481268} + m_Layer: 5 + m_Name: CKGInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148226 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494404} + - 114: {fileID: 11411504} + m_Layer: 5 + m_Name: HMDOffsetInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148360 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22431318} + - 222: {fileID: 22280500} + - 114: {fileID: 11422152} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &149114 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22489908} + - 222: {fileID: 22224826} + - 114: {fileID: 11439950} + - 114: {fileID: 11417088} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150032 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22470886} + - 222: {fileID: 22272246} + - 114: {fileID: 11429622} + - 114: {fileID: 11425462} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150102 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22437138} + - 222: {fileID: 22266480} + - 114: {fileID: 11445880} + - 114: {fileID: 11431998} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150452 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22496040} + - 222: {fileID: 22227192} + - 114: {fileID: 11479142} + - 114: {fileID: 11419890} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &153346 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22419944} + - 222: {fileID: 22285516} + - 114: {fileID: 11453980} + - 114: {fileID: 11487140} + m_Layer: 5 + m_Name: RecenterButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &153376 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22462928} + - 222: {fileID: 22213814} + - 114: {fileID: 11447344} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &155196 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22453242} + - 222: {fileID: 22242304} + - 114: {fileID: 11436568} + - 114: {fileID: 11438750} + m_Layer: 5 + m_Name: FixAspectPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &159300 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22406882} + - 114: {fileID: 11490584} + m_Layer: 5 + m_Name: SceneResScaleInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &160740 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22471738} + - 114: {fileID: 11458980} + m_Layer: 5 + m_Name: NearOffsetInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161340 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22476844} + - 222: {fileID: 22212934} + - 114: {fileID: 11448200} + m_Layer: 5 + m_Name: ClipOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161386 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22429432} + - 222: {fileID: 22268658} + - 114: {fileID: 11492108} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22426112} + - 222: {fileID: 22215660} + - 114: {fileID: 11451604} + - 114: {fileID: 11469270} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164156 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22467286} + - 114: {fileID: 11469402} + m_Layer: 5 + m_Name: FarOffsetInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164160 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22479444} + - 222: {fileID: 22200156} + - 114: {fileID: 11492790} + - 114: {fileID: 11479346} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164252 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22428862} + - 114: {fileID: 11420238} + m_Layer: 5 + m_Name: CKBInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164700 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22487126} + - 222: {fileID: 22249786} + - 114: {fileID: 11454338} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &165082 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22489086} + - 222: {fileID: 22251130} + - 114: {fileID: 11430488} + - 114: {fileID: 11448584} + m_Layer: 5 + m_Name: Far + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &165544 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22451176} + - 222: {fileID: 22256930} + - 114: {fileID: 11444392} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &165772 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22481108} + - 114: {fileID: 11425326} + - 114: {fileID: 11451264} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166098 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22498890} + - 222: {fileID: 22239802} + - 114: {fileID: 11464620} + - 114: {fileID: 11401668} + m_Layer: 5 + m_Name: SceneResScale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166582 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22459692} + - 222: {fileID: 22233102} + - 114: {fileID: 11403976} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167308 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22438128} + - 222: {fileID: 22234622} + - 114: {fileID: 11425064} + - 114: {fileID: 11454330} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167540 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22458162} + - 222: {fileID: 22296204} + - 114: {fileID: 11417236} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168306 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22461710} + - 222: {fileID: 22276458} + - 114: {fileID: 11459394} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &170192 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497682} + - 222: {fileID: 22292586} + m_Layer: 5 + m_Name: QuadPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &170568 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494104} + - 114: {fileID: 11437072} + m_Layer: 5 + m_Name: PosZInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &170638 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22464034} + - 222: {fileID: 22246942} + - 114: {fileID: 11490712} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &173526 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22427648} + - 222: {fileID: 22289240} + - 114: {fileID: 11409258} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176390 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400890} + - 222: {fileID: 22213120} + - 114: {fileID: 11403544} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176528 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22432858} + - 222: {fileID: 22268476} + - 114: {fileID: 11474098} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &177290 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 413390} + m_Layer: 0 + m_Name: VIUExCamConfigInterface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &178854 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22429744} + - 222: {fileID: 22220942} + - 114: {fileID: 11454510} + - 114: {fileID: 11479154} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &179604 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22469610} + - 222: {fileID: 22264868} + - 114: {fileID: 11420506} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &180116 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22464842} + - 222: {fileID: 22249694} + - 114: {fileID: 11419150} + - 114: {fileID: 11427574} + - 114: {fileID: 11495914} + m_Layer: 5 + m_Name: PosZ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &180276 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22481568} + - 222: {fileID: 22243576} + - 114: {fileID: 11483586} + - 114: {fileID: 11461526} + m_Layer: 5 + m_Name: SaveLoad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &180914 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22499982} + - 222: {fileID: 22245812} + - 114: {fileID: 11414458} + - 114: {fileID: 11472136} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &181756 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22412968} + - 222: {fileID: 22265716} + - 114: {fileID: 11454056} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &182982 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22480244} + - 222: {fileID: 22257508} + - 114: {fileID: 11426502} + - 114: {fileID: 11422708} + m_Layer: 5 + m_Name: Button (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183210 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22432076} + - 114: {fileID: 11489096} + m_Layer: 5 + m_Name: PosYInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183410 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416844} + - 114: {fileID: 11424176} + m_Layer: 5 + m_Name: FarInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183806 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22424978} + - 222: {fileID: 22272082} + - 114: {fileID: 11442018} + - 114: {fileID: 11408320} + - 114: {fileID: 11460486} + m_Layer: 5 + m_Name: CKG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &184534 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22417056} + - 222: {fileID: 22203040} + - 114: {fileID: 11452966} + - 114: {fileID: 11417598} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &184910 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494154} + - 222: {fileID: 22268762} + - 114: {fileID: 11419392} + - 114: {fileID: 11438240} + - 114: {fileID: 11447760} + m_Layer: 5 + m_Name: RotY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &185044 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22482300} + - 222: {fileID: 22208320} + - 114: {fileID: 11427418} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &186688 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22461692} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &187092 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22430942} + - 222: {fileID: 22241912} + - 114: {fileID: 11488934} + - 114: {fileID: 11401040} + m_Layer: 5 + m_Name: FrameSkip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &187854 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22480952} + - 222: {fileID: 22282274} + - 114: {fileID: 11433446} + m_Layer: 5 + m_Name: PositionOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188344 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22439860} + - 222: {fileID: 22293834} + - 114: {fileID: 11417842} + - 114: {fileID: 11463474} + - 114: {fileID: 11484786} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188492 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405860} + - 222: {fileID: 22256190} + - 114: {fileID: 11410172} + m_Layer: 5 + m_Name: RotationOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188766 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22470814} + - 222: {fileID: 22241758} + - 114: {fileID: 11442342} + - 114: {fileID: 11416434} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189632 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405052} + - 222: {fileID: 22229724} + - 114: {fileID: 11400690} + - 114: {fileID: 11473662} + m_Layer: 5 + m_Name: Near + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189728 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22493708} + - 114: {fileID: 11439966} + m_Layer: 5 + m_Name: CKAInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189944 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22475598} + - 222: {fileID: 22210488} + - 114: {fileID: 11420072} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &190842 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22459882} + - 222: {fileID: 22268028} + - 114: {fileID: 11434614} + - 114: {fileID: 11433334} + - 114: {fileID: 11453502} + m_Layer: 5 + m_Name: CKA + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &190854 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22424846} + - 222: {fileID: 22268684} + - 114: {fileID: 11482166} + - 114: {fileID: 11444344} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &191574 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22431880} + - 222: {fileID: 22258522} + - 114: {fileID: 11469446} + - 114: {fileID: 11487926} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192088 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452058} + - 222: {fileID: 22271390} + - 114: {fileID: 11495558} + - 114: {fileID: 11401764} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &193066 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443054} + - 222: {fileID: 22202442} + - 114: {fileID: 11499644} + - 114: {fileID: 11457036} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &194186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22422702} + - 222: {fileID: 22200890} + - 114: {fileID: 11450822} + - 114: {fileID: 11441266} + - 114: {fileID: 11477150} + m_Layer: 5 + m_Name: CKB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195262 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22419232} + - 222: {fileID: 22286842} + - 114: {fileID: 11428098} + - 114: {fileID: 11463536} + - 114: {fileID: 11450066} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195696 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22492672} + - 222: {fileID: 22276214} + - 114: {fileID: 11404358} + - 114: {fileID: 11471736} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &196446 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22450124} + - 222: {fileID: 22268044} + - 114: {fileID: 11480996} + - 114: {fileID: 11414464} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &196868 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22426692} + - 222: {fileID: 22287948} + - 114: {fileID: 11402614} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &198084 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22406664} + - 222: {fileID: 22209182} + - 114: {fileID: 11407018} + - 114: {fileID: 11478620} + - 114: {fileID: 11442560} + m_Layer: 5 + m_Name: RotX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &199768 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22447814} + - 222: {fileID: 22261576} + - 114: {fileID: 11459430} + m_Layer: 5 + m_Name: ChromaKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &199958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22402116} + - 222: {fileID: 22284686} + - 114: {fileID: 11426786} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &413390 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22481944} + - {fileID: 22446244} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!20 &2034154 +Camera: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119814} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 3 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 100 + field of view: 60 + orthographic: 1 + orthographic size: 500 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 32 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!114 &11400690 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>near<color=#0000007F>></color> +--- !u!114 &11401040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11488934} + m_field: {fileID: 11419890} + m_fieldValue: 0 + m_label: count + m_dragPrecision: 0 + m_slopePow: 1 + m_clampValue: 1 + m_clampMin: 0 + m_clampMax: 24 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_frameSkip + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11401668 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11464620} + m_field: {fileID: 11487926} + m_fieldValue: 0 + m_label: scale + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 1 + m_clampMin: 0.1 + m_clampMax: 10 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_sceneResolutionScale + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11401764 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11402334 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11402416 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100764} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11402614 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 7 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Reload +--- !u!114 &11403466 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11403544 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11403976 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166582} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11404220 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 7 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Save +--- !u!114 &11404358 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Frame Skip +--- !u!114 &11404620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8329080bef86e84091f2f7d9c246b92, type: 3} + m_Name: + m_EditorClassIdentifier: + m_recenterButton: {fileID: 153346} + m_dirtySymbol: {fileID: 111742} + m_posX: {fileID: 11461180} + m_posY: {fileID: 11444882} + m_posZ: {fileID: 11427574} + m_rotX: {fileID: 11478620} + m_rotY: {fileID: 11438240} + m_rotZ: {fileID: 11498662} + m_ckR: {fileID: 11496576} + m_ckG: {fileID: 11408320} + m_ckB: {fileID: 11441266} + m_ckA: {fileID: 11433334} + m_fov: {fileID: 11488240} + m_clipNear: {fileID: 11473662} + m_clipFar: {fileID: 11448584} + m_offsetNear: {fileID: 11477984} + m_offsetFar: {fileID: 11493008} + m_offsetHMD: {fileID: 11452110} + m_frameSkip: {fileID: 11401040} + m_sceneResolutionScale: {fileID: 11401668} + m_diableStandardAssets: {fileID: 11411576} +--- !u!114 &11406010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11406108 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 8 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11406570 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>far<color=#0000007F>></color> +--- !u!114 &11407018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>X<color=#0000007F>></color> +--- !u!114 &11408320 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11442018} + m_field: {fileID: 11477556} + m_fieldValue: 0 + m_label: G + m_dragPrecision: 2 + m_slopePow: 1.5 + m_clampValue: 1 + m_clampMin: 0 + m_clampMax: 1 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_ckG + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11409258 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173526} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11409522 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11409840 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11425686} + m_TextComponent: {fileID: 11446630} + m_Placeholder: {fileID: 11489002} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11410172 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11411008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11443450} + m_TextComponent: {fileID: 11436040} + m_Placeholder: {fileID: 11436280} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9999 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11411504 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11411576 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11480996} + toggleTransition: 1 + graphic: {fileID: 11483702} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_diableStandardAssets + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!114 &11411648 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 300 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11412200 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>X<color=#0000007F>></color> +--- !u!114 &11412594 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11413008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11413852 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 102626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>Z<color=#0000007F>></color> +--- !u!114 &11414458 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Chroma Key +--- !u!114 &11414464 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &11416428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11476768} + m_TextComponent: {fileID: 11490712} + m_Placeholder: {fileID: 11451020} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11416434 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11442342} + m_TextComponent: {fileID: 11478738} + m_Placeholder: {fileID: 11485532} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11417088 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11417236 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167540} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11417598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452966} + m_TextComponent: {fileID: 11447344} + m_Placeholder: {fileID: 11435920} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11417842 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11418586 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11418678 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300100, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11418706 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11477320} + m_TextComponent: {fileID: 11489398} + m_Placeholder: {fileID: 11454338} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11419150 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>Z<color=#0000007F>></color> +--- !u!114 &11419392 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>Y<color=#0000007F>></color> +--- !u!114 &11419686 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11419890 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11479142} + m_TextComponent: {fileID: 11447796} + m_Placeholder: {fileID: 11403976} + m_ContentType: 2 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 4 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 1 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 0 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11420072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11420238 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164252} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11420448 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11420506 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179604} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 4 + m_MaxSize: 59 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: External Camera Config +--- !u!114 &11420674 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117504} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11422152 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148360} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11422190 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Clip Distance +--- !u!114 &11422708 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182982} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11426502} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11404620} + m_MethodName: SaveConfig + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11424176 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11425064 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Disable Standard Assets +--- !u!114 &11425326 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11477098} + m_FillRect: {fileID: 22404450} + m_HandleRect: {fileID: 22465708} + m_Direction: 0 + m_MinValue: 0.1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0.75 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 22507568} + m_MethodName: set_alpha + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11425462 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11429622} + m_TextComponent: {fileID: 11455368} + m_Placeholder: {fileID: 11459004} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11425686 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11426368 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &11426502 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182982} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.73333335, g: 1, b: 0.972549, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11426786 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11426902 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11427418 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11427574 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11419150} + m_field: {fileID: 11418706} + m_fieldValue: 0 + m_label: Z + m_dragPrecision: 3 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_posZ + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11428098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11429622 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11430488 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>far<color=#0000007F>></color> +--- !u!114 &11431084 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &11431998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11445880} + m_TextComponent: {fileID: 11418586} + m_Placeholder: {fileID: 11444392} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11432172 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128966} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11432358 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>Y<color=#0000007F>></color> +--- !u!114 &11432970 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11433334 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11434614} + m_field: {fileID: 11417598} + m_fieldValue: 0 + m_label: A + m_dragPrecision: 2 + m_slopePow: 1.5 + m_clampValue: 1 + m_clampMin: 0 + m_clampMax: 1 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_ckA + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11433446 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11434224 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11434536 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11434614 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>A<color=#0000007F>></color> +--- !u!114 &11435470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11435920 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145422} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11436040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.999 +--- !u!114 &11436280 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142038} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11436568 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155196} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1254083943, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 3 + m_AspectRatio: 1.7777778 +--- !u!114 &11437072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11438240 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11419392} + m_field: {fileID: 11425462} + m_fieldValue: 0 + m_label: Y + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_rotY + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11438750 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155196} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11439526 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106846} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11439950 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Rotation Offset +--- !u!114 &11439966 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11440558 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11441046 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11441266 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11450822} + m_field: {fileID: 11416428} + m_fieldValue: 0 + m_label: B + m_dragPrecision: 2 + m_slopePow: 1.5 + m_clampValue: 1 + m_clampMin: 0 + m_clampMax: 1 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_ckB + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11442018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>G<color=#0000007F>></color> +--- !u!114 &11442342 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11442560 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11442680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147782} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.73333335, g: 1, b: 0.972549, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11443140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11406010} + m_TextComponent: {fileID: 11427418} + m_Placeholder: {fileID: 11482630} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11443450 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11444344 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11482166} + m_TextComponent: {fileID: 11409522} + m_Placeholder: {fileID: 11417236} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11444392 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165544} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11444882 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11432358} + m_field: {fileID: 11416434} + m_fieldValue: 0 + m_label: Y + m_dragPrecision: 3 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_posY + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11445524 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11445826 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>degree<color=#0000007F>></color> +--- !u!114 &11445880 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11446630 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11446714 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11446948 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112576} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11447344 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11447760 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11447796 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11448200 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161340} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11448244 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11448584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11430488} + m_field: {fileID: 11409840} + m_fieldValue: 0 + m_label: far + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 1 + m_clampMin: 0.01 + m_clampMax: 1000 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_clipFar + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11449206 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11450066 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11450710 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Recenter +--- !u!114 &11450822 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>B<color=#0000007F>></color> +--- !u!114 &11451020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132592} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11451230 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.73333335, g: 1, b: 0.972549, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11451264 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 15 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11451604 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Position Offset +--- !u!114 &11451818 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>hmd<color=#0000007F>></color> +--- !u!114 &11452000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Field of View +--- !u!114 &11452110 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11451818} + m_field: {fileID: 11444344} + m_fieldValue: 0 + m_label: hmd + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0.01 + m_clampMax: 1000 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_offsetHMD + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11452336 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11453858} + m_TextComponent: {fileID: 11459394} + m_Placeholder: {fileID: 11446948} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11452966 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11453016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147762} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11453502 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11453858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11453980 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11442680} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: RecenterExternalCameraPose + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11454056 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181756} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11454330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 300 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11454338 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164700} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11454510 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11455368 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11456086 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Scene Resolution Scale +--- !u!114 &11456300 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434224} + m_TextComponent: {fileID: 11426786} + m_Placeholder: {fileID: 11454056} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11457036 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11499644} + m_TextComponent: {fileID: 11492108} + m_Placeholder: {fileID: 11409258} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11458980 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11459004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142410} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11459394 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11459430 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11459964 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 15 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 15 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11460428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300098, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11460486 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11461180 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11412200} + m_field: {fileID: 11411008} + m_fieldValue: 0 + m_label: X + m_dragPrecision: 3 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_posX + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11461526 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 26 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11461860 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11451230} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11404620} + m_MethodName: ReloadConfig + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11463474 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11417842} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 117990} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 105674} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 104914} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11463536 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11428098} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 117990} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 105674} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 104914} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11464284 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11464620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>scale<color=#0000007F>></color> +--- !u!114 &11465920 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>near<color=#0000007F>></color> +--- !u!114 &11469270 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11469402 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11469446 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11471104 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.8784314, b: 0.69803923, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11471736 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11472136 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11473662 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11400690} + m_field: {fileID: 11431998} + m_fieldValue: 0 + m_label: near + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 1 + m_clampMin: 0.01 + m_clampMax: 1000 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_clipNear + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11473694 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11473712 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 7 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '*' +--- !u!114 &11474098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176528} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11475328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127606} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11476768 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11477098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11477150 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11477320 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11477556 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11490158} + m_TextComponent: {fileID: 11420072} + m_Placeholder: {fileID: 11474098} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11477984 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11465920} + m_field: {fileID: 11456300} + m_fieldValue: 0 + m_label: near + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0.01 + m_clampMax: 1000 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_offsetNear + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11478620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11407018} + m_field: {fileID: 11457036} + m_fieldValue: 0 + m_label: X + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_rotX + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11478738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11479142 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11479154 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11454510} + m_TextComponent: {fileID: 11490156} + m_Placeholder: {fileID: 11422152} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11479346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11492790} + m_TextComponent: {fileID: 11403544} + m_Placeholder: {fileID: 11420674} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11480996 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11481268 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11481520 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 190 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11482166 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11482286 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11482630 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104306} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11482964 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 102626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11483586 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11483702 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300090, guid: 3a23c65532a98fa409e94bf90a84543e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11483942 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.61764705, g: 0.61764705, b: 0.61764705, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11484786 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 60 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11485532 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104286} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11486354 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126416} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11487140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 0 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11487926 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11469446} + m_TextComponent: {fileID: 11440558} + m_Placeholder: {fileID: 11402416} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: 99.9 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &11488240 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11445826} + m_field: {fileID: 11479346} + m_fieldValue: 0 + m_label: degree + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 1 + m_clampMin: 1 + m_clampMax: 180 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_fov + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11488934 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>count<color=#0000007F>></color> +--- !u!114 &11489002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119846} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!114 &11489096 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 82 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11489398 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11489474 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <color=#0000007F><</color>R<color=#0000007F>></color> +--- !u!114 &11490156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11490158 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11490584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 159300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 105 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11490658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.875, g: 0.875, b: 0.875, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11490712 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11490822 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &11492108 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99.9 +--- !u!114 &11492790 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11493008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11406570} + m_field: {fileID: 11443140} + m_fieldValue: 0 + m_label: far + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0.01 + m_clampMax: 1000 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_offsetFar + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11495558 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Clip Offset +--- !u!114 &11495914 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11496576 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11489474} + m_field: {fileID: 11479154} + m_fieldValue: 0 + m_label: R + m_dragPrecision: 2 + m_slopePow: 1.5 + m_clampValue: 1 + m_clampMin: 0 + m_clampMax: 1 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_ckR + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11498662 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 102626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3da6ce048533cea43878fb2a54edef80, type: 3} + m_Name: + m_EditorClassIdentifier: + m_text: {fileID: 11413852} + m_field: {fileID: 11452336} + m_fieldValue: 0 + m_label: Z + m_dragPrecision: 2 + m_slopePow: 2 + m_clampValue: 0 + m_clampMin: 0 + m_clampMax: 0 + m_onEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11404620} + m_MethodName: set_rotZ + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 111742} + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: HTC.UnityPlugin.Vive.ExCamConfigInterface.ExCamConfigInterfaceDraggableLabel+UnityEventFloat, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11499644 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22200156 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164160} +--- !u!222 &22200890 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194186} +--- !u!222 &22201488 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145994} +--- !u!222 &22202442 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193066} +--- !u!222 &22203040 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184534} +--- !u!222 &22206670 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119796} +--- !u!222 &22207208 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144602} +--- !u!222 &22208320 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185044} +--- !u!222 &22209182 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198084} +--- !u!222 &22210314 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100764} +--- !u!222 &22210488 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189944} +--- !u!222 &22210514 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114456} +--- !u!222 &22212164 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147762} +--- !u!222 &22212286 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104286} +--- !u!222 &22212934 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161340} +--- !u!222 &22213120 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176390} +--- !u!222 &22213458 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142410} +--- !u!222 &22213814 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153376} +--- !u!222 &22214054 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105674} +--- !u!222 &22215660 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161708} +--- !u!222 &22218406 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} +--- !u!222 &22220634 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130188} +--- !u!222 &22220942 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178854} +--- !u!222 &22221344 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133032} +--- !u!222 &22221434 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129940} +--- !u!222 &22223002 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127286} +--- !u!222 &22224826 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149114} +--- !u!222 &22227192 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150452} +--- !u!222 &22227960 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123356} +--- !u!222 &22229710 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132352} +--- !u!222 &22229724 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189632} +--- !u!222 &22233102 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166582} +--- !u!222 &22234622 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167308} +--- !u!222 &22234678 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112688} +--- !u!222 &22234694 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112176} +--- !u!222 &22239802 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166098} +--- !u!222 &22239976 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104038} +--- !u!222 &22241178 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115784} +--- !u!222 &22241204 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120070} +--- !u!222 &22241758 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188766} +--- !u!222 &22241912 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187092} +--- !u!222 &22242304 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155196} +--- !u!222 &22243576 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180276} +--- !u!222 &22243616 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145494} +--- !u!222 &22245186 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112576} +--- !u!222 &22245812 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180914} +--- !u!222 &22245920 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132108} +--- !u!222 &22246402 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133684} +--- !u!222 &22246942 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170638} +--- !u!222 &22247144 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118686} +--- !u!222 &22249324 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} +--- !u!222 &22249694 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180116} +--- !u!222 &22249786 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164700} +--- !u!222 &22250920 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138834} +--- !u!222 &22251130 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165082} +--- !u!222 &22252718 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145422} +--- !u!222 &22256134 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121632} +--- !u!222 &22256190 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188492} +--- !u!222 &22256930 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165544} +--- !u!222 &22256966 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111144} +--- !u!222 &22257508 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182982} +--- !u!222 &22258522 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191574} +--- !u!222 &22259060 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106852} +--- !u!222 &22261576 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199768} +--- !u!222 &22261934 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139336} +--- !u!222 &22263644 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132830} +--- !u!222 &22264868 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179604} +--- !u!222 &22265716 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181756} +--- !u!222 &22266480 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150102} +--- !u!222 &22267900 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104914} +--- !u!222 &22267986 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110436} +--- !u!222 &22268028 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190842} +--- !u!222 &22268044 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196446} +--- !u!222 &22268380 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137728} +--- !u!222 &22268476 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176528} +--- !u!222 &22268658 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161386} +--- !u!222 &22268684 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190854} +--- !u!222 &22268762 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184910} +--- !u!222 &22269420 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112390} +--- !u!222 &22271390 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192088} +--- !u!222 &22272082 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183806} +--- !u!222 &22272246 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150032} +--- !u!222 &22272684 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 102626} +--- !u!222 &22272794 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128996} +--- !u!222 &22274896 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142038} +--- !u!222 &22276214 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195696} +--- !u!222 &22276458 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168306} +--- !u!222 &22276656 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147782} +--- !u!222 &22277542 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123792} +--- !u!222 &22279348 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127342} +--- !u!222 &22280500 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148360} +--- !u!222 &22280738 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120672} +--- !u!222 &22281186 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111742} +--- !u!222 &22282274 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187854} +--- !u!222 &22283884 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117990} +--- !u!222 &22284686 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199958} +--- !u!222 &22284870 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145142} +--- !u!222 &22285100 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132592} +--- !u!222 &22285516 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153346} +--- !u!222 &22286842 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195262} +--- !u!222 &22287948 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196868} +--- !u!222 &22289240 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173526} +--- !u!222 &22290704 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125664} +--- !u!222 &22292526 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104306} +--- !u!222 &22292586 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170192} +--- !u!222 &22293052 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118242} +--- !u!222 &22293834 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} +--- !u!222 &22294000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113098} +--- !u!222 &22294642 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106846} +--- !u!222 &22296026 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127766} +--- !u!222 &22296204 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167540} +--- !u!222 &22297130 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119846} +--- !u!222 &22297202 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117504} +--- !u!222 &22297432 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104638} +--- !u!222 &22298042 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113198} +--- !u!223 &22300408 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 1 + m_Camera: {fileID: 2034154} + m_PlaneDistance: 1 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &22400622 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117504} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479444} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22400890 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176390} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479444} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22402014 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108700} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22479444} + m_Father: {fileID: 22471372} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22402116 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199958} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22451952} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22404450 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106846} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22460848} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22404928 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115784} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22470886} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22405052 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189632} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447730} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22405860 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188492} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22489908} + - {fileID: 22406664} + - {fileID: 22476682} + - {fileID: 22494154} + - {fileID: 22476160} + - {fileID: 22479526} + - {fileID: 22491584} + m_Father: {fileID: 22467088} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22406664 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198084} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22405860} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22406882 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 159300} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22431880} + m_Father: {fileID: 22480262} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22408584 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128996} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22471372} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22408796 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112576} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22434838} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22409172 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22470814} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22412092 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447730} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22412216 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104914} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22419232} + m_Father: {fileID: 22453242} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 70, y: 60} + m_Pivot: {x: 0, y: 1.0000001} +--- !u!224 &22412968 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 181756} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22451952} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22414150 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480262} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22414252 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121632} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22465734} + m_Father: {fileID: 22480244} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22416166 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147882} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22480414} + m_Father: {fileID: 22447814} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22416844 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183410} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22421502} + m_Father: {fileID: 22447730} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22417056 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184534} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22470776} + - {fileID: 22462928} + m_Father: {fileID: 22493708} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22419086 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112390} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480952} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22419232 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195262} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22497950} + m_Father: {fileID: 22412216} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: -30, y: -20} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22419944 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153346} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22455690} + m_Father: {fileID: 22480952} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22421502 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133684} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22493084} + - {fileID: 22496344} + m_Father: {fileID: 22416844} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22422224 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142038} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499996} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22422670 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104638} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22424846} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22422702 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194186} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447814} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22423064 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147762} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22492672} + - {fileID: 22430942} + - {fileID: 22484784} + m_Father: {fileID: 22467088} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22424846 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190854} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22458162} + - {fileID: 22422670} + m_Father: {fileID: 22494404} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22424978 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183806} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447814} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22426082 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22462168} + - {fileID: 22464034} + m_Father: {fileID: 22428862} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22426112 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480952} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22426692 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196868} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479612} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22427648 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22443054} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22427910 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138744} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22476844} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22428304 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132108} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22437138} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22428760 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 144602} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22487126} + - {fileID: 22460534} + m_Father: {fileID: 22494104} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22428862 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164252} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22426082} + m_Father: {fileID: 22447814} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22429432 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161386} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22443054} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22429456 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111144} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22470814} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22429638 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104038} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22439860} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -7.5, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22429744 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178854} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22431318} + - {fileID: 22452272} + m_Father: {fileID: 22478602} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22430942 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22423064} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22431318 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148360} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22429744} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22431580 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118686} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447814} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22431880 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191574} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22495460} + - {fileID: 22497576} + m_Father: {fileID: 22406882} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22432076 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22470814} + m_Father: {fileID: 22480952} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22432858 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176528} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480414} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22434838 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 120672} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22408796} + - {fileID: 22461710} + m_Father: {fileID: 22491584} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22437138 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150102} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22451176} + - {fileID: 22428304} + m_Father: {fileID: 22478504} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22438128 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22485358} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22439318 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142410} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22470886} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22439860 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188344} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22429638} + m_Father: {fileID: 22488748} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22441332 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22455690} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22441924 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145142} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22481108} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22443054 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 193066} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22427648} + - {fileID: 22429432} + m_Father: {fileID: 22476682} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22446124 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106852} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22450124} + m_Father: {fileID: 22485358} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22446244 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119814} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 413390} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22447730 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22412092} + - {fileID: 22405052} + - {fileID: 22478504} + - {fileID: 22489086} + - {fileID: 22416844} + m_Father: {fileID: 22467088} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22447814 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 199768} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22499982} + - {fileID: 22431580} + - {fileID: 22478602} + - {fileID: 22424978} + - {fileID: 22416166} + - {fileID: 22422702} + - {fileID: 22428862} + - {fileID: 22459882} + - {fileID: 22493708} + m_Father: {fileID: 22467088} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22450124 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196446} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22491112} + m_Father: {fileID: 22446124} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22451176 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165544} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22437138} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22451952 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145494} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22412968} + - {fileID: 22402116} + m_Father: {fileID: 22471738} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22452058 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192088} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22476844} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22452272 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22429744} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22453242 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 155196} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22488748} + - {fileID: 22467088} + - {fileID: 22412216} + m_Father: {fileID: 22497682} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22455690 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147782} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22441332} + m_Father: {fileID: 22419944} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: -1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -1, y: -4} + m_SizeDelta: {x: -8, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22457944 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113198} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22476844} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22458162 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167540} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22424846} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22459692 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166582} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22496040} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22459882 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190842} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447814} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22460534 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22428760} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22460848 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116348} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22404450} + m_Father: {fileID: 22481108} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22461692 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 186688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22465708} + m_Father: {fileID: 22481108} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22461710 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168306} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22434838} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22462168 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132592} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22426082} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22462928 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 153376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22417056} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22464034 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170638} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22426082} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22464842 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480952} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22465708 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22461692} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 15, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22465734 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22414252} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 9.257143, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22467088 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22480952} + - {fileID: 22405860} + - {fileID: 22447814} + - {fileID: 22471372} + - {fileID: 22447730} + - {fileID: 22476844} + - {fileID: 22423064} + - {fileID: 22480262} + - {fileID: 22485358} + - {fileID: 22481568} + m_Father: {fileID: 22453242} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22467286 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164156} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22479104} + m_Father: {fileID: 22476844} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22469610 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 179604} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22488748} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22470776 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145422} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22417056} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22470814 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22409172} + - {fileID: 22429456} + m_Father: {fileID: 22432076} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22470886 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150032} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22439318} + - {fileID: 22404928} + m_Father: {fileID: 22476160} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22471372 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22408584} + - {fileID: 22498284} + - {fileID: 22402014} + m_Father: {fileID: 22467088} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22471738 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160740} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22451952} + m_Father: {fileID: 22476844} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22475598 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189944} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480414} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22476160 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 126416} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22470886} + m_Father: {fileID: 22405860} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22476682 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 127606} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22443054} + m_Father: {fileID: 22405860} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22476844 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161340} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22452058} + - {fileID: 22427910} + - {fileID: 22471738} + - {fileID: 22489590} + - {fileID: 22467286} + - {fileID: 22457944} + - {fileID: 22494404} + m_Father: {fileID: 22467088} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22478504 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142884} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22437138} + m_Father: {fileID: 22447730} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22478602 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116652} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22429744} + m_Father: {fileID: 22447814} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479104 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22490242} + - {fileID: 22482300} + m_Father: {fileID: 22467286} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479444 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22400622} + - {fileID: 22400890} + m_Father: {fileID: 22402014} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479526 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 102626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22405860} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479612 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132352} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22426692} + m_Father: {fileID: 22481568} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22480244 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182982} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22414252} + m_Father: {fileID: 22481568} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22480262 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 130188} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22414150} + - {fileID: 22498890} + - {fileID: 22406882} + m_Father: {fileID: 22467088} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22480414 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125664} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22432858} + - {fileID: 22475598} + m_Father: {fileID: 22416166} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22480952 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187854} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22426112} + - {fileID: 22493004} + - {fileID: 22484992} + - {fileID: 22419086} + - {fileID: 22432076} + - {fileID: 22464842} + - {fileID: 22494104} + - {fileID: 22419944} + m_Father: {fileID: 22467088} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22481108 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165772} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22441924} + - {fileID: 22460848} + - {fileID: 22461692} + m_Father: {fileID: 22488748} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22481568 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180276} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22479612} + - {fileID: 22480244} + m_Father: {fileID: 22467088} + m_RootOrder: 9 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22481944 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22497682} + m_Father: {fileID: 413390} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22482300 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185044} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479104} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22483964 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22499996} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22484784 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22496040} + m_Father: {fileID: 22423064} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22484992 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 128966} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22499996} + m_Father: {fileID: 22480952} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22485358 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123792} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22438128} + - {fileID: 22446124} + m_Father: {fileID: 22467088} + m_RootOrder: 8 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22487126 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164700} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22428760} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22488578 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129940} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22496040} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22488748 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117990} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22439860} + - {fileID: 22469610} + - {fileID: 22481108} + m_Father: {fileID: 22453242} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22489086 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165082} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447730} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22489590 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137728} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22476844} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22489908 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 149114} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22405860} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22490242 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104306} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22479104} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22491112 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132830} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22450124} + m_RootOrder: 0 + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22491584 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111460} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22434838} + m_Father: {fileID: 22405860} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22492672 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195696} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22423064} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22493004 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110436} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480952} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22493084 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119846} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22421502} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22493708 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189728} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22417056} + m_Father: {fileID: 22447814} + m_RootOrder: 8 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22494104 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170568} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22428760} + m_Father: {fileID: 22480952} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22494154 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184910} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22405860} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22494404 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22424846} + m_Father: {fileID: 22476844} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22495460 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22431880} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22496040 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150452} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22459692} + - {fileID: 22488578} + m_Father: {fileID: 22484784} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22496344 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133032} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22421502} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497576 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118242} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22431880} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497682 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22453242} + m_Father: {fileID: 22481944} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -100, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497950 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138834} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22419232} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -7.5, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22498284 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114456} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22471372} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22498890 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22480262} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22499982 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 180914} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22447814} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22499996 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112176} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22422224} + - {fileID: 22483964} + m_Father: {fileID: 22484992} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &22507568 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134978} + m_Enabled: 1 + m_Alpha: 0.75 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 177290} + m_IsPrefabParent: 1 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..6ae95e4f0118a55421790133ccdb3e72755537e3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Resources/VIUExCamConfigInterface.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 189738cec75073140ab3a8f043e47f7c +timeCreated: 1505209670 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..8ad6b06c2d80d236c786e2c9f689e69f1c59985a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9643ffea5b77cca419aa9c3f9625209f +folderAsset: yes +timeCreated: 1465897901 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..13124c93022298dd841e12f1dcce2e9655daff16 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a32aa99f2c54106458a705c7bec6572f +folderAsset: yes +timeCreated: 1494409509 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI.meta new file mode 100644 index 0000000000000000000000000000000000000000..3b3a60dde152cacda83cec514660eef1d0e77b57 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: deaa77e97bb5f3945a95c4784153e3bd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..5f52d64cf076caa01f09d300289b18e9c0617640 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +#if UNITY_2018_4_OR_NEWER +using UnityEditor.Build.Reporting; +#endif + +namespace HTC.UnityPlugin.Vive +{ + public static class BuildUtils + { +#if UNITY_2018_4_OR_NEWER + public static void Build() + { + string[] args = GetExecuteMethodArguments(typeof(BuildUtils).FullName + "." + nameof(Build)); + string scene = args.ElementAtOrDefault(0); + string outputPathName = args.ElementAtOrDefault(1); + string buildTargetName = args.ElementAtOrDefault(2); + + Debug.LogFormat("Building scene \"{0}\" on build target \"{1}\" to \"{2}\".", scene, buildTargetName, outputPathName); + BuildReport report = BuildPipeline.BuildPlayer(new string[] { scene }, outputPathName, StringToBuildTarget(buildTargetName), BuildOptions.None); + } +#endif + +#if UNITY_2018_4_OR_NEWER + public static BuildTarget StringToBuildTarget(string name) + { + BuildTarget target; + if (Enum.TryParse(name, true, out target)) + { + return target; + } + + Debug.LogError("Error parsing the string to BuildTarget: " + name); + + return BuildTarget.NoTarget; + } +#endif + + public static string[] GetExecuteMethodArguments(string methodFullName) + { + List<string> optionArgs = new List<string>(); + string[] allArgs = Environment.GetCommandLineArgs(); + + bool isOptionFound = false; + foreach (string arg in allArgs) + { + if (!isOptionFound) + { + if (arg.Length < 2) + { + continue; + } + + if (arg.ToLower() == methodFullName.ToLower()) + { + isOptionFound = true; + } + } + else + { + if (arg[0] == '-') + { + break; + } + + optionArgs.Add(arg); + } + } + + return optionArgs.ToArray(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a8037c15f8d4625f4e70b398e9e755fc555b43f3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/CI/CIUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a3887adb9ccae64ea9278583ee1ddf2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef new file mode 100644 index 0000000000000000000000000000000000000000..0e2824764ba289dcbce41be08be6047cf3d9008e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef @@ -0,0 +1,24 @@ +{ + "name": "HTC.ViveInputUtility.Editor", + "references": [ + "HTC.ViveInputUtility", + "Unity.XR.Management", + "Unity.XR.Management.Editor", + "SteamVR", + "SteamVR_Input_Editor", + "Oculus.VR", + "Unity.XR.OpenVR", + "HTC.ViveInputUtility.UPMRegistryTool.Editor" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef.meta new file mode 100644 index 0000000000000000000000000000000000000000..52ffd91807d283710f42aab07376a2e53a36266f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/HTC.ViveInputUtility.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7716d3be0825ee4eba74c8c8e9b194c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..3da4206d99679c39ef67022cbe61ea6ed9ae5f69 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs @@ -0,0 +1,196 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public class VIUProjectSettings : ScriptableObject, ISerializationCallbackReceiver + { + private const string DEFAULT_ASSET_PATH = "Assets/VIUSettings/Editor/Resources/VIUProjectSettings.asset"; + private const string DEFAULT_RESOURCES_PATH = "VIUProjectSettings"; + + private static VIUProjectSettings s_instance = null; + private static string s_defaultAssetPath; + private static string s_partialActionDirPath; + + [SerializeField] private bool m_isInstallingWaveXRPlugin; + [SerializeField] private bool m_isInstallingOpenVRXRPlugin; + [SerializeField] private List<string> m_ignoreKeys; + + public bool isInstallingWaveXRPlugin + { + get + { + return m_isInstallingWaveXRPlugin; + } + set + { + m_isInstallingWaveXRPlugin = value; + Save(); + } + } + + public bool isInstallingOpenVRXRPlugin + { + get + { + return m_isInstallingOpenVRXRPlugin; + } + set + { + m_isInstallingOpenVRXRPlugin = value; + Save(); + } + } + + private HashSet<string> m_ignoreKeySet; + private bool m_isDirty; + + public static VIUProjectSettings Instance + { + get + { + if (s_instance == null) + { + Load(); + } + + return s_instance; + } + } + + public static string defaultAssetPath + { + get + { + if (s_defaultAssetPath == null) + { + s_defaultAssetPath = DEFAULT_ASSET_PATH; + } + + return s_defaultAssetPath; + } + } + + public static string partialActionDirPath + { + get + { + if (string.IsNullOrEmpty(s_partialActionDirPath)) + { + MonoScript script = MonoScript.FromScriptableObject(Instance); + string path = AssetDatabase.GetAssetPath(script); + s_partialActionDirPath = Path.GetFullPath(Path.GetDirectoryName(path) + "/../Misc/SteamVRExtension/PartialInputBindings"); + } + + return s_partialActionDirPath; + } + } + + public static string partialActionFileName + { + get { return "actions.json"; } + } + + public static bool hasChanged + { + get { return Instance.m_isDirty; } + set { Instance.m_isDirty = value; } + } + + public void OnBeforeSerialize() + { + if (m_isDirty) + { + if (m_ignoreKeySet != null && m_ignoreKeySet.Count > 0) + { + if (m_ignoreKeys == null) { m_ignoreKeys = new List<string>(); } + m_ignoreKeys.Clear(); + m_ignoreKeys.AddRange(m_ignoreKeySet); + } + + EditorUtility.SetDirty(this); + + m_isDirty = false; + } + } + + public void OnAfterDeserialize() + { + if (m_ignoreKeySet == null) { m_ignoreKeySet = new HashSet<string>(); } + m_ignoreKeySet.Clear(); + + if (m_ignoreKeys != null && m_ignoreKeys.Count > 0) + { + for (int i = 0, imax = m_ignoreKeys.Count; i < imax; ++i) + { + if (!string.IsNullOrEmpty(m_ignoreKeys[i])) + { + m_ignoreKeySet.Add(m_ignoreKeys[i]); + } + } + } + } + + private void OnDestroy() + { + if (s_instance == this) + { + s_instance = null; + } + } + + public static void Load(string path = null) + { + if (path == null) + { + path = DEFAULT_RESOURCES_PATH; + } + + if ((s_instance = Resources.Load<VIUProjectSettings>(DEFAULT_RESOURCES_PATH)) == null) + { + s_instance = CreateInstance<VIUProjectSettings>(); + } + } + + public static void Save(string path = null) + { + if (path == null) + { + path = AssetDatabase.GetAssetPath(Instance); + } + + if (!string.IsNullOrEmpty(path)) + { + return; + } + + path = defaultAssetPath; + Directory.CreateDirectory(Path.GetDirectoryName(path)); + AssetDatabase.CreateAsset(Instance, path); + } + + public static bool AddIgnoreKey(string key) + { + if (Instance.m_ignoreKeySet == null) { Instance.m_ignoreKeySet = new HashSet<string>(); } + var changed = Instance.m_ignoreKeySet.Add(key); + if (changed) { Instance.m_isDirty = true; } + return changed; + } + + public static bool RemoveIgnoreKey(string key) + { + var changed = Instance.m_ignoreKeySet == null ? false : Instance.m_ignoreKeySet.Remove(key); + if (changed) { Instance.m_isDirty = true; } + return changed; + } + + public static bool HasIgnoreKey(string key) + { + return Instance.m_ignoreKeySet == null ? false : Instance.m_ignoreKeySet.Contains(key); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6cd44516ef773770725a8ee82e3862d825e71514 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUProjectSettings.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 805888151002d97419dafcbc70fea01d +timeCreated: 1515264841 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..1acab782e64f8781f7e8f64b749722a5fba61f87 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs @@ -0,0 +1,965 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +#if UNITY_2018_1_OR_NEWER +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +#endif + +using GraphicsDeviceType = UnityEngine.Rendering.GraphicsDeviceType; + + +namespace HTC.UnityPlugin.Vive +{ + public static partial class VIUSettingsEditor + { + public interface ISupportedSDK + { + string name { get; } + bool enabled { get; set; } + } + + private static class VRSDKSettings + { + public class VRSDK : ISupportedSDK + { + private bool m_sdkEnabled; + + public string name { get; private set; } + public bool addLast { get; private set; } + + public bool enabled + { +#if UNITY_5_4_OR_NEWER + get + { + Update(); + return s_vrEnabled && m_sdkEnabled; + } + set + { + if (enabled == value) { return; } + + s_isDirty = true; + + if (value) + { + if (!m_sdkEnabled) + { + if (addLast) + { + s_enabledSDKNames.Add(name); + } + else + { + s_enabledSDKNames.Insert(0, name); + } + } + + s_vrEnabled = true; + } + else + { + if (m_sdkEnabled) + { + s_enabledSDKNames.Remove(name); + } + + if (s_enabledSDKNames.Count == 0) + { + s_vrEnabled = false; + } + } + + m_sdkEnabled = value; + } +#else + get { return false; } + set { } +#endif + } + + public VRSDK(string name, bool addLast = false) { this.name = name; this.addLast = addLast; } + public void Reset() { m_sdkEnabled = false; } + public bool Validate(string skdName) { return !m_sdkEnabled && (m_sdkEnabled = (name == skdName)); } // return true if confirmed + } + + private static bool s_initialized; + private static int s_updatedFrame = -1; + private static List<string> s_enabledSDKNames; + private static List<VRSDK> s_supportedSDKs; + private static bool s_isDirty; + private static bool s_vrEnabled; + private static SerializedObject s_projectSettingAsset; + private static SerializedProperty s_enabledProp; + private static SerializedProperty s_devicesProp = null; + + public static readonly VRSDK Oculus = new VRSDK("Oculus"); + public static readonly VRSDK OpenVR = new VRSDK("OpenVR", true); + public static readonly VRSDK Daydream = new VRSDK("daydream"); + public static readonly VRSDK MockHMD = new VRSDK("MockHMD"); + public static readonly VRSDK WindowsMR = new VRSDK("WindowsMR"); + + public static bool vrEnabled + { + get + { + Update(); + + return s_vrEnabled; + } + set + { + if (vrEnabled != value) + { + s_isDirty = true; +#if UNITY_2018_1_OR_NEWER + s_vrEnabled = value && (!PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || !PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)); +#else + s_vrEnabled = value; +#endif + } + } + } + + private static void Initialize() + { + if (s_initialized) { return; } + s_initialized = true; + + s_enabledSDKNames = new List<string>(); + s_supportedSDKs = new List<VRSDK> + { + Oculus, + OpenVR, + Daydream, + MockHMD, + }; + + s_projectSettingAsset = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/ProjectSettings.asset")[0]); +#if UNITY_5_5_OR_NEWER + var buildTargetGroupName = activeBuildTargetGroup.ToString(); + var targetVRSettingsArray = s_projectSettingAsset.FindProperty("m_BuildTargetVRSettings"); + var targetVRSettings = default(SerializedProperty); + + for (int i = 0, imax = targetVRSettingsArray.arraySize; i < imax; ++i) + { + var element = targetVRSettingsArray.GetArrayElementAtIndex(i); + if (element.FindPropertyRelative("m_BuildTarget").stringValue == buildTargetGroupName) + { + targetVRSettings = element; + break; + } + } + + if (targetVRSettings == null) + { + targetVRSettingsArray.arraySize += 1; + targetVRSettings = targetVRSettingsArray.GetArrayElementAtIndex(targetVRSettingsArray.arraySize - 1); + targetVRSettings.FindPropertyRelative("m_BuildTarget").stringValue = buildTargetGroupName; + s_projectSettingAsset.ApplyModifiedProperties(); + } + + s_enabledProp = targetVRSettings.FindPropertyRelative("m_Enabled"); + s_devicesProp = targetVRSettings.FindPropertyRelative("m_Devices"); +#elif UNITY_5_4_OR_NEWER + s_enabledProp = s_projectSettingAsset.FindProperty(activeBuildTargetGroup + "::VR::enable"); + s_devicesProp = s_projectSettingAsset.FindProperty(activeBuildTargetGroup + "::VR::enabledDevices"); +#else + s_enabledProp = s_projectSettingAsset.FindProperty("virtualRealitySupported"); +#endif + } + + public static void Update() + { + if (!ChangeProp.Set(ref s_updatedFrame, Time.frameCount)) { return; } + + Initialize(); + + s_projectSettingAsset.Update(); + + vrEnabled = s_enabledProp.boolValue; + + if (s_devicesProp != null) + { + s_enabledSDKNames.Clear(); + s_supportedSDKs.ForEach(sdk => sdk.Reset()); + + for (int i = s_devicesProp.arraySize - 1; i >= 0; --i) + { + var name = s_devicesProp.GetArrayElementAtIndex(i).stringValue; + s_enabledSDKNames.Add(name); + foreach (var sdk in s_supportedSDKs) + { + if (sdk.Validate(name)) { break; } + } + } + } + } + + public static void ApplyChanges() + { + if (!s_isDirty) { return; } + s_isDirty = false; + + s_projectSettingAsset.Update(); + + if (s_devicesProp != null) + { + if (s_devicesProp.arraySize != s_enabledSDKNames.Count) + { + s_devicesProp.arraySize = s_enabledSDKNames.Count; + } + + for (int i = s_enabledSDKNames.Count - 1; i >= 0; --i) + { + s_devicesProp.GetArrayElementAtIndex(i).stringValue = s_enabledSDKNames[i]; + } + } + + s_enabledProp.boolValue = s_vrEnabled; + + s_projectSettingAsset.ApplyModifiedProperties(); + } + } + + public class Foldouter + { + private static bool s_initialized; + private static GUIStyle s_styleFoleded; + private static GUIStyle s_styleExpended; + + public bool isExpended { get; private set; } + + public static void Initialize() + { + if (s_initialized) { return; } + s_initialized = true; + + s_styleFoleded = new GUIStyle(EditorStyles.foldout); + s_styleExpended = new GUIStyle(EditorStyles.foldout); + s_styleExpended.normal = s_styleFoleded.onNormal; + s_styleExpended.active = s_styleFoleded.onActive; + } + + public static void ShowFoldoutBlank() + { + GUILayout.Space(20f); + } + + public void ShowFoldoutButton() + { + var style = isExpended ? s_styleExpended : s_styleFoleded; + if (GUILayout.Button(string.Empty, style, GUILayout.Width(12f))) + { + isExpended = !isExpended; + } + } + + public bool ShowFoldoutButtonOnToggleEnabled(GUIContent content, bool toggleValue) + { + GUILayout.BeginHorizontal(); + if (toggleValue) + { + ShowFoldoutButton(); + } + else + { + ShowFoldoutBlank(); + } + var toggleResult = EditorGUILayout.ToggleLeft(content, toggleValue, s_labelStyle); + if (toggleResult != toggleValue) { s_guiChanged = true; } + GUILayout.EndHorizontal(); + return toggleResult; + } + + public bool ShowFoldoutButtonWithEnabledToggle(GUIContent content, bool toggleValue) + { + GUILayout.BeginHorizontal(); + ShowFoldoutButton(); + var toggleResult = EditorGUILayout.ToggleLeft(content, toggleValue, s_labelStyle); + if (toggleResult != toggleValue) { s_guiChanged = true; } + GUILayout.EndHorizontal(); + return toggleResult; + } + + public void ShowFoldoutButtonWithDisbledToggle(GUIContent content) + { + GUILayout.BeginHorizontal(); + ShowFoldoutButton(); + GUI.enabled = false; + EditorGUILayout.ToggleLeft(content, false, s_labelStyle); + GUI.enabled = true; + GUILayout.EndHorizontal(); + } + + public static void ShowFoldoutBlankWithDisbledToggle(GUIContent content) + { + GUILayout.BeginHorizontal(); + ShowFoldoutBlank(); + GUI.enabled = false; + EditorGUILayout.ToggleLeft(content, false, s_labelStyle); + GUI.enabled = true; + GUILayout.EndHorizontal(); + } + + public static bool ShowFoldoutBlankWithEnabledToggle(GUIContent content, bool toggleValue) + { + GUILayout.BeginHorizontal(); + ShowFoldoutBlank(); + var toggleResult = EditorGUILayout.ToggleLeft(content, toggleValue, s_labelStyle); + if (toggleResult != toggleValue) { s_guiChanged = true; } + GUILayout.EndHorizontal(); + return toggleResult; + } + } + + public static class PackageManagerHelper + { +#if UNITY_2018_1_OR_NEWER + private static bool s_wasPreparing; + private static bool m_wasAdded; + private static ListRequest m_listRequest; + private static AddRequest m_addRequest; + private static string s_fallbackIdentifier; + + public static bool isPreparingList + { + get + { + if (m_listRequest == null) { return s_wasPreparing = true; } + + switch (m_listRequest.Status) + { + case StatusCode.InProgress: + return s_wasPreparing = true; + case StatusCode.Failure: + if (!s_wasPreparing) + { + Debug.LogError("Something wrong when adding package to list. error:" + m_listRequest.Error.errorCode + "(" + m_listRequest.Error.message + ")"); + } + break; + case StatusCode.Success: + break; + } + + return s_wasPreparing = false; + } + } + + public static bool isAddingToList + { + get + { + if (m_addRequest == null) { return m_wasAdded = false; } + + switch (m_addRequest.Status) + { + case StatusCode.InProgress: + return m_wasAdded = true; + case StatusCode.Failure: + if (!m_wasAdded) + { + AddRequest request = m_addRequest; + m_addRequest = null; + if (string.IsNullOrEmpty(s_fallbackIdentifier)) + { + Debug.LogError("Something wrong when adding package to list. error:" + request.Error.errorCode + "(" + request.Error.message + ")"); + } + else + { + Debug.Log("Failed to install package: \"" + request.Error.message + "\". Retry with fallback identifier \"" + s_fallbackIdentifier + "\""); + AddToPackageList(s_fallbackIdentifier); + } + + s_fallbackIdentifier = null; + } + break; + case StatusCode.Success: + if (!m_wasAdded) + { + m_addRequest = null; + s_fallbackIdentifier = null; + ResetPackageList(); + } + break; + } + + return m_wasAdded = false; + } + } + + public static void PreparePackageList() + { + if (m_listRequest != null) { return; } +#if UNITY_2019_3_OR_NEWER + m_listRequest = Client.List(true, true); +#else + m_listRequest = Client.List(true); +#endif + } + + public static void ResetPackageList() + { + s_wasPreparing = false; + m_listRequest = null; + } + + public static bool IsPackageInList(string name) + { + if (m_listRequest == null || m_listRequest.Result == null) return false; + + return m_listRequest.Result.Any(pkg => pkg.name == name); + } + + public static void AddToPackageList(string identifier, string fallbackIdentifier = null) + { + Debug.Assert(m_addRequest == null); + + m_addRequest = Client.Add(identifier); + s_fallbackIdentifier = fallbackIdentifier; + } + + public static PackageCollection GetPackageList() + { + if (m_listRequest == null || m_listRequest.Result == null) + { + return null; + } + + return m_listRequest.Result; + } +#else + public static bool isPreparingList { get { return false; } } + public static bool isAddingToList { get { return false; } } + public static void PreparePackageList() { } + public static void ResetPackageList() { } + public static bool IsPackageInList(string name) { return false; } + public static void AddToPackageList(string identifier, string fallbackIdentifier = null) { } +#endif + } + + private abstract class VRPlatformSetting + { + public bool isStandaloneVR { get { return requirdPlatform == BuildTargetGroup.Standalone; } } + public bool isAndroidVR { get { return requirdPlatform == BuildTargetGroup.Android; } } + public abstract bool canSupport { get; } + public abstract bool support { get; set; } + + public abstract int order { get; } + protected abstract BuildTargetGroup requirdPlatform { get; } + + public abstract void OnPreferenceGUI(); + } + + private static VRPlatformSetting[] s_platformSettings; + + public const string URL_VIU_GITHUB_RELEASE_PAGE = "https://github.com/ViveSoftware/ViveInputUtility-Unity/releases"; + + private const string DEFAULT_ASSET_PATH = "Assets/VIUSettings/Resources/VIUSettings.asset"; + + private static Vector2 s_scrollValue = Vector2.zero; + private static float s_warningHeight; + private static GUIStyle s_labelStyle; + private static bool s_guiChanged; + private static string s_defaultAssetPath; + private static string s_VIUPackageName = null; + + private static Foldouter s_autoBindFoldouter = new Foldouter(); + private static Foldouter s_bindingUIFoldouter = new Foldouter(); + + static VIUSettingsEditor() + { + var platformSettins = new List<VRPlatformSetting>(); + foreach (var type in Assembly.GetAssembly(typeof(VRPlatformSetting)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(VRPlatformSetting)))) + { + platformSettins.Add((VRPlatformSetting)Activator.CreateInstance(type)); + } + s_platformSettings = platformSettins.OrderBy(e => e.order).ToArray(); + } + + public static bool virtualRealitySupported { get { return VRSDKSettings.vrEnabled; } set { VRSDKSettings.vrEnabled = value; } } + public static ISupportedSDK OpenVRSDK { get { return VRSDKSettings.OpenVR; } } + public static ISupportedSDK OculusSDK { get { return VRSDKSettings.Oculus; } } + public static ISupportedSDK DaydreamSDK { get { return VRSDKSettings.Daydream; } } + public static ISupportedSDK MockHMDSDK { get { return VRSDKSettings.MockHMD; } } + public static ISupportedSDK WindowsMRSDK { get { return VRSDKSettings.WindowsMR; } } + public static void ApplySDKChanges() { VRSDKSettings.ApplyChanges(); } + + public static BuildTargetGroup activeBuildTargetGroup { get { return BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); } } + + public static string defaultAssetPath + { + get + { + if (s_defaultAssetPath == null) + { + s_defaultAssetPath = DEFAULT_ASSET_PATH; + } + + return s_defaultAssetPath; + } + } + + public static bool supportAnyStandaloneVR + { + get + { + foreach (var ps in s_platformSettings) + { + if (ps.support && ps.isStandaloneVR) + { + return true; + } + } + return false; + } + } + + public static bool supportAnyAndroidVR + { + get + { + foreach (var ps in s_platformSettings) + { + if (ps.support && ps.isAndroidVR) + { + return true; + } + } + return false; + } + } + + public static bool supportAnyVR + { + get + { + foreach (var ps in s_platformSettings) + { + if (ps.support) + { + return true; + } + } + return false; + } + } + + public static string VIUPackageName + { + get + { + if (s_VIUPackageName == null) + { + MonoScript script = MonoScript.FromScriptableObject(VIUSettings.Instance); + string settingsPath = AssetDatabase.GetAssetPath(script); + Match match = Regex.Match(settingsPath, @"^Packages\/([^\/]+)\/"); + if (match.Success) + { + s_VIUPackageName = match.Groups[1].Value; + } + else + { + s_VIUPackageName = ""; + } + } + + return s_VIUPackageName; + } + } + + public static bool GraphicsAPIContainsOnly(BuildTarget buildTarget, params GraphicsDeviceType[] types) + { + if (PlayerSettings.GetUseDefaultGraphicsAPIs(buildTarget)) { return false; } + + var result = false; + var apiList = ListPool<GraphicsDeviceType>.Get(); + apiList.AddRange(PlayerSettings.GetGraphicsAPIs(buildTarget)); + if (types.Length == apiList.Count) + { + result = true; + for (int i = 0, imax = apiList.Count; i < imax; ++i) + { + if (apiList[i] != types[i]) { result = false; break; } + } + } + ListPool<GraphicsDeviceType>.Release(apiList); + return result; + } + + public static void SetGraphicsAPI(BuildTarget buildTarget, params GraphicsDeviceType[] types) + { + PlayerSettings.SetUseDefaultGraphicsAPIs(buildTarget, false); + PlayerSettings.SetGraphicsAPIs(buildTarget, types); + } + +#pragma warning disable 0618 + [PreferenceItem("VIU Settings")] +#pragma warning restore 0618 + private static void OnVIUPreferenceGUI() + { +#if UNITY_2017_1_OR_NEWER + if (EditorApplication.isCompiling) + { + EditorGUILayout.LabelField("Compiling..."); + return; + } +#endif +#if UNITY_2018_1_OR_NEWER + if (PackageManagerHelper.isAddingToList) + { + EditorGUILayout.LabelField("Installing Packages..."); + return; + } + PackageManagerHelper.PreparePackageList(); + if (PackageManagerHelper.isPreparingList) + { + EditorGUILayout.LabelField("Checking Packages..."); + return; + } +#endif + if (s_labelStyle == null) + { + s_labelStyle = new GUIStyle(EditorStyles.label); + s_labelStyle.richText = true; + } + + Foldouter.Initialize(); + + s_guiChanged = false; + + s_scrollValue = EditorGUILayout.BeginScrollView(s_scrollValue); + + EditorGUILayout.LabelField("<b>VIVE Input Utility v" + VIUVersion.current + "</b>", s_labelStyle); + EditorGUI.BeginChangeCheck(); + VIUSettings.autoCheckNewVIUVersion = EditorGUILayout.ToggleLeft("Auto Check Latest Version", VIUSettings.autoCheckNewVIUVersion); + s_guiChanged |= EditorGUI.EndChangeCheck(); + + GUILayout.BeginHorizontal(); + ShowUrlLinkButton(URL_VIU_GITHUB_RELEASE_PAGE, "Get Latest Release"); + ShowCheckRecommendedSettingsButton(); + GUILayout.EndHorizontal(); + + GUILayout.Space(10); + + EditorGUILayout.LabelField("<b>Supporting Device</b>", s_labelStyle); + + GUILayout.Space(5); + + foreach (var ps in s_platformSettings) + { + ps.OnPreferenceGUI(); + GUILayout.Space(5f); + } + + if (supportAnyAndroidVR) + { + EditorGUI.indentLevel += 2; + + // on Windows, following preferences is stored at HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x\ +#if UNITY_2019_1_OR_NEWER + if (!EditorPrefs.GetBool("SdkUseEmbedded") && string.IsNullOrEmpty(EditorPrefs.GetString("AndroidSdkRoot"))) +#else + if (string.IsNullOrEmpty(EditorPrefs.GetString("AndroidSdkRoot"))) +#endif + { + EditorGUILayout.HelpBox("AndroidSdkRoot is empty. Setup at Edit -> Preferences... -> External Tools -> Android SDK", MessageType.Warning); + } +#if UNITY_2018_3_OR_NEWER + if (!EditorPrefs.GetBool("JdkUseEmbedded") && string.IsNullOrEmpty(EditorPrefs.GetString("JdkPath"))) +#else + if (string.IsNullOrEmpty(EditorPrefs.GetString("JdkPath"))) +#endif + { + EditorGUILayout.HelpBox("JdkPath is empty. Setup at Edit -> Preferences... -> External Tools -> Android JDK", MessageType.Warning); + } + + // Optional + //if (string.IsNullOrEmpty(EditorPrefs.GetString("AndroidNdkRoot"))) + //{ + // EditorGUILayout.HelpBox("AndroidNdkRoot is empty. Setup at Edit -> Preferences... -> External Tools -> Android SDK", MessageType.Warning); + //} + +#if UNITY_5_6_OR_NEWER && !UNITY_5_6_0 && !UNITY_5_6_1 && !UNITY_5_6_2 + if (PlayerSettings.GetApplicationIdentifier(BuildTargetGroup.Android).Equals("com.Company.ProductName")) +#else + if (PlayerSettings.bundleIdentifier.Equals("com.Company.ProductName")) +#endif + { + EditorGUILayout.HelpBox("Cannot build using default package name. Change at Edit -> Project Settings -> Player -> Android settings -> Other Settings -> Identification(Package Name)", MessageType.Warning); + } + + EditorGUI.indentLevel -= 2; + } + + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("<b>Role Binding</b>", s_labelStyle); + GUILayout.Space(5); + + if (supportAnyStandaloneVR) + { + VIUSettings.autoLoadBindingConfigOnStart = s_autoBindFoldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent("Load Binding Config on Start"), VIUSettings.autoLoadBindingConfigOnStart); + } + else + { + Foldouter.ShowFoldoutBlankWithDisbledToggle(new GUIContent("Load Binding Config on Start", "Role Binding only works on standalone device.")); + } + + if (supportAnyStandaloneVR && VIUSettings.autoLoadBindingConfigOnStart && s_autoBindFoldouter.isExpended) + { + if (supportAnyStandaloneVR && VIUSettings.autoLoadBindingConfigOnStart) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + + EditorGUI.BeginChangeCheck(); + VIUSettings.bindingConfigFilePath = EditorGUILayout.DelayedTextField(new GUIContent("Config Path"), VIUSettings.bindingConfigFilePath); + if (string.IsNullOrEmpty(VIUSettings.bindingConfigFilePath)) + { + VIUSettings.bindingConfigFilePath = VIUSettings.BINDING_CONFIG_FILE_PATH_DEFAULT_VALUE; + EditorGUI.EndChangeCheck(); + } + else if (EditorGUI.EndChangeCheck() && VIUSettings.bindingConfigFilePath.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) + { + VIUSettings.bindingConfigFilePath = VIUSettings.EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE; + } + + EditorGUI.indentLevel -= 2; + } + if (supportAnyStandaloneVR && VIUSettings.autoLoadBindingConfigOnStart) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + + GUILayout.Space(5); + + if (supportAnyStandaloneVR) + { + VIUSettings.enableBindingInterfaceSwitch = s_bindingUIFoldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent("Enable Binding Interface Switch", VIUSettings.BIND_UI_SWITCH_TOOLTIP), VIUSettings.enableBindingInterfaceSwitch); + } + else + { + Foldouter.ShowFoldoutBlankWithDisbledToggle(new GUIContent("Enable Binding Interface Switch", "Role Binding only works with Standalone device.")); + } + + if (supportAnyStandaloneVR && VIUSettings.enableBindingInterfaceSwitch && s_bindingUIFoldouter.isExpended) + { + if (supportAnyStandaloneVR && VIUSettings.enableBindingInterfaceSwitch) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + + VIUSettings.bindingInterfaceSwitchKey = (KeyCode)EditorGUILayout.EnumPopup("Switch Key", VIUSettings.bindingInterfaceSwitchKey); + VIUSettings.bindingInterfaceSwitchKeyModifier = (KeyCode)EditorGUILayout.EnumPopup("Switch Key Modifier", VIUSettings.bindingInterfaceSwitchKeyModifier); + + EditorGUI.indentLevel -= 2; + } + if (supportAnyStandaloneVR && VIUSettings.enableBindingInterfaceSwitch) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + + //Foldouter.ApplyChanges(); + ApplySDKChanges(); + + var assetPath = AssetDatabase.GetAssetPath(VIUSettings.Instance); + + if (s_guiChanged) + { + if (string.IsNullOrEmpty(assetPath)) + { + Directory.CreateDirectory(Path.GetDirectoryName(defaultAssetPath)); + AssetDatabase.CreateAsset(VIUSettings.Instance, defaultAssetPath); + } + + EditorUtility.SetDirty(VIUSettings.Instance); + + VIUVersionCheck.UpdateIgnoredNotifiedSettingsCount(false); + + VRModuleManagerEditor.UpdateScriptingDefineSymbols(); + } + + if (!string.IsNullOrEmpty(assetPath)) + { + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button("Use Default Settings")) + { + AssetDatabase.DeleteAsset(assetPath); + foreach (var ps in s_platformSettings) + { + ps.support = ps.canSupport; + } + + VRSDKSettings.ApplyChanges(); + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + + GUILayout.BeginHorizontal(); + if (GUILayout.Button(new GUIContent("Repair Define Symbols", "Repair symbols that handled by VIU."))) + { + VRModuleManagerEditor.UpdateScriptingDefineSymbols(); + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + //if (GUILayout.Button("Create Partial Action Set", GUILayout.ExpandWidth(false))) + //{ + // var actionFile = new SteamVRExtension.VIUSteamVRActionFile() + // { + // dirPath = VIUProjectSettings.partialActionDirPath, + // fileName = VIUProjectSettings.partialActionFileName, + // }; + + // actionFile.action_sets.Add(new SteamVRExtension.VIUSteamVRActionFile.ActionSet() + // { + // name = SteamVRModule.ACTION_SET_NAME, + // usage = "leftright", + // }); + + // actionFile.localization.Add(new SteamVRExtension.VIUSteamVRActionFile.Localization() + // { + // { "language_tag", "en_US" }, + // }); + + // SteamVRModule.InitializePaths(); + // for (SteamVRModule.pressActions.Reset(); SteamVRModule.pressActions.IsCurrentValid(); SteamVRModule.pressActions.MoveNext()) + // { + // if (string.IsNullOrEmpty(SteamVRModule.pressActions.CurrentPath)) { continue; } + // actionFile.actions.Add(new SteamVRExtension.VIUSteamVRActionFile.Action() + // { + // name = SteamVRModule.pressActions.CurrentPath, + // type = SteamVRModule.pressActions.DataType, + // requirement = "optional", + // }); + // actionFile.localization[0].Add(SteamVRModule.pressActions.CurrentPath, SteamVRModule.pressActions.CurrentAlias); + // } + // for (SteamVRModule.touchActions.Reset(); SteamVRModule.touchActions.IsCurrentValid(); SteamVRModule.touchActions.MoveNext()) + // { + // if (string.IsNullOrEmpty(SteamVRModule.touchActions.CurrentPath)) { continue; } + // actionFile.actions.Add(new SteamVRExtension.VIUSteamVRActionFile.Action() + // { + // name = SteamVRModule.touchActions.CurrentPath, + // type = SteamVRModule.touchActions.DataType, + // requirement = "optional", + // }); + // actionFile.localization[0].Add(SteamVRModule.touchActions.CurrentPath, SteamVRModule.touchActions.CurrentAlias); + // } + // for (SteamVRModule.v1Actions.Reset(); SteamVRModule.v1Actions.IsCurrentValid(); SteamVRModule.v1Actions.MoveNext()) + // { + // if (string.IsNullOrEmpty(SteamVRModule.v1Actions.CurrentPath)) { continue; } + // actionFile.actions.Add(new SteamVRExtension.VIUSteamVRActionFile.Action() + // { + // name = SteamVRModule.v1Actions.CurrentPath, + // type = SteamVRModule.v1Actions.DataType, + // requirement = "optional", + // }); + // actionFile.localization[0].Add(SteamVRModule.v1Actions.CurrentPath, SteamVRModule.v1Actions.CurrentAlias); + // } + // for (SteamVRModule.v2Actions.Reset(); SteamVRModule.v2Actions.IsCurrentValid(); SteamVRModule.v2Actions.MoveNext()) + // { + // if (string.IsNullOrEmpty(SteamVRModule.v2Actions.CurrentPath)) { continue; } + // actionFile.actions.Add(new SteamVRExtension.VIUSteamVRActionFile.Action() + // { + // name = SteamVRModule.v2Actions.CurrentPath, + // type = SteamVRModule.v2Actions.DataType, + // requirement = "optional", + // }); + // actionFile.localization[0].Add(SteamVRModule.v2Actions.CurrentPath, SteamVRModule.v2Actions.CurrentAlias); + // } + // for (SteamVRModule.vibrateActions.Reset(); SteamVRModule.vibrateActions.IsCurrentValid(); SteamVRModule.vibrateActions.MoveNext()) + // { + // if (string.IsNullOrEmpty(SteamVRModule.vibrateActions.CurrentPath)) { continue; } + // actionFile.actions.Add(new SteamVRExtension.VIUSteamVRActionFile.Action() + // { + // name = SteamVRModule.vibrateActions.CurrentPath, + // type = SteamVRModule.vibrateActions.DataType, + // requirement = "optional", + // }); + // actionFile.localization[0].Add(SteamVRModule.vibrateActions.CurrentPath, SteamVRModule.vibrateActions.CurrentAlias); + // } + + // actionFile.Save(); + //} + + EditorGUILayout.EndScrollView(); + } + + private static bool ShowToggle(GUIContent label, bool value, params GUILayoutOption[] options) + { + var result = EditorGUILayout.ToggleLeft(label, value, s_labelStyle, options); + if (result != value) { s_guiChanged = true; } + return result; + } + + private static void ShowSwitchPlatformButton(BuildTargetGroup group, BuildTarget target) + { + if (GUILayout.Button(new GUIContent("Switch Platform", "Switch platform to " + group), GUILayout.ExpandWidth(false))) + { +#if UNITY_2017_1_OR_NEWER + EditorUserBuildSettings.SwitchActiveBuildTargetAsync(group, target); +#elif UNITY_5_6_OR_NEWER + EditorUserBuildSettings.SwitchActiveBuildTarget(group, target); +#else + EditorUserBuildSettings.SwitchActiveBuildTarget(target); +#endif + } + } + + private static void ShowAddPackageButton(string displayName, string identifier, string fallbackIdentifier = null) + { + if (GUILayout.Button(new GUIContent("Add " + displayName + " Package", "Add " + identifier + " to Package Manager"), GUILayout.ExpandWidth(false))) + { + PackageManagerHelper.AddToPackageList(identifier, fallbackIdentifier); + } + } + + private static void ShowCheckRecommendedSettingsButton() + { + if (VIUVersionCheck.notifiedSettingsCount <= 0) { return; } + + if (GUILayout.Button("View Recommended Settings", GUILayout.ExpandWidth(false))) + { + VIUVersionCheck.TryOpenRecommendedSettingWindow(); + } + } + + private static void ShowUrlLinkButton(string url, string label = "Get Plugin") + { + if (GUILayout.Button(new GUIContent(label, url), GUILayout.ExpandWidth(false))) + { + Application.OpenURL(url); + } + } + + private static void ShowCreateExCamCfgButton() + { + GUILayout.BeginHorizontal(); + GUILayout.Space(50f); + if (GUILayout.Button(new GUIContent("Generate Default Config File", "To get External Camera work in playmode, the config file must exits under project folder or build folder when start playing."))) + { + File.WriteAllText(VIUSettings.externalCameraConfigFilePath, +@"x=0 +y=0 +z=0 +rx=0 +ry=0 +rz=0 +fov=60 +near=0.1 +far=100 +sceneResolutionScale=0.5"); + } + GUILayout.EndHorizontal(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7e806c416bf875bbe00d142701ef653a4447493f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUSettingsEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d61962b06b63ea449b3d9b24513b1a4a +timeCreated: 1513320333 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs new file mode 100644 index 0000000000000000000000000000000000000000..314975e35619447b47fc2bbdbeab4e56aabd2729 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs @@ -0,0 +1,590 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== +#pragma warning disable 0649 +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using System.Reflection; + +#if UNITY_5_4_OR_NEWER +using UnityEngine.Networking; +#else +using UnityWebRequest = UnityEngine.WWW; +#endif + +namespace HTC.UnityPlugin.Vive +{ + [InitializeOnLoad] + public class VIUVersionCheck : EditorWindow + { + [Serializable] + private struct RepoInfo + { + public string tag_name; + public string body; + } + + public interface IPropSetting + { + bool SkipCheck(); + void UpdateCurrentValue(); + bool IsIgnored(); + bool IsUsingRecommendedValue(); + bool DoDrawRecommend(); // return true if setting accepted + void AcceptRecommendValue(); + void DoIgnore(); + void DeleteIgnore(); + } + + public class RecommendedSetting<T> : IPropSetting + { + private const string fmtTitle = "{0} (current = {1})"; + private const string fmtRecommendBtn = "Use recommended ({0})"; + private const string fmtRecommendBtnWithPosefix = "Use recommended ({0}) - {1}"; + + private string m_settingTitle; + private string m_settingTrimedTitle; + private string ignoreKey { get { return m_settingTrimedTitle; } } + + public string settingTitle { get { return m_settingTitle; } set { m_settingTitle = value; m_settingTrimedTitle = value.Replace(" ", ""); } } + public string recommendBtnPostfix = string.Empty; + public string toolTip = string.Empty; + public Func<bool> skipCheckFunc = null; + public Func<T> recommendedValueFunc = null; + public Func<T> currentValueFunc = null; + public Action<T> setValueFunc = null; + public T currentValue = default(T); + public T recommendedValue = default(T); + + public T GetRecommended() { return recommendedValueFunc == null ? recommendedValue : recommendedValueFunc(); } + + public bool SkipCheck() { return skipCheckFunc == null ? false : skipCheckFunc(); } + + public bool IsIgnored() { return VIUProjectSettings.HasIgnoreKey(ignoreKey); } + + public bool IsUsingRecommendedValue() { return EqualityComparer<T>.Default.Equals(currentValue, GetRecommended()); } + + public void UpdateCurrentValue() { currentValue = currentValueFunc(); } + + public bool DoDrawRecommend() + { + GUILayout.Label(new GUIContent(string.Format(fmtTitle, settingTitle, currentValue), toolTip)); + + GUILayout.BeginHorizontal(); + + bool recommendBtnClicked; + if (string.IsNullOrEmpty(recommendBtnPostfix)) + { + recommendBtnClicked = GUILayout.Button(new GUIContent(string.Format(fmtRecommendBtn, GetRecommended()), toolTip)); + } + else + { + recommendBtnClicked = GUILayout.Button(new GUIContent(string.Format(fmtRecommendBtnWithPosefix, GetRecommended(), recommendBtnPostfix), toolTip)); + } + + if (recommendBtnClicked) + { + AcceptRecommendValue(); + } + + GUILayout.FlexibleSpace(); + + if (GUILayout.Button(new GUIContent("Ignore", toolTip))) + { + DoIgnore(); + } + + GUILayout.EndHorizontal(); + + return recommendBtnClicked; + } + + public void AcceptRecommendValue() + { + setValueFunc(GetRecommended()); + } + + public void DoIgnore() + { + VIUProjectSettings.AddIgnoreKey(ignoreKey); + } + + public void DeleteIgnore() + { + VIUProjectSettings.RemoveIgnoreKey(ignoreKey); + } + } + + public abstract class RecommendedSettingCollection : List<IPropSetting> { } + + public const string lastestVersionUrl = "https://api.github.com/repos/ViveSoftware/ViveInputUtility-Unity/releases/latest"; + public const string pluginUrl = "https://github.com/ViveSoftware/ViveInputUtility-Unity/releases"; + public const double versionCheckIntervalMinutes = 30.0; + + private const string nextVersionCheckTimeKey = "ViveInputUtility.LastVersionCheckTime"; + private const string fmtIgnoreUpdateKey = "DoNotShowUpdate.v{0}"; + private static string ignoreThisVersionKey; + + private static bool completeCheckVersionFlow = false; + private static UnityWebRequest webReq; + private static RepoInfo latestRepoInfo; + private static System.Version latestVersion; + private static Vector2 releaseNoteScrollPosition; + private static Vector2 settingScrollPosition; + private static bool showNewVersion; + private static bool toggleSkipThisVersion = false; + private static VIUVersionCheck windowInstance; + private static List<IPropSetting> s_settings; + private static bool editorUpdateRegistered; + private Texture2D viuLogo; + + /// <summary> + /// Count of settings that are ignored + /// </summary> + public static int ignoredSettingsCount { get; private set; } + /// <summary> + /// Count of settings that are not using recommended value + /// </summary> + public static int shouldNotifiedSettingsCount { get; private set; } + /// <summary> + /// Count of settings that are not ignored and not using recommended value + /// </summary> + public static int notifiedSettingsCount { get; private set; } + + public static bool recommendedWindowOpened { get { return windowInstance != null; } } + + static VIUVersionCheck() + { + editorUpdateRegistered = true; + EditorApplication.update += CheckVersionAndSettings; + +#if UNITY_2017_2_OR_NEWER + EditorApplication.playModeStateChanged += (mode) => + { + if (mode == PlayModeStateChange.EnteredEditMode && !editorUpdateRegistered) + { +#else + EditorApplication.playmodeStateChanged += () => + { + if (!EditorApplication.isPlaying && !EditorApplication.isPlayingOrWillChangePlaymode && !editorUpdateRegistered) + { +#endif + editorUpdateRegistered = true; + EditorApplication.update += CheckVersionAndSettings; + } + }; + } + + public static void AddRecommendedSetting<T>(RecommendedSetting<T> setting) + { + InitializeSettins(); + s_settings.Add(setting); + } + + private static void InitializeSettins() + { + if (s_settings != null) { return; } + + s_settings = new List<IPropSetting>(); + + foreach (var type in Assembly.GetAssembly(typeof(RecommendedSettingCollection)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(RecommendedSettingCollection)))) + { + s_settings.AddRange((RecommendedSettingCollection)Activator.CreateInstance(type)); + } + } + + private static void VersionCheckLog(string msg) + { +#if VIU_PRINT_FETCH_VERSION_LOG + using (var outputFile = new StreamWriter("VIUVersionCheck.log", true)) + { + outputFile.WriteLine(DateTime.Now.ToString() + " - " + msg + ". Stop fetching until " + UtcDateTimeFromStr(EditorPrefs.GetString(nextVersionCheckTimeKey)).ToLocalTime().ToString()); + } +#endif + } + + // check vive input utility version on github + private static void CheckVersionAndSettings() + { + if (Application.isPlaying) + { + EditorApplication.update -= CheckVersionAndSettings; + editorUpdateRegistered = false; + return; + } + + InitializeSettins(); + + // fetch new version info from github release site + if (!completeCheckVersionFlow && VIUSettings.autoCheckNewVIUVersion) + { + if (webReq == null) // web request not running + { + if (EditorPrefs.HasKey(nextVersionCheckTimeKey) && DateTime.UtcNow < UtcDateTimeFromStr(EditorPrefs.GetString(nextVersionCheckTimeKey))) + { + VersionCheckLog("Skipped"); + completeCheckVersionFlow = true; + return; + } + + webReq = GetUnityWebRequestAndSend(lastestVersionUrl); + } + + if (!webReq.isDone) + { + return; + } + + // On Windows, PlaterSetting is stored at \HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x + EditorPrefs.SetString(nextVersionCheckTimeKey, UtcDateTimeToStr(DateTime.UtcNow.AddMinutes(versionCheckIntervalMinutes))); + + if (UrlSuccess(webReq)) + { + var json = GetWebText(webReq); + if (!string.IsNullOrEmpty(json)) + { + latestRepoInfo = JsonUtility.FromJson<RepoInfo>(json); + VersionCheckLog("Fetched"); + } + } + + // parse latestVersion and ignoreThisVersionKey + if (!string.IsNullOrEmpty(latestRepoInfo.tag_name)) + { + try + { + latestVersion = new System.Version(Regex.Replace(latestRepoInfo.tag_name, "[^0-9\\.]", string.Empty)); + ignoreThisVersionKey = string.Format(fmtIgnoreUpdateKey, latestVersion.ToString()); + } + catch + { + latestVersion = default(System.Version); + ignoreThisVersionKey = string.Empty; + } + } + + webReq.Dispose(); + webReq = null; + + completeCheckVersionFlow = true; + } + + VIUSettingsEditor.PackageManagerHelper.PreparePackageList(); + if (VIUSettingsEditor.PackageManagerHelper.isPreparingList) { return; } + + showNewVersion = !string.IsNullOrEmpty(ignoreThisVersionKey) && !VIUProjectSettings.HasIgnoreKey(ignoreThisVersionKey) && latestVersion > VIUVersion.current; + + UpdateIgnoredNotifiedSettingsCount(false); + + if (showNewVersion || notifiedSettingsCount > 0) + { + TryOpenRecommendedSettingWindow(); + } + + EditorApplication.update -= CheckVersionAndSettings; + editorUpdateRegistered = false; + } + + public static bool UpdateIgnoredNotifiedSettingsCount(bool drawNotifiedPrompt) + { + InitializeSettins(); + + ignoredSettingsCount = 0; + shouldNotifiedSettingsCount = 0; + notifiedSettingsCount = 0; + var hasSettingsAccepted = false; + + foreach (var setting in s_settings) + { + if (setting.SkipCheck()) { continue; } + + setting.UpdateCurrentValue(); + + var isIgnored = setting.IsIgnored(); + if (isIgnored) { ++ignoredSettingsCount; } + + if (setting.IsUsingRecommendedValue()) { continue; } + else { ++shouldNotifiedSettingsCount; } + + if (!isIgnored) + { + ++notifiedSettingsCount; + + if (drawNotifiedPrompt) + { + if (notifiedSettingsCount == 1) + { + EditorGUILayout.HelpBox("Recommended project settings:", MessageType.Warning); + + settingScrollPosition = GUILayout.BeginScrollView(settingScrollPosition, GUILayout.ExpandHeight(true)); + } + + hasSettingsAccepted |= setting.DoDrawRecommend(); + } + + } + } + + return hasSettingsAccepted; + } + + // Open recommended setting window (with possible new version prompt) + // won't do any thing if the window is already opened + public static void TryOpenRecommendedSettingWindow() + { + if (recommendedWindowOpened) { return; } + + windowInstance = GetWindow<VIUVersionCheck>(true, "Vive Input Utility"); + windowInstance.minSize = new Vector2(240f, 550f); + var rect = windowInstance.position; + windowInstance.position = new Rect(Mathf.Max(rect.x, 50f), Mathf.Max(rect.y, 50f), rect.width, 200f + (showNewVersion ? 700f : 400f)); + } + + private static DateTime UtcDateTimeFromStr(string str) + { + var utcTicks = default(long); + if (string.IsNullOrEmpty(str) || !long.TryParse(str, out utcTicks)) { return DateTime.MinValue; } + return new DateTime(utcTicks, DateTimeKind.Utc); + } + + private static string UtcDateTimeToStr(DateTime utcDateTime) + { + return utcDateTime.Ticks.ToString(); + } + + private static UnityWebRequest GetUnityWebRequestAndSend(string url) + { + var webReq = new UnityWebRequest(url); +#if UNITY_2017_2_OR_NEWER + webReq.SendWebRequest(); +#elif UNITY_5_4_OR_NEWER + webReq.Send(); +#endif + return webReq; + } + + private static string GetWebText(UnityWebRequest wr) + { +#if UNITY_5_4_OR_NEWER + return wr != null && wr.downloadHandler != null ? wr.downloadHandler.text : string.Empty; +#else + return wr != null ? wr.text : string.Empty; +#endif + } + + private static bool TryGetWebHeaderValue(UnityWebRequest wr, string headerKey, out string headerValue) + { +#if UNITY_5_4_OR_NEWER + headerValue = wr.GetResponseHeader(headerKey); + return string.IsNullOrEmpty(headerValue); +#else + if (wr.responseHeaders == null) { headerValue = string.Empty; return false; } + return wr.responseHeaders.TryGetValue(headerKey, out headerValue); +#endif + } + + private static bool UrlSuccess(UnityWebRequest wr) + { + try + { + if (wr == null) { return false; } + + if (!string.IsNullOrEmpty(wr.error)) + { + // API rate limit exceeded, see https://developer.github.com/v3/#rate-limiting + Debug.Log("url:" + wr.url); + Debug.Log("error:" + wr.error); + Debug.Log(GetWebText(wr)); + + string responseHeader; + if (TryGetWebHeaderValue(wr, "X-RateLimit-Limit", out responseHeader)) + { + Debug.Log("X-RateLimit-Limit:" + responseHeader); + } + if (TryGetWebHeaderValue(wr, "X-RateLimit-Remaining", out responseHeader)) + { + Debug.Log("X-RateLimit-Remaining:" + responseHeader); + } + if (TryGetWebHeaderValue(wr, "X-RateLimit-Reset", out responseHeader)) + { + Debug.Log("X-RateLimit-Reset:" + TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(double.Parse(responseHeader))).ToString()); + } + VersionCheckLog("Failed. Rate limit exceeded"); + return false; + } + + if (Regex.IsMatch(GetWebText(wr), "404 not found", RegexOptions.IgnoreCase)) + { + Debug.Log("url:" + wr.url); + Debug.Log("error:" + wr.error); + Debug.Log(GetWebText(wr)); + VersionCheckLog("Failed. 404 not found"); + return false; + } + } + catch (Exception e) + { + Debug.LogWarning(e); + VersionCheckLog("Failed. " + e.ToString()); + return false; + } + + return true; + } + + private string GetResourcePath() + { + var ms = MonoScript.FromScriptableObject(this); + var path = AssetDatabase.GetAssetPath(ms); + path = Path.GetDirectoryName(path); + return path.Substring(0, path.Length - "Scripts/Editor".Length) + "Textures/"; + } + + public void OnGUI() + { +#if UNITY_2017_1_OR_NEWER + if (EditorApplication.isCompiling) + { + EditorGUILayout.LabelField("Compiling..."); + return; + } +#endif + if (viuLogo == null) + { + var currentDir = Path.GetDirectoryName(AssetDatabase.GetAssetPath(MonoScript.FromScriptableObject(this))); + var texturePath = currentDir.Substring(0, currentDir.Length - "Scripts/Editor".Length) + "Textures/VIU_logo.png"; + viuLogo = AssetDatabase.LoadAssetAtPath<Texture2D>(texturePath); + } + + if (viuLogo != null) + { + GUI.DrawTexture(GUILayoutUtility.GetRect(position.width, 124, GUI.skin.box), viuLogo, ScaleMode.ScaleToFit); + } + + if (showNewVersion) + { + EditorGUILayout.HelpBox("New version available:", MessageType.Warning); + + GUILayout.Label("Current version: " + VIUVersion.current); + GUILayout.Label("New version: " + latestVersion); + + if (!string.IsNullOrEmpty(latestRepoInfo.body)) + { + GUILayout.Label("Release notes:"); + releaseNoteScrollPosition = GUILayout.BeginScrollView(releaseNoteScrollPosition, GUILayout.Height(250f)); + EditorGUILayout.HelpBox(latestRepoInfo.body, MessageType.None); + GUILayout.EndScrollView(); + } + + GUILayout.BeginHorizontal(); + { + if (GUILayout.Button(new GUIContent("Get Latest Version", "Goto " + pluginUrl))) + { + Application.OpenURL(pluginUrl); + } + + GUILayout.FlexibleSpace(); + + toggleSkipThisVersion = GUILayout.Toggle(toggleSkipThisVersion, "Do not prompt for this version again."); + } + GUILayout.EndHorizontal(); + } + + var hasSettingsAccepted = UpdateIgnoredNotifiedSettingsCount(true); + + if (notifiedSettingsCount > 0) + { + GUILayout.EndScrollView(); + + if (ignoredSettingsCount > 0) + { + if (GUILayout.Button("Clear All Ignores(" + ignoredSettingsCount + ")")) + { + foreach (var setting in s_settings) { setting.DeleteIgnore(); } + } + } + + GUILayout.BeginHorizontal(); + { + if (GUILayout.Button("Accept All(" + notifiedSettingsCount + ")")) + { + for (int i = 10; i >= 0 && notifiedSettingsCount > 0; --i) + { + foreach (var setting in s_settings) { if (!setting.SkipCheck() && !setting.IsIgnored() && !setting.IsUsingRecommendedValue()) { setting.AcceptRecommendValue(); } } + + VIUSettingsEditor.ApplySDKChanges(); + + UpdateIgnoredNotifiedSettingsCount(false); + } + + hasSettingsAccepted = true; + } + + if (GUILayout.Button("Ignore All(" + notifiedSettingsCount + ")")) + { + foreach (var setting in s_settings) { if (!setting.SkipCheck() && !setting.IsIgnored() && !setting.IsUsingRecommendedValue()) { setting.DoIgnore(); } } + } + } + GUILayout.EndHorizontal(); + } + else if (shouldNotifiedSettingsCount > 0) + { + EditorGUILayout.HelpBox("Some recommended settings ignored.", MessageType.Warning); + + GUILayout.FlexibleSpace(); + + if (GUILayout.Button("Clear All Ignores(" + ignoredSettingsCount + ")")) + { + foreach (var setting in s_settings) { setting.DeleteIgnore(); } + } + } + else + { + EditorGUILayout.HelpBox("All recommended settings applied.", MessageType.Info); + + GUILayout.FlexibleSpace(); + } + + VIUSettingsEditor.ApplySDKChanges(); + + if (VIUProjectSettings.hasChanged) + { + // save ignore keys + VIUProjectSettings.Save(); + } + + if (GUILayout.Button("Close")) + { + Close(); + } + + if (hasSettingsAccepted) + { + VRModuleManagement.VRModuleManagerEditor.UpdateScriptingDefineSymbols(); + } + } + + private void OnDestroy() + { + if (viuLogo != null) + { + viuLogo = null; + } + + if (showNewVersion && toggleSkipThisVersion && !string.IsNullOrEmpty(ignoreThisVersionKey)) + { + showNewVersion = false; + VIUProjectSettings.AddIgnoreKey(ignoreThisVersionKey); + VIUProjectSettings.Save(); + } + + if (windowInstance == this) + { + windowInstance = null; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e97db12a05f9c2b30312e9696862dd4a56f2f729 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VIUVersionCheck.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 37292473ea7658142b4917d403c8b9ee +timeCreated: 1494409518 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings.meta new file mode 100644 index 0000000000000000000000000000000000000000..2d71c82b86d38fbfc591b8345083ede616392042 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f1da019796a3356438367ea32e4c3531 +folderAsset: yes +timeCreated: 1548440785 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..6a376d298d4354820b7b8bb702238e6cb6e0c12f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs @@ -0,0 +1,169 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using UnityEditor; +using UnityEngine; +using UnityEngine.Rendering; + +namespace HTC.UnityPlugin.Vive +{ + public class DaydreamRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { + public DaydreamRecommendedSettings() + { + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Virtual Reality Supported with Daydream", + skipCheckFunc = () => !VIUSettingsEditor.canSupportDaydream, + currentValueFunc = () => VIUSettingsEditor.supportDaydream, + setValueFunc = v => VIUSettingsEditor.supportDaydream = v, + recommendedValue = true, + }); + } + } + + public static partial class VIUSettingsEditor + { + public const string URL_GOOGLE_VR_PLUGIN = "https://developers.google.com/vr/develop/unity/download"; + + public static bool canSupportDaydream + { + get { return DaydreamSettings.instance.canSupport; } + } + + public static bool supportDaydream + { + get { return DaydreamSettings.instance.support; } + set { DaydreamSettings.instance.support = value; } + } + + private class DaydreamSettings : VRPlatformSetting + { + private Foldouter m_foldouter = new Foldouter(); + + public static DaydreamSettings instance { get; private set; } + + public DaydreamSettings() { instance = this; } + + public override int order { get { return 101; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Android; } } + + public override bool canSupport + { +#if UNITY_5_6_OR_NEWER + get { return activeBuildTargetGroup == BuildTargetGroup.Android && VRModule.isGoogleVRPluginDetected; } +#else + get { return false; } +#endif + } + + public override bool support + { +#if UNITY_5_6_OR_NEWER + get + { + if (!canSupport) { return false; } + if (!VIUSettings.activateGoogleVRModule) { return false; } + if (!DaydreamSDK.enabled) { return false; } + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel24) { return false; } + if (PlayerSettings.colorSpace == ColorSpace.Linear && !GraphicsAPIContainsOnly(BuildTarget.Android, GraphicsDeviceType.OpenGLES3)) { return false; } + return true; + } + set + { + if (support == value) { return; } + + if (value) + { + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel24) + { + PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel24; + } + + if (PlayerSettings.colorSpace == ColorSpace.Linear) + { + SetGraphicsAPI(BuildTarget.Android, GraphicsDeviceType.OpenGLES3); + } + + supportWaveVR = false; + supportOculusGo = false; + } + + DaydreamSDK.enabled = value; + VIUSettings.activateGoogleVRModule = value; + } +#else + get { return false; } + set { } +#endif + } + + public override void OnPreferenceGUI() + { + const string title = "Daydream"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "Google Pixel series, others"), support); + } + else + { + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); + + var tooltip = string.Empty; +#if UNITY_5_6_OR_NEWER + if (activeBuildTargetGroup != BuildTargetGroup.Android) + { + tooltip = "Android platform required."; + } + else if (!VRModule.isGoogleVRPluginDetected) + { + tooltip = "Google VR plugin required."; + } +#else + tooltip = "Unity 5.6 or later version required."; +#endif + GUI.enabled = false; + ShowToggle(new GUIContent(title, tooltip), false, GUILayout.Width(80f)); + GUI.enabled = true; +#if UNITY_5_6_OR_NEWER + if (activeBuildTargetGroup != BuildTargetGroup.Android) + { + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Android, BuildTarget.Android); + } + else if (!VRModule.isGoogleVRPluginDetected) + { + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_GOOGLE_VR_PLUGIN); + } +#endif + GUILayout.EndHorizontal(); + } + + if (support && m_foldouter.isExpended) + { + if (support) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + + VIUSettings.daydreamSyncPadPressToTrigger = EditorGUILayout.ToggleLeft(new GUIContent("Sync Pad Press to Trigger", "Enable this option to handle the trigger button since the Daydream controller lacks one."), VIUSettings.daydreamSyncPadPressToTrigger); + + EditorGUI.indentLevel -= 2; + } + if (support) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + + if (support) + { + EditorGUI.indentLevel += 2; + + EditorGUILayout.HelpBox("VRDevice daydream not supported in Editor Mode. Please run on target device.", MessageType.Info); + + EditorGUI.indentLevel -= 2; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6a6d7a6198b5349adff798694b5ca87513199ea8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/DaydreamSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fb8c500e999ec3e4cb81bfeba5dcf30e +timeCreated: 1548535773 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..524eec541e094317686cbcd162912736797990d7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs @@ -0,0 +1,690 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using UnityEditor; +using UnityEngine; +using UnityEngine.Rendering; +using System.Linq; +using System.IO; +using System; +#if UNITY_5_6_OR_NEWER +using UnityEditor.Build; +#endif +#if UNITY_2018_1_OR_NEWER +using UnityEditor.Build.Reporting; +#endif +#if UNITY_5_6_OR_NEWER +using UnityEditor.Rendering; +#endif + +namespace HTC.UnityPlugin.Vive +{ + public class OculusGoRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { + private SerializedObject projectSettingsAsset; + private SerializedObject qualitySettingsAsset; + + private SerializedObject GetPlayerSettings() + { + if (projectSettingsAsset == null) + { + projectSettingsAsset = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/ProjectSettings.asset")[0]); + } + + return projectSettingsAsset; + } + + private SerializedObject GetQualitySettingsAsset() + { + if (qualitySettingsAsset == null) + { + qualitySettingsAsset = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/QualitySettings.asset")[0]); + } + + return qualitySettingsAsset; + } + + public OculusGoRecommendedSettings() + { +#if UNITY_5_4_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Graphic Jobs for Oculus Go", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => PlayerSettings.graphicsJobs, + setValueFunc = v => PlayerSettings.graphicsJobs = v, + recommendedValue = false, + }); +#endif + // Oculus mobile recommended settings + // https://developer.oculus.com/blog/tech-note-unity-settings-for-mobile-vr/ + Add(new VIUVersionCheck.RecommendedSetting<MobileTextureSubtarget>() + { + settingTitle = "Texture Compression", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => EditorUserBuildSettings.androidBuildSubtarget, + setValueFunc = v => EditorUserBuildSettings.androidBuildSubtarget = v, + recommendedValue = MobileTextureSubtarget.ASTC, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Mobile Multithreaded Rendering", + skipCheckFunc = () => !VIUSettingsEditor.supportWaveVR || !VIUSettingsEditor.supportOculusGo, +#if UNITY_2017_2_OR_NEWER + currentValueFunc = () => PlayerSettings.MTRendering, + setValueFunc = v => PlayerSettings.MTRendering = v, +#else + currentValueFunc = () => PlayerSettings.mobileMTRendering, + setValueFunc = v => PlayerSettings.mobileMTRendering = v, +#endif + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Static Batching", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => + { + var playerSetting = GetPlayerSettings(); + playerSetting.Update(); + + var batchingArrayProp = playerSetting.FindProperty("m_BuildTargetBatching"); + var batchingProp = default(SerializedProperty); + for (int i = 0, imax = batchingArrayProp.arraySize; i < imax; ++i) + { + var element = batchingArrayProp.GetArrayElementAtIndex(i); + if (element.FindPropertyRelative("m_BuildTarget").stringValue == "Android") + { + batchingProp = element; + break; + } + } + if (batchingProp == null) { return false; } + + var staticBatchingProp = batchingProp.FindPropertyRelative("m_StaticBatching"); + if (staticBatchingProp == null) { return false; } + + return staticBatchingProp.boolValue; + }, + setValueFunc = v => + { + var playerSetting = GetPlayerSettings(); + playerSetting.Update(); + + var batchingArrayProp = playerSetting.FindProperty("m_BuildTargetBatching"); + var batchingProp = default(SerializedProperty); + for (int i = 0, imax = batchingArrayProp.arraySize; i < imax; ++i) + { + var element = batchingArrayProp.GetArrayElementAtIndex(i); + if (element.FindPropertyRelative("m_BuildTarget").stringValue == "Android") + { + batchingProp = element; + break; + } + } + if (batchingProp == null) + { + batchingArrayProp.arraySize += 1; + batchingProp = batchingArrayProp.GetArrayElementAtIndex(batchingArrayProp.arraySize - 1); + batchingProp.FindPropertyRelative("m_BuildTarget").stringValue = "Android"; + } + + batchingProp.FindPropertyRelative("m_StaticBatching").boolValue = v; + playerSetting.ApplyModifiedProperties(); + }, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Dynamic Batching", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => + { + var settingObj = GetPlayerSettings(); + settingObj.Update(); + + var batchingArrayProp = settingObj.FindProperty("m_BuildTargetBatching"); + var batchingProp = default(SerializedProperty); + for (int i = 0, imax = batchingArrayProp.arraySize; i < imax; ++i) + { + var element = batchingArrayProp.GetArrayElementAtIndex(i); + if (element.FindPropertyRelative("m_BuildTarget").stringValue == "Android") + { + batchingProp = element; + break; + } + } + if (batchingProp == null) { return false; } + + var staticBatchingProp = batchingProp.FindPropertyRelative("m_DynamicBatching"); + if (staticBatchingProp == null) { return false; } + + return staticBatchingProp.boolValue; + }, + setValueFunc = v => + { + var settingObj = GetPlayerSettings(); + settingObj.Update(); + + var batchingArrayProp = settingObj.FindProperty("m_BuildTargetBatching"); + var batchingProp = default(SerializedProperty); + for (int i = 0, imax = batchingArrayProp.arraySize; i < imax; ++i) + { + var element = batchingArrayProp.GetArrayElementAtIndex(i); + if (element.FindPropertyRelative("m_BuildTarget").stringValue == "Android") + { + batchingProp = element; + break; + } + } + if (batchingProp == null) + { + batchingArrayProp.arraySize += 1; + batchingProp = batchingArrayProp.GetArrayElementAtIndex(batchingArrayProp.arraySize - 1); + batchingProp.FindPropertyRelative("m_BuildTarget").stringValue = "Android"; + } + + batchingProp.FindPropertyRelative("m_DynamicBatching").boolValue = v; + settingObj.ApplyModifiedProperties(); + }, + recommendedValue = true, + }); + +#if UNITY_5_5_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<StereoRenderingPath>() + { + settingTitle = "Stereo Rendering Method", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => PlayerSettings.stereoRenderingPath, + setValueFunc = v => PlayerSettings.stereoRenderingPath = v, + recommendedValue = StereoRenderingPath.SinglePass, + }); +#endif + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Prebake Collision Meshes", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => PlayerSettings.bakeCollisionMeshes, + setValueFunc = v => PlayerSettings.bakeCollisionMeshes = v, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Keep Loaded Shaders Alive", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => + { + var settingObj = GetPlayerSettings(); + settingObj.Update(); + + return settingObj.FindProperty("keepLoadedShadersAlive").boolValue; + }, + setValueFunc = v => + { + var settingObj = GetPlayerSettings(); + settingObj.Update(); + + settingObj.FindProperty("keepLoadedShadersAlive").boolValue = v; + settingObj.ApplyModifiedProperties(); + }, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Optimize Mesh Data", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => PlayerSettings.stripUnusedMeshComponents, + setValueFunc = v => PlayerSettings.stripUnusedMeshComponents = v, + recommendedValue = true, + }); + +#if UNITY_5_5_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Use Oculus Mobile recommended Quality Settings", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => + { + var settingObj = GetQualitySettingsAsset(); + settingObj.Update(); + + var qualitySettingsArray = settingObj.FindProperty("m_QualitySettings"); + for (int i = 0, imax = qualitySettingsArray.arraySize; i < imax; ++i) + { + // Simple(level 2) is a good one to start from, it should be the only level that is checked. + var element = qualitySettingsArray.GetArrayElementAtIndex(i); + var excludedArray = element.FindPropertyRelative("excludedTargetPlatforms"); + + var foundExcludeAndroidPlatform = false; + for (int j = 0, jmax = excludedArray.arraySize; j < jmax; ++j) + { + if (excludedArray.GetArrayElementAtIndex(j).stringValue == "Android") + { + foundExcludeAndroidPlatform = true; + break; + } + } + + if (i == 2) { if (foundExcludeAndroidPlatform) { return false; } } + else if (!foundExcludeAndroidPlatform) { return false; } + } + + var lv2qualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2); + if (lv2qualitySetting.FindPropertyRelative("pixelLightCount").intValue > 1) { return false; } + if (lv2qualitySetting.FindPropertyRelative("anisotropicTextures").intValue != (int)AnisotropicFiltering.Disable) { return false; } + var antiAliasingLevel = lv2qualitySetting.FindPropertyRelative("antiAliasing").intValue; if (antiAliasingLevel > 4 || antiAliasingLevel < 2) { return false; } + if (lv2qualitySetting.FindPropertyRelative("shadows").intValue >= (int)ShadowQuality.All) { return false; } +#if UNITY_2019_1_OR_NEWER + if (lv2qualitySetting.FindPropertyRelative("skinWeights").intValue > 2) { return false; } +#else + if (lv2qualitySetting.FindPropertyRelative("blendWeights").intValue > 2) { return false; } +#endif + if (lv2qualitySetting.FindPropertyRelative("vSyncCount").intValue != 0) { return false; } + + return true; + }, + setValueFunc = v => + { + if (!v) { return; } + + var settingObj = GetQualitySettingsAsset(); + settingObj.Update(); + + var qualitySettingsArray = settingObj.FindProperty("m_QualitySettings"); + for (int i = 0, imax = qualitySettingsArray.arraySize; i < imax; ++i) + { + // Simple(level 2) is a good one to start from, it should be the only level that is checked. + var element = qualitySettingsArray.GetArrayElementAtIndex(i); + var excludedArray = element.FindPropertyRelative("excludedTargetPlatforms"); + + var excludeAndroidIndex = -1; + for (int j = 0, jmax = excludedArray.arraySize; j < jmax; ++j) + { + if (excludedArray.GetArrayElementAtIndex(j).stringValue == "Android") + { + excludeAndroidIndex = j; + break; + } + } + + if (i == 2) + { + if (excludeAndroidIndex >= 0) + { + excludedArray.DeleteArrayElementAtIndex(excludeAndroidIndex); + } + } + else if (excludeAndroidIndex < 0) + { + excludedArray.arraySize += 1; + excludedArray.GetArrayElementAtIndex(excludedArray.arraySize - 1).stringValue = "Android"; + } + } + + var lv2qualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2); + + var pixelLightCountProp = lv2qualitySetting.FindPropertyRelative("pixelLightCount"); + var pixelLightCount = pixelLightCountProp.intValue; + if (pixelLightCount > 1) { pixelLightCountProp.intValue = 1; } + else if (pixelLightCount < 0) { pixelLightCountProp.intValue = 0; } + + lv2qualitySetting.FindPropertyRelative("anisotropicTextures").intValue = (int)AnisotropicFiltering.Disable; + + var antiAliasingLevelProp = lv2qualitySetting.FindPropertyRelative("antiAliasing"); + var antiAliasingLevel = antiAliasingLevelProp.intValue; + if (antiAliasingLevel != 2 || antiAliasingLevel != 4) { antiAliasingLevelProp.intValue = 4; } + + var shadowsProp = lv2qualitySetting.FindPropertyRelative("shadows"); + if (shadowsProp.intValue >= (int)ShadowQuality.All) { shadowsProp.intValue = (int)ShadowQuality.HardOnly; } + +#if UNITY_2019_1_OR_NEWER + var blendWeightsProp = lv2qualitySetting.FindPropertyRelative("skinWeights"); + if (blendWeightsProp.intValue > 2) { blendWeightsProp.intValue = 2; } +#else + var blendWeightsProp = lv2qualitySetting.FindPropertyRelative("blendWeights"); + if (blendWeightsProp.intValue > 2) { blendWeightsProp.intValue = 2; } +#endif + + lv2qualitySetting.FindPropertyRelative("vSyncCount").intValue = 0; + + settingObj.ApplyModifiedProperties(); + }, + recommendedValue = true, + }); +#endif + +#if UNITY_5_6_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Use Oculus Mobile recommended Graphics Tier Settings", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, + currentValueFunc = () => + { + var tierSettings = default(TierSettings); + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier1); + if (tierSettings.standardShaderQuality != ShaderQuality.Low) { return false; } + if (tierSettings.renderingPath != RenderingPath.Forward) { return false; } + if (tierSettings.realtimeGICPUUsage != RealtimeGICPUUsage.Low) { return false; } + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier2); + if (tierSettings.standardShaderQuality != ShaderQuality.Low) { return false; } + if (tierSettings.renderingPath != RenderingPath.Forward) { return false; } + if (tierSettings.realtimeGICPUUsage != RealtimeGICPUUsage.Low) { return false; } + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier3); + if (tierSettings.standardShaderQuality != ShaderQuality.Low) { return false; } + if (tierSettings.renderingPath != RenderingPath.Forward) { return false; } + if (tierSettings.realtimeGICPUUsage != RealtimeGICPUUsage.Low) { return false; } + return true; + }, + setValueFunc = v => + { + if (!v) { return; } + + var tierSettings = default(TierSettings); + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier1); + tierSettings.standardShaderQuality = ShaderQuality.Low; + tierSettings.renderingPath = RenderingPath.Forward; + tierSettings.realtimeGICPUUsage = RealtimeGICPUUsage.Low; + EditorGraphicsSettings.SetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier1, tierSettings); + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier2); + tierSettings.standardShaderQuality = ShaderQuality.Low; + tierSettings.renderingPath = RenderingPath.Forward; + tierSettings.realtimeGICPUUsage = RealtimeGICPUUsage.Low; + EditorGraphicsSettings.SetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier2, tierSettings); + + tierSettings = EditorGraphicsSettings.GetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier3); + tierSettings.standardShaderQuality = ShaderQuality.Low; + tierSettings.renderingPath = RenderingPath.Forward; + tierSettings.realtimeGICPUUsage = RealtimeGICPUUsage.Low; + EditorGraphicsSettings.SetTierSettings(BuildTargetGroup.Android, GraphicsTier.Tier3, tierSettings); + }, + recommendedValue = true, + }); +#endif + } + } + public static partial class VIUSettingsEditor + { + public const string URL_OCULUS_VR_PLUGIN = "https://www.assetstore.unity3d.com/en/#!/content/82022"; + private const string OCULUS_ANDROID_PACKAGE_NAME = "com.unity.xr.oculus.android"; + + public static bool canSupportOculusGo + { + get { return OculusGoSettings.instance.canSupport; } + } + + public static bool supportOculusGo + { + get { return OculusGoSettings.instance.support; } + set { OculusGoSettings.instance.support = value; } + } + + private class OculusGoSettings : VRPlatformSetting +#if UNITY_2018_1_OR_NEWER + , IPreprocessBuildWithReport +#elif UNITY_5_6_OR_NEWER + , IPreprocessBuild +#endif + { + private Foldouter m_foldouter = new Foldouter(); + + public static OculusGoSettings instance { get; private set; } + + public OculusGoSettings() { instance = this; } + + public override int order { get { return 103; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Android; } } + + private string defaultAndroidManifestPath + { + get + { +#if VIU_OCULUSVR + var monoScripts = MonoImporter.GetAllRuntimeMonoScripts(); + var monoScript = monoScripts.FirstOrDefault(script => script.GetClass() == typeof(OVRInput)); + var path = Path.GetDirectoryName(AssetDatabase.GetAssetPath(monoScript)); + var fullPath = Path.GetFullPath((path.Substring(0, path.Length - "Scripts".Length) + "Editor/AndroidManifest.OVRSubmission.xml").Replace("\\", "/")); + + return fullPath.Substring(fullPath.IndexOf("Assets"), fullPath.Length - fullPath.IndexOf("Assets")); +#else + return string.Empty; +#endif + } + } + + public override bool canSupport + { + get + { +#if UNITY_2020_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Android && PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); +#elif UNITY_2018_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Android && (PackageManagerHelper.IsPackageInList(OCULUS_ANDROID_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)); +#elif UNITY_5_6_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Android && VRModule.isOculusVRPluginDetected; +#else + return false; +#endif + } + } + + public override bool support + { +#if UNITY_5_6_OR_NEWER + get + { + if (!canSupport) { return false; } + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel21) { return false; } + if (PlayerSettings.graphicsJobs) { return false; } + if ((PlayerSettings.colorSpace == ColorSpace.Linear || PlayerSettings.gpuSkinning) && !GraphicsAPIContainsOnly(BuildTarget.Android, GraphicsDeviceType.OpenGLES3)) { return false; } + +#if UNITY_2019_3_OR_NEWER + if (!((VIUSettings.activateOculusVRModule && OculusSDK.enabled) + || (VIUSettings.activateUnityXRModule && XRPluginManagementUtils.IsXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_NAME, requirdPlatform)))) { return false; } +#else + if (!VIUSettings.activateOculusVRModule) { return false; } + if (!OculusSDK.enabled) { return false; } +#endif + return true; + } + set + { + if (support == value) { return; } + + if (value) + { + supportWaveVR = false; + supportDaydream = false; + + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel21) + { + PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel21; + } + + PlayerSettings.graphicsJobs = false; + + if (PlayerSettings.colorSpace == ColorSpace.Linear || PlayerSettings.gpuSkinning) + { + SetGraphicsAPI(BuildTarget.Android, GraphicsDeviceType.OpenGLES3); + } + } + + VIUSettings.activateOculusVRModule = value; +#if UNITY_2020_1_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_CLASS_NAME, requirdPlatform, value); + OculusSDK.enabled = value && !PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); +#elif UNITY_2019_3_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_CLASS_NAME, requirdPlatform, value); + OculusSDK.enabled = value && !PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); + VIUSettings.activateUnityNativeVRModule = value || supportOpenVR; +#else + OculusSDK.enabled = value; + VIUSettings.activateUnityNativeVRModule = value; +#endif + } +#else + get { return false; } + set { } +#endif + } + + public int callbackOrder { get { return 0; } } + + public override void OnPreferenceGUI() + { + const string title = "Oculus Android"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "Oculus Go, Oculus Quest"), support); + } + else + { + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); + + if (activeBuildTargetGroup != BuildTargetGroup.Android) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Android platform required."), false, GUILayout.Width(150f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Android, BuildTarget.Android); + } +#if UNITY_2019_3_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus XR Plugin package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Oculus XR Plugin", OCULUS_XR_PACKAGE_NAME); + } +#endif +#if !UNITY_2020_1_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OCULUS_ANDROID_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus Android package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Oculus Android", OCULUS_ANDROID_PACKAGE_NAME); + } +#endif + else if (!VRModule.isOculusVRPluginDetected) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus VR Plugin required."), false, GUILayout.Width(150f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_OCULUS_VR_PLUGIN); + } + + GUILayout.EndHorizontal(); + } + + if (support && m_foldouter.isExpended) + { + if (support) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + EditorGUILayout.BeginHorizontal(); + + EditorGUIUtility.labelWidth = 230; + var style = new GUIStyle(GUI.skin.textField) { alignment = TextAnchor.MiddleLeft }; + VIUSettings.oculusVRAndroidManifestPath = EditorGUILayout.DelayedTextField(new GUIContent("Customized AndroidManifest Path:", "Default path: " + defaultAndroidManifestPath), + VIUSettings.oculusVRAndroidManifestPath, style); + if (GUILayout.Button("Open", new GUILayoutOption[] { GUILayout.Width(44), GUILayout.Height(18) })) + { + var path = EditorUtility.OpenFilePanel("Select AndroidManifest.xml", string.Empty, "xml"); + if (path.Length != 0) + { + // make relative path if it is under Assets folder. + if (path.StartsWith(Application.dataPath)) + { + path = "Assets" + path.Substring(Application.dataPath.Length); + } + VIUSettings.oculusVRAndroidManifestPath = path; + } + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + + if (!File.Exists(VIUSettings.oculusVRAndroidManifestPath) && (string.IsNullOrEmpty(defaultAndroidManifestPath) || !File.Exists(defaultAndroidManifestPath))) + { + EditorGUILayout.HelpBox("Default AndroidManifest.xml does not existed!", MessageType.Warning); + } + else if (!string.IsNullOrEmpty(VIUSettings.oculusVRAndroidManifestPath) && !File.Exists(VIUSettings.oculusVRAndroidManifestPath)) + { + EditorGUILayout.HelpBox("File does not existed!", MessageType.Warning); + } + + EditorGUILayout.EndHorizontal(); + EditorGUI.indentLevel -= 2; + } + if (support) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + } + + public void OnPreprocessBuild(BuildTarget target, string path) + { + if (!support) { return; } + + if (File.Exists(VIUSettings.oculusVRAndroidManifestPath)) + { + File.Copy(VIUSettings.oculusVRAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + else if (File.Exists(defaultAndroidManifestPath)) + { + File.Copy(defaultAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + } + +#if UNITY_2018_1_OR_NEWER + public void OnPreprocessBuild(BuildReport report) + { + if (!support) { return; } + + if (File.Exists(VIUSettings.oculusVRAndroidManifestPath)) + { + if (Directory.Exists("Assets/Plugins/Android/AndroidManifest.xml")) + { + File.Copy(VIUSettings.oculusVRAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + else + { + Directory.CreateDirectory("Assets/Plugins/Android/"); + File.Copy(VIUSettings.oculusVRAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + } + else if (File.Exists(defaultAndroidManifestPath)) + { + if (Directory.Exists("Assets/Plugins/Android/AndroidManifest.xml")) + { + File.Copy(defaultAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + else + { + Directory.CreateDirectory("Assets/Plugins/Android/"); + File.Copy(defaultAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + } + } +#endif + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8ef2a43d1af0a61c7a5eb3d51c1db3187d701b25 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d8e0130e4f596a54b8f2354b10c0347f +timeCreated: 1548535773 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..b2a1f751e51c469d98c26e58c30bb4078c2c2cdb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs @@ -0,0 +1,207 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.IO; +using UnityEditor; +using UnityEngine; +using HTC.UnityPlugin.VRModuleManagement; + +namespace HTC.UnityPlugin.Vive +{ + public class OculusRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { + private const string OCULUS_SDK_PATH = "Assets/Oculus/"; + private const string AVATAR_ASMDEF_FILE_NAME = "Oculus.Avatar.asmdef"; + private const string LIPSYNC_ASMDEF_FILE_NAME = "Oculus.LipSync.asmdef"; + private const string LIPSYNC_EDITOR_ASMDEF_FILE_NAME = "Oculus.LipSync.Editor.asmdef"; + private const string SPATIALIZER_ASMDEF_FILE_NAME = "Oculus.Spatializer.asmdef"; + private const string SPATIALIZER_EDITOR_ASMDEF_FILE_NAME = "Oculus.Spatializer.Editor.asmdef"; + + private static readonly string ASMDEFS_PATH = "Packages/" + VIUSettingsEditor.VIUPackageName + "/ViveInputUtility/.asmdefs/Oculus/"; + + public OculusRecommendedSettings() + { + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Virtual Reality Supported with Oculus", + skipCheckFunc = () => !VIUSettingsEditor.canSupportOculus, + currentValueFunc = () => VIUSettingsEditor.supportOculus, + setValueFunc = v => VIUSettingsEditor.supportOculus = v, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Multithreaded Rendering", + skipCheckFunc = () => !VIUSettingsEditor.supportOculusGo, +#if UNITY_2017_2_OR_NEWER + currentValueFunc = () => PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android), + setValueFunc = v => PlayerSettings.SetMobileMTRendering(BuildTargetGroup.Android, v), +#else + currentValueFunc = () => PlayerSettings.mobileMTRendering, + setValueFunc = v => PlayerSettings.mobileMTRendering = v, +#endif + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Add Missing Assembly Definitions in Oculus SDK", + skipCheckFunc = () => { return !VRModule.isOculusVRPluginDetected; }, + currentValueFunc = () => { return VRModule.isOculusVRAvatarSupported; }, + setValueFunc = v => + { + if (v) + { + string asmdefFullPath = Path.GetFullPath(ASMDEFS_PATH); + string oculusFullPath = Path.GetFullPath(OCULUS_SDK_PATH); + File.Copy(asmdefFullPath + AVATAR_ASMDEF_FILE_NAME, oculusFullPath + "Avatar/" + AVATAR_ASMDEF_FILE_NAME); + File.Copy(asmdefFullPath + LIPSYNC_ASMDEF_FILE_NAME, oculusFullPath + "LipSync/" + LIPSYNC_ASMDEF_FILE_NAME); + File.Copy(asmdefFullPath + LIPSYNC_EDITOR_ASMDEF_FILE_NAME, oculusFullPath + "LipSync/Editor/" + LIPSYNC_EDITOR_ASMDEF_FILE_NAME); + File.Copy(asmdefFullPath + SPATIALIZER_ASMDEF_FILE_NAME, oculusFullPath + "Spatializer/" + SPATIALIZER_ASMDEF_FILE_NAME); + File.Copy(asmdefFullPath + SPATIALIZER_EDITOR_ASMDEF_FILE_NAME, oculusFullPath + "Spatializer/Editor/" + SPATIALIZER_EDITOR_ASMDEF_FILE_NAME); + AssetDatabase.Refresh(); + } + }, + recommendedValue = true, + }); + } + } + + public static partial class VIUSettingsEditor + { + private const string OCULUS_DESKTOP_PACKAGE_NAME = "com.unity.xr.oculus.standalone"; + private const string OCULUS_XR_PACKAGE_NAME = "com.unity.xr.oculus"; + + public static bool canSupportOculus + { + get { return OculusSettings.instance.canSupport; } + } + + public static bool supportOculus + { + get { return OculusSettings.instance.support; } + set { OculusSettings.instance.support = value; } + } + + private class OculusSettings : VRPlatformSetting + { + public static OculusSettings instance { get; private set; } + + public OculusSettings() { instance = this; } + + public override int order { get { return 2; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Standalone; } } + + public override bool canSupport + { + get + { +#if UNITY_2020_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); +#elif UNITY_2018_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && (PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OCULUS_DESKTOP_PACKAGE_NAME)); +#elif UNITY_5_5_OR_NEWER && !UNITY_5_6_0 && !UNITY_5_6_1 && !UNITY_5_6_2 + return activeBuildTargetGroup == BuildTargetGroup.Standalone; +#else + return activeBuildTargetGroup == BuildTargetGroup.Standalone && VRModule.isOculusVRPluginDetected; +#endif + } + } + + public override bool support + { + get + { +#if UNITY_2020_1_OR_NEWER + return canSupport && (VIUSettings.activateOculusVRModule || (VIUSettings.activateUnityXRModule && XRPluginManagementUtils.IsXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_NAME, requirdPlatform))); +#elif UNITY_2019_3_OR_NEWER + return canSupport && (((VIUSettings.activateOculusVRModule || VIUSettings.activateUnityNativeVRModule) && OculusSDK.enabled) || VIUSettings.activateUnityXRModule && XRPluginManagementUtils.IsXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_NAME, requirdPlatform)); +#elif UNITY_5_5_OR_NEWER + return canSupport && (VIUSettings.activateOculusVRModule || VIUSettings.activateUnityNativeVRModule) && OculusSDK.enabled; +#elif UNITY_5_4_OR_NEWER + return canSupport && VIUSettings.activateOculusVRModule && OculusSDK.enabled; +#else + return canSupport && VIUSettings.activateOculusVRModule && virtualRealitySupported; +#endif + } + set + { + if (support == value) { return; } + + VIUSettings.activateOculusVRModule = value; +#if UNITY_2020_1_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_CLASS_NAME, requirdPlatform, value && PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)); + OculusSDK.enabled = value && !PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); +#elif UNITY_2019_3_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(OculusVRModule.OCULUS_XR_LOADER_CLASS_NAME, requirdPlatform, value && PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)); + OculusSDK.enabled = value && !PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); + VIUSettings.activateUnityNativeVRModule = value || supportOpenVR; +#elif UNITY_5_5_OR_NEWER + OculusSDK.enabled = value; + VIUSettings.activateUnityNativeVRModule = value || supportOpenVR; +#elif UNITY_5_4_OR_NEWER + OculusSDK.enabled = value; +#else + virtualRealitySupported = value; +#endif + } + } + + public override void OnPreferenceGUI() + { + const string title = "Oculus Desktop"; + if (canSupport) + { + support = Foldouter.ShowFoldoutBlankWithEnabledToggle(new GUIContent(title, "Oculus Rift, Oculus Rift S"), support); + } + else + { + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); + + if (activeBuildTargetGroup != BuildTargetGroup.Standalone) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Standalone platform required."), false, GUILayout.Width(150f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64); + } +#if UNITY_2019_3_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OCULUS_XR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus XR Plugin package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Oculus XR Plugin", OCULUS_XR_PACKAGE_NAME); + } +#endif +#if !UNITY_2020_1_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OCULUS_DESKTOP_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus (Desktop) package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Oculus (Desktop)", OCULUS_DESKTOP_PACKAGE_NAME); + } +#endif + else if (!VRModule.isOculusVRPluginDetected) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Oculus VR Plugin required."), false, GUILayout.Width(150f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_OCULUS_VR_PLUGIN); + } + + GUILayout.EndHorizontal(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..063d0dfd13c5fdaf227bf30502d1a303ac65b678 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 70f20a2d334c57a48b5e6b0ba4fdd6e0 +timeCreated: 1548535773 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..e4e40be3290cf077c255b45330598e4a8ca0e867 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs @@ -0,0 +1,628 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.Rendering; + +#if UNITY_2018_1_OR_NEWER +using HTC.UnityPlugin.UPMRegistryTool.Editor.Utils; +#endif + +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#endif + +#if VIU_STEAMVR_2_0_0_OR_NEWER +using Valve.VR; +using HTC.UnityPlugin.Vive.SteamVRExtension; +#endif + +namespace HTC.UnityPlugin.Vive +{ + public class OpenVRRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { +#if VIU_STEAMVR_2_0_0_OR_NEWER + private class RecommendedSteamVRInputFileSettings : VIUVersionCheck.RecommendedSetting<bool> + { + private readonly string m_mainDirPath; + private readonly string m_partialDirPath; + private readonly string m_partialFileName = "actions.json"; + private DateTime m_mainFileVersion; + private DateTime m_partialFileVersion; + private bool m_lastCheckMergedResult; + + private string mainFileName { get { return SteamVR_Settings.instance.actionsFilePath; } } + + private string exampleDirPath + { + get + { + var monoScripts = MonoImporter.GetAllRuntimeMonoScripts(); + var monoScript = monoScripts.FirstOrDefault(script => script.GetClass() == typeof(SteamVR_Input)); + return Path.GetFullPath(Path.Combine(Path.GetDirectoryName(AssetDatabase.GetAssetPath(monoScript)), SteamVR_CopyExampleInputFiles.exampleJSONFolderName)); + } + } + + public RecommendedSteamVRInputFileSettings() + { +#if VIU_STEAMVR_2_4_0_OR_NEWER + m_mainDirPath = Path.GetDirectoryName(SteamVR_Input.GetActionsFilePath()); +#else + m_mainDirPath = Path.GetFullPath(Application.dataPath + "/../"); +#endif + m_partialDirPath = VIUProjectSettings.partialActionDirPath; + m_partialFileName = VIUProjectSettings.partialActionFileName; + + settingTitle = "Apply VIU Action Set for SteamVR Input"; + skipCheckFunc = () => !VIUSettingsEditor.canSupportOpenVR; + currentValueFunc = IsMerged; + setValueFunc = Merge; + recommendedValue = true; + } + + private bool IsMerged() + { + VIUSteamVRActionFile mainFile; + VIUSteamVRActionFile partialFile; + + if (!VIUSteamVRActionFile.TryLoad(m_mainDirPath, mainFileName, out mainFile)) { return false; } +#if VIU_STEAMVR_2_1_0_OR_NEWER + if (SteamVR_Input.actions == null || SteamVR_Input.actions.Length == 0) { return false; } +#endif + if (!VIUSteamVRActionFile.TryLoad(m_partialDirPath, m_partialFileName, out partialFile)) { return true; } + + if (m_mainFileVersion != mainFile.lastWriteTime || m_partialFileVersion != partialFile.lastWriteTime) + { + m_mainFileVersion = mainFile.lastWriteTime; + m_partialFileVersion = partialFile.lastWriteTime; + m_lastCheckMergedResult = mainFile.IsMerged(partialFile); + } + + return m_lastCheckMergedResult; + } + + private void Merge(bool value) + { + if (!value) { return; } + + if (!Directory.Exists(m_mainDirPath)) + { + Directory.CreateDirectory(m_mainDirPath); + } + + VIUSteamVRActionFile mainFile; + VIUSteamVRActionFile exampleFile; + VIUSteamVRActionFile partialFile; + + if (SteamVR_Input.actionFile != null) + { + EditorWindow.GetWindow<SteamVR_Input_EditorWindow>(false, "SteamVR Input", true).Close(); + } + + if (!VIUSteamVRActionFile.TryLoad(m_partialDirPath, m_partialFileName, out partialFile)) { return; } + + VIUSteamVRActionFile.TryLoad(m_mainDirPath, mainFileName, out mainFile); + VIUSteamVRActionFile.TryLoad(exampleDirPath, mainFileName, out exampleFile); + + if (exampleFile != null && (mainFile == null || !mainFile.IsMerged(exampleFile))) + { + if (EditorUtility.DisplayDialog("Import SteamVR Example Inputs", "Would you also like to import SteamVR Example Input File? Click yes if you want SteamVR plugin example scene to work.", "Yes", "No")) + { + if (mainFile == null) + { + mainFile = exampleFile; + } + else + { + mainFile.Merge(exampleFile); + } + + EditorPrefs.SetBool(SteamVR_CopyExampleInputFiles.steamVRInputExampleJSONCopiedKey, true); + } + } + + mainFile.Merge(partialFile); + mainFile.Save(m_mainDirPath); + + m_mainFileVersion = m_partialFileVersion = default(DateTime); + + EditorApplication.delayCall += () => + { + EditorWindow.GetWindow<SteamVR_Input_EditorWindow>(false, "SteamVR Input", true); + SteamVR_Input_Generator.BeginGeneration(); + }; + } + } +#endif + public OpenVRRecommendedSettings() + { + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Virtual Reality Supported with OpenVR", + skipCheckFunc = () => !VIUSettingsEditor.canSupportOpenVR, + currentValueFunc = () => VIUSettingsEditor.supportOpenVR, + setValueFunc = v => VIUSettingsEditor.supportOpenVR = v, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<BuildTarget>() + { + settingTitle = "Build Target", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || VIUSettingsEditor.activeBuildTargetGroup != BuildTargetGroup.Standalone, + currentValueFunc = () => EditorUserBuildSettings.activeBuildTarget, + setValueFunc = v => + { +#if UNITY_2017_1_OR_NEWER + EditorUserBuildSettings.SwitchActiveBuildTargetAsync(BuildTargetGroup.Standalone, v); +#elif UNITY_5_6_OR_NEWER + EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Standalone, v); +#else + EditorUserBuildSettings.SwitchActiveBuildTarget(v); +#endif + }, + recommendedValue = BuildTarget.StandaloneWindows64, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Load Binding Config on Start", + skipCheckFunc = () => !VIUSettingsEditor.supportOpenVR, + toolTip = "You can change this option later in Edit -> Preferences... -> VIU Settings.", + currentValueFunc = () => VIUSettings.autoLoadBindingConfigOnStart, + setValueFunc = v => { VIUSettings.autoLoadBindingConfigOnStart = v; }, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Binding Interface Switch", + skipCheckFunc = () => !VIUSettingsEditor.supportOpenVR, + toolTip = VIUSettings.BIND_UI_SWITCH_TOOLTIP + " You can change this option later in Edit -> Preferences... -> VIU Settings.", + currentValueFunc = () => VIUSettings.enableBindingInterfaceSwitch, + setValueFunc = v => { VIUSettings.enableBindingInterfaceSwitch = v; }, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "External Camera Switch", + skipCheckFunc = () => !VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportOpenVR, + toolTip = VIUSettings.EX_CAM_UI_SWITCH_TOOLTIP + " You can change this option later in Edit -> Preferences... -> VIU Settings.", + currentValueFunc = () => VIUSettings.enableExternalCameraSwitch, + setValueFunc = v => { VIUSettings.enableExternalCameraSwitch = v; }, + recommendedValue = true, + }); + +#if UNITY_5_3 + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Stereoscopic Rendering", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyVR, + currentValueFunc = () => PlayerSettings.stereoscopic3D, + setValueFunc = v => PlayerSettings.stereoscopic3D = v, + recommendedValue = false, + }); +#endif + +#if UNITY_5_3 || UNITY_5_4 + Add(new VIUVersionCheck.RecommendedSetting<RenderingPath>() + { + settingTitle = "Rendering Path", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyVR, + recommendBtnPostfix = "required for MSAA", + currentValueFunc = () => PlayerSettings.renderingPath, + setValueFunc = v => PlayerSettings.renderingPath = v, + recommendedValue = RenderingPath.Forward, + }); + + // Unity 5.3 doesn't have SplashScreen for VR + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Show Unity Splash Screen", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !InternalEditorUtility.HasPro() || !VIUSettingsEditor.supportAnyVR, + currentValueFunc = () => PlayerSettings.showUnitySplashScreen, + setValueFunc = v => PlayerSettings.showUnitySplashScreen = v, + recommendedValue = false, + }); +#endif + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "GPU Skinning", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyVR, + currentValueFunc = () => PlayerSettings.gpuSkinning, + setValueFunc = v => + { + if (VIUSettingsEditor.supportAnyAndroidVR) + { + VIUSettingsEditor.SetGraphicsAPI(BuildTarget.Android, GraphicsDeviceType.OpenGLES3); + } + PlayerSettings.gpuSkinning = v; + }, + recommendedValueFunc = () => !VIUSettingsEditor.supportWaveVR, + }); + + Add(new VIUVersionCheck.RecommendedSetting<Vector2>() + { + settingTitle = "Default Screen Size", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => new Vector2(PlayerSettings.defaultScreenWidth, PlayerSettings.defaultScreenHeight), + setValueFunc = v => { PlayerSettings.defaultScreenWidth = (int)v.x; PlayerSettings.defaultScreenHeight = (int)v.y; }, + recommendedValue = new Vector2(1024f, 768f), + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Run In Background", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.runInBackground, + setValueFunc = v => PlayerSettings.runInBackground = v, + recommendedValue = true, + }); + +#if !UNITY_2019_2_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<ResolutionDialogSetting>() + { + settingTitle = "Display Resolution Dialog", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.displayResolutionDialog, + setValueFunc = v => PlayerSettings.displayResolutionDialog = v, + recommendedValue = ResolutionDialogSetting.HiddenByDefault, + }); +#endif + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Resizable Window", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.resizableWindow, + setValueFunc = v => PlayerSettings.resizableWindow = v, + recommendedValue = true, + }); + +#if !UNITY_2018_1_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Default Is Fullscreen", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.defaultIsFullScreen, + setValueFunc = v => PlayerSettings.defaultIsFullScreen = v, + recommendedValue = false, + }); + + Add(new VIUVersionCheck.RecommendedSetting<D3D11FullscreenMode>() + { + settingTitle = "D3D11 Fullscreen Mode", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.d3d11FullscreenMode, + setValueFunc = v => PlayerSettings.d3d11FullscreenMode = v, + recommendedValue = D3D11FullscreenMode.FullscreenWindow, + }); +#else + Add(new VIUVersionCheck.RecommendedSetting<FullScreenMode>() + { + settingTitle = "Fullscreen Mode", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.fullScreenMode, + setValueFunc = v => PlayerSettings.fullScreenMode = v, + recommendedValue = FullScreenMode.FullScreenWindow, + }); +#endif + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Visible In Background", + skipCheckFunc = () => VRModule.isSteamVRPluginDetected || !VIUSettingsEditor.supportAnyStandaloneVR, + currentValueFunc = () => PlayerSettings.visibleInBackground, + setValueFunc = v => PlayerSettings.visibleInBackground = v, + recommendedValue = true, + }); + + Add(new VIUVersionCheck.RecommendedSetting<ColorSpace>() + { + settingTitle = "Color Space", + skipCheckFunc = () => (VRModule.isSteamVRPluginDetected && VIUSettingsEditor.activeBuildTargetGroup == BuildTargetGroup.Standalone) || !VIUSettingsEditor.supportAnyVR, + recommendBtnPostfix = "requires reloading scene", + currentValueFunc = () => PlayerSettings.colorSpace, + setValueFunc = v => + { + if (VIUSettingsEditor.supportAnyAndroidVR) + { + VIUSettingsEditor.SetGraphicsAPI(BuildTarget.Android, GraphicsDeviceType.OpenGLES3); + } + PlayerSettings.colorSpace = v; + }, + recommendedValue = ColorSpace.Linear, + }); +#if VIU_STEAMVR_2_0_0_OR_NEWER + Add(new RecommendedSteamVRInputFileSettings()); +#endif + } + } + + public static partial class VIUSettingsEditor + { + public const string URL_STEAM_VR_PLUGIN = "https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647"; + + private const string OPENVR_PACKAGE_NAME = "com.unity.xr.openvr.standalone"; + private const string OPENVR_XR_PACKAGE_NAME_OLD = "com.valve.openvr"; + private const string OPENVR_XR_PACKAGE_NAME = "com.valvesoftware.unity.openvr"; + +#if UNITY_2019_3_OR_NEWER + private static readonly RegistryInfo ValveRegistry = new RegistryInfo + { + Name = "Valve", + Url = "https://registry.npmjs.org/", + Scopes = new List<string> + { + "com.valvesoftware", + "com.valvesoftware.unity.openvr", + }, + }; +#endif + + public static bool canSupportOpenVR + { + get { return OpenVRSettings.instance.canSupport; } + } + + public static bool supportOpenVR + { + get { return OpenVRSettings.instance.support; } + set { OpenVRSettings.instance.support = value; } + } + + private class OpenVRSettings : VRPlatformSetting + { + private Foldouter m_foldouter = new Foldouter(); + + public static OpenVRSettings instance { get; private set; } + + public OpenVRSettings() { instance = this; } + + public override int order { get { return 1; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Standalone; } } + + public override bool canSupport + { + get + { + +#if UNITY_2020_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && (PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD)); +#elif UNITY_2018_1_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && ((PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD)) || PackageManagerHelper.IsPackageInList(OPENVR_PACKAGE_NAME)); +#elif UNITY_5_5_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone; +#else + return activeBuildTargetGroup == BuildTargetGroup.Standalone && VRModule.isSteamVRPluginDetected; +#endif + } + } + + public override bool support + { + get + { +#if UNITY_2020_1_OR_NEWER + return canSupport && ((VIUSettings.activateSteamVRModule || VIUSettings.activateUnityXRModule) && XRPluginManagementUtils.IsXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_NAME, requirdPlatform)); +#elif UNITY_2019_3_OR_NEWER + return canSupport && (((VIUSettings.activateSteamVRModule || VIUSettings.activateUnityNativeVRModule) && OpenVRSDK.enabled) || VIUSettings.activateUnityXRModule && XRPluginManagementUtils.IsXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_NAME, requirdPlatform)); +#elif UNITY_5_5_OR_NEWER + return canSupport && (VIUSettings.activateSteamVRModule || VIUSettings.activateUnityNativeVRModule) && OpenVRSDK.enabled; +#elif UNITY_5_4_OR_NEWER + return canSupport && VIUSettings.activateSteamVRModule && OpenVRSDK.enabled; +#else + return canSupport && VIUSettings.activateSteamVRModule && !virtualRealitySupported; +#endif + } + set + { + if (support == value) { return; } + + VIUSettings.activateSteamVRModule = value; +#if UNITY_2020_1_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_CLASS_NAME, requirdPlatform, value && (PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD))); + OpenVRSDK.enabled = value && (!PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || !PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD)); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); +#elif UNITY_2019_3_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_CLASS_NAME, requirdPlatform, value && (PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD))); + OpenVRSDK.enabled = value && (!PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || !PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD)); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); + VIUSettings.activateUnityNativeVRModule = value || supportOculus; +#elif UNITY_5_5_OR_NEWER + OpenVRSDK.enabled = value; + VIUSettings.activateUnityNativeVRModule = value || supportOculus; +#elif UNITY_5_4_OR_NEWER + OpenVRSDK.enabled = value; +#else + if (value) + { + virtualRealitySupported = false; + } +#endif + +#if VIU_STEAMVR_2_2_0_OR_NEWER + SteamVR_Settings.instance.autoEnableVR = false; + EditorUtility.SetDirty(SteamVR_Settings.instance); + AssetDatabase.SaveAssets(); +#elif VIU_STEAMVR_1_2_1_OR_NEWER && !(UNITY_5_3 || UNITY_5_2 || UNITY_5_1 || UNITY_5_0) + SteamVR_Preferences.AutoEnableVR = false; +#endif + } + } + + public override void OnPreferenceGUI() + { + const string title = "OpenVR"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "VIVE, VIVE Pro, VIVE Pro Eye, VIVE Cosmos\nOculus Rift, Oculus Rift S, Windows MR"), support); + } + else + { + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); + + if (activeBuildTargetGroup != BuildTargetGroup.Standalone) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Standalone platform required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64); + } +#if UNITY_2019_3_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "OpenVR XR Plugin package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + + if (GUILayout.Button(new GUIContent("Add OpenVR XR Plugin Package", "Add " + OPENVR_XR_PACKAGE_NAME + " to Package Manager"), GUILayout.ExpandWidth(false))) + { + if (!ManifestUtils.CheckRegistryExists(ValveRegistry)) + { + ManifestUtils.AddRegistry(ValveRegistry); + } + + PackageManagerHelper.AddToPackageList(OPENVR_XR_PACKAGE_NAME); + VIUProjectSettings.Instance.isInstallingOpenVRXRPlugin = true; + } + } +#endif +#if !UNITY_2020_1_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(OPENVR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "OpenVR (Desktop) package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("OpenVR (Desktop)", OPENVR_PACKAGE_NAME); + } +#endif + else if (!VRModule.isSteamVRPluginDetected) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "SteamVR Plugin required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_STEAM_VR_PLUGIN); + } + + GUILayout.EndHorizontal(); + } + + if (support && m_foldouter.isExpended) + { + if (support && VRModule.isSteamVRPluginDetected) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + + VIUSettings.autoLoadExternalCameraConfigOnStart = EditorGUILayout.ToggleLeft(new GUIContent("Load Config and Enable External Camera on Start", "You can also load config by calling ExternalCameraHook.LoadConfigFromFile(path) in script."), VIUSettings.autoLoadExternalCameraConfigOnStart); + if (!VIUSettings.autoLoadExternalCameraConfigOnStart && support) { GUI.enabled = false; } + { + EditorGUI.indentLevel++; + + EditorGUI.BeginChangeCheck(); + VIUSettings.externalCameraConfigFilePath = EditorGUILayout.DelayedTextField(new GUIContent("Config Path"), VIUSettings.externalCameraConfigFilePath); + if (string.IsNullOrEmpty(VIUSettings.externalCameraConfigFilePath)) + { + VIUSettings.externalCameraConfigFilePath = VIUSettings.EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE; + EditorGUI.EndChangeCheck(); + } + else if (EditorGUI.EndChangeCheck() && VIUSettings.externalCameraConfigFilePath.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) + { + VIUSettings.externalCameraConfigFilePath = VIUSettings.EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE; + } + // Create button that writes default config file + if (VIUSettings.autoLoadExternalCameraConfigOnStart && support && !File.Exists(VIUSettings.externalCameraConfigFilePath)) + { + if (support && VRModule.isSteamVRPluginDetected) { s_guiChanged |= EditorGUI.EndChangeCheck(); } + ShowCreateExCamCfgButton(); + if (support && VRModule.isSteamVRPluginDetected) { EditorGUI.BeginChangeCheck(); } + } + + EditorGUI.indentLevel--; + } + if (!VIUSettings.autoLoadExternalCameraConfigOnStart && support) { GUI.enabled = true; } + + VIUSettings.enableExternalCameraSwitch = EditorGUILayout.ToggleLeft(new GUIContent("Enable External Camera Switch", VIUSettings.EX_CAM_UI_SWITCH_TOOLTIP), VIUSettings.enableExternalCameraSwitch); + if (!VIUSettings.enableExternalCameraSwitch && support) { GUI.enabled = false; } + { + EditorGUI.indentLevel++; + + VIUSettings.externalCameraSwitchKey = (KeyCode)EditorGUILayout.EnumPopup("Switch Key", VIUSettings.externalCameraSwitchKey); + VIUSettings.externalCameraSwitchKeyModifier = (KeyCode)EditorGUILayout.EnumPopup("Switch Key Modifier", VIUSettings.externalCameraSwitchKeyModifier); + + EditorGUI.indentLevel--; + } + if (!VIUSettings.enableExternalCameraSwitch && support) { GUI.enabled = true; } + + EditorGUI.indentLevel -= 2; + } + if (support && VRModule.isSteamVRPluginDetected) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + + if (support && !VRModule.isSteamVRPluginDetected) + { + EditorGUI.indentLevel += 2; + + GUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox( +#if VIU_XR_GENERAL_SETTINGS + "Input" + +#elif UNITY_2017_1_OR_NEWER + "External-Camera(Mix-Reality), animated controller model" + + ", VIVE Controller haptics(vibration)" + + ", VIVE Tracker USB/Pogo-pin input" + +#else + "External-Camera(Mix-Reality), animated controller model" + + ", VIVE Controller haptics(vibration)" + + ", VIVE Tracker device" + +#endif + " NOT supported! " + + "Install SteamVR Plugin to get support." + , MessageType.Warning); + + s_warningHeight = Mathf.Max(s_warningHeight, GUILayoutUtility.GetLastRect().height); + GUILayout.FlexibleSpace(); + + GUILayout.BeginVertical(GUILayout.Height(s_warningHeight)); + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_STEAM_VR_PLUGIN, "Get SteamVR Plugin"); + GUILayout.FlexibleSpace(); + GUILayout.EndVertical(); + + GUILayout.EndHorizontal(); + + EditorGUI.indentLevel -= 2; + } + +#if UNITY_2019_3_OR_NEWER + if (VIUProjectSettings.Instance.isInstallingOpenVRXRPlugin) + { + bool isPackageInstalled = PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME) || + PackageManagerHelper.IsPackageInList(OPENVR_XR_PACKAGE_NAME_OLD); + bool isLoaderEnabled = XRPluginManagementUtils.IsXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_NAME, BuildTargetGroup.Standalone); + if (isPackageInstalled && !isLoaderEnabled) + { + XRPluginManagementUtils.SetXRLoaderEnabled(SteamVRModule.OPENVR_XR_LOADER_CLASS_NAME, BuildTargetGroup.Standalone, true); + OpenVRSDK.enabled = true; + + VIUProjectSettings.Instance.isInstallingOpenVRXRPlugin = false; + } + } +#endif + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..caa4962c2db875cdeb354e88f097d96efa35d696 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OpenVRSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1bbe202b3222ba04aa5789598af0d1c9 +timeCreated: 1548446171 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..10363ef6d71e163835d4c208e66ab73f0d185765 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs @@ -0,0 +1,90 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEditor; +using UnityEngine; +using HTC.UnityPlugin.VRModuleManagement; + +namespace HTC.UnityPlugin.Vive +{ + public static partial class VIUSettingsEditor + { + public static bool canSupportSimulator + { + get { return SimulatorSettings.instance.canSupport; } + } + + public static bool supportSimulator + { + get { return SimulatorSettings.instance.support; } + set { SimulatorSettings.instance.support = value; } + } + + private class SimulatorSettings : VRPlatformSetting + { + private Foldouter m_foldouter = new Foldouter(); + + public static SimulatorSettings instance { get; private set; } + + public SimulatorSettings() { instance = this; } + + public override int order { get { return 0; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Unknown; } } + + public override bool canSupport + { + get { return true; } + } + + public override bool support + { + get { return canSupport && VIUSettings.activateSimulatorModule; } + set { VIUSettings.activateSimulatorModule = value; } + } + + public override void OnPreferenceGUI() + { + const string title = "Simulator"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "If checked, the simulator will activated automatically if no other valid VR devices found."), support); + } + else + { + Foldouter.ShowFoldoutBlankWithDisbledToggle(new GUIContent(title)); + } + + if (support && m_foldouter.isExpended) + { + if (support) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + var origLabelWidth = EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 195; + VIUSettings.simulatorAutoTrackMainCamera = EditorGUILayout.ToggleLeft(new GUIContent("Enable Auto Camera Tracking", "Main camera only"), VIUSettings.simulatorAutoTrackMainCamera); + VIUSettings.enableSimulatorKeyboardMouseControl = EditorGUILayout.ToggleLeft(new GUIContent("Enable Keyboard-Mouse Control", "You can also control Simulator devices by handling VRModule.Simulator.onUpdateDeviceState event."), VIUSettings.enableSimulatorKeyboardMouseControl); + + if (!VIUSettings.enableSimulatorKeyboardMouseControl && support) { GUI.enabled = false; } + { + EditorGUI.indentLevel++; + VIUSettings.simulateTrackpadTouch = EditorGUILayout.Toggle(new GUIContent("Simulate Trackpad Touch", VIUSettings.SIMULATE_TRACKPAD_TOUCH_TOOLTIP), VIUSettings.simulateTrackpadTouch); + VIUSettings.simulatorKeyMoveSpeed = EditorGUILayout.DelayedFloatField(new GUIContent("Keyboard Move Speed", VIUSettings.SIMULATOR_KEY_MOVE_SPEED_TOOLTIP), VIUSettings.simulatorKeyMoveSpeed); + VIUSettings.simulatorKeyRotateSpeed = EditorGUILayout.DelayedFloatField(new GUIContent("Keyboard Rotate Speed", VIUSettings.SIMULATOR_KEY_ROTATE_SPEED_TOOLTIP), VIUSettings.simulatorKeyRotateSpeed); + VIUSettings.simulatorMouseRotateSpeed = EditorGUILayout.DelayedFloatField(new GUIContent("Mouse Rotate Speed"), VIUSettings.simulatorMouseRotateSpeed); + EditorGUI.indentLevel--; + } + if (!VIUSettings.enableSimulatorKeyboardMouseControl && support) { GUI.enabled = true; } + + VIUSettings.simulatorRightControllerModel = (VRModuleDeviceModel)EditorGUILayout.EnumPopup("Device Index 1 (Right)", VIUSettings.simulatorRightControllerModel); + VIUSettings.simulatorLeftControllerModel = (VRModuleDeviceModel)EditorGUILayout.EnumPopup("Device Index 2 (Left)", VIUSettings.simulatorLeftControllerModel); + VIUSettings.simulatorOtherModel = (VRModuleDeviceModel)EditorGUILayout.EnumPopup("Other Device Index", VIUSettings.simulatorOtherModel); + + EditorGUIUtility.labelWidth = origLabelWidth; + EditorGUI.indentLevel -= 2; + } + if (support) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..26998b533ac1111c3c8ef023952ca4fd94a5f9d2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/SimulatorSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d4ec763a3ed18d4db044da7874559d8 +timeCreated: 1548446171 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..5de0cfa740e2a7b8358c3e13c2bc0aa2d5a3ed37 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs @@ -0,0 +1,378 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.IO; +using System.Linq; +using UnityEditor; +#if UNITY_5_6_OR_NEWER +using UnityEditor.Build; +#endif +#if UNITY_2018_1_OR_NEWER +using HTC.UnityPlugin.UPMRegistryTool.Editor.Utils; +using HTC.UnityPlugin.UPMRegistryTool.Editor.Configs; +using UnityEditor.Build.Reporting; +#endif +using UnityEditor.Callbacks; +using UnityEngine; +using UnityEngine.Rendering; + +namespace HTC.UnityPlugin.Vive +{ + public class WaveVRRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { + public WaveVRRecommendedSettings() + { + Add(new VIUVersionCheck.RecommendedSetting<UIOrientation>() + { + settingTitle = "Default Interface Orientation", + skipCheckFunc = () => !VIUSettingsEditor.supportWaveVR, + currentValueFunc = () => PlayerSettings.defaultInterfaceOrientation, + setValueFunc = v => PlayerSettings.defaultInterfaceOrientation = v, + recommendedValue = UIOrientation.LandscapeLeft, + }); + + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Multithreaded Rendering", + skipCheckFunc = () => !VIUSettingsEditor.supportWaveVR, +#if UNITY_2017_2_OR_NEWER + currentValueFunc = () => PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android), + setValueFunc = v => PlayerSettings.SetMobileMTRendering(BuildTargetGroup.Android, v), +#else + currentValueFunc = () => PlayerSettings.mobileMTRendering, + setValueFunc = v => PlayerSettings.mobileMTRendering = v, +#endif + recommendedValue = true, + }); + +#if UNITY_5_4_OR_NEWER + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Graphic Jobs", + skipCheckFunc = () => !VIUSettingsEditor.supportWaveVR, + currentValueFunc = () => PlayerSettings.graphicsJobs, + setValueFunc = v => PlayerSettings.graphicsJobs = v, + recommendedValue = true, + }); +#endif + } + } + + public static partial class VIUSettingsEditor + { + public const string URL_WAVE_VR_PLUGIN = "https://developer.vive.com/resources/knowledgebase/wave-sdk/"; + public const string URL_WAVE_VR_6DOF_SUMULATOR_USAGE_PAGE = "https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki/Wave-VR-6-DoF-Controller-Simulator"; + private const string WAVE_XR_PACKAGE_NAME = "com.htc.upm.wave.xrsdk"; + + public static bool canSupportWaveVR + { + get { return WaveVRSettings.instance.canSupport; } + } + + public static bool supportWaveVR + { + get { return WaveVRSettings.instance.support; } + set { WaveVRSettings.instance.support = value; } + } + + private class WaveVRSettings : VRPlatformSetting +#if UNITY_2018_1_OR_NEWER + , IPreprocessBuildWithReport +#elif UNITY_5_6_OR_NEWER + , IPreprocessBuild +#endif + { + private Foldouter m_foldouter = new Foldouter(); + + public static WaveVRSettings instance { get; private set; } + + public WaveVRSettings() { instance = this; } + + public override int order { get { return 102; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Android; } } + + private string defaultAndroidManifestPath + { + get + { +#if VIU_WAVEVR + var monoScripts = MonoImporter.GetAllRuntimeMonoScripts(); + var monoScript = monoScripts.FirstOrDefault(script => script.GetClass() == typeof(WaveVR)); + var path = Path.GetDirectoryName(AssetDatabase.GetAssetPath(monoScript)); + var fullPath = Path.GetFullPath((path.Substring(0, path.Length - "Scripts".Length) + "Platform/Android/AndroidManifest.xml").Replace("\\", "/")); + + return fullPath.Substring(fullPath.IndexOf("Assets"), fullPath.Length - fullPath.IndexOf("Assets")); +#else + return string.Empty; +#endif + } + } + + public override bool canSupport + { + get + { +#if UNITY_2019_3_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Android && + (VRModule.isWaveVRPluginDetected || PackageManagerHelper.IsPackageInList(WAVE_XR_PACKAGE_NAME)); +#elif UNITY_5_6_OR_NEWER && !UNITY_5_6_0 && !UNITY_5_6_1 && !UNITY_5_6_2 + return activeBuildTargetGroup == BuildTargetGroup.Android && VRModule.isWaveVRPluginDetected; +#else + return false; +#endif + } + } + + public override bool support + { +#if UNITY_5_6_OR_NEWER && !UNITY_5_6_0 && !UNITY_5_6_1 && !UNITY_5_6_2 + get + { + if (!canSupport) { return false; } + if (!VIUSettings.activateWaveVRModule) { return false; } + +#if VIU_XR_GENERAL_SETTINGS + if (!(MockHMDSDK.enabled || XRPluginManagementUtils.IsXRLoaderEnabled(UnityXRModule.WAVE_XR_LOADER_NAME, requirdPlatform))) + { + return false; + } +#endif +#if VIU_WAVEVR_3_0_0_OR_NEWER + if (!virtualRealitySupported) { return false; } +#else + if (virtualRealitySupported) { return false; } +#endif + + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel23) { return false; } + if (PlayerSettings.colorSpace == ColorSpace.Linear && !GraphicsAPIContainsOnly(BuildTarget.Android, GraphicsDeviceType.OpenGLES3)) { return false; } + return true; + } + set + { + if (support == value) { return; } + + if (value) + { + if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel23) + { + PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel23; + } + + if (PlayerSettings.colorSpace == ColorSpace.Linear) + { + SetGraphicsAPI(BuildTarget.Android, GraphicsDeviceType.OpenGLES3); + } + + supportDaydream = false; + supportOculusGo = false; + } + +#if UNITY_2019_3_OR_NEWER && VIU_XR_GENERAL_SETTINGS + XRPluginManagementUtils.SetXRLoaderEnabled(UnityXRModule.WAVE_XR_LOADER_CLASS_NAME, requirdPlatform, value); + MockHMDSDK.enabled = value && !PackageManagerHelper.IsPackageInList(WAVE_XR_PACKAGE_NAME); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); +#elif VIU_WAVEVR_3_0_0_OR_NEWER + MockHMDSDK.enabled = value; +#else + virtualRealitySupported = false; +#endif + VIUSettings.activateWaveVRModule = value; + } +#else + get { return false; } + set { } +#endif + } + + public int callbackOrder { get { return 10; } } + + public override void OnPreferenceGUI() + { + const string title = "WaveVR"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "VIVE Focus, VIVE Focus Plus"), support); + } + else + { + const float wvrToggleWidth = 226f; + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); +#if UNITY_5_6_OR_NEWER && !UNITY_5_6_0 && !UNITY_5_6_1 && !UNITY_5_6_2 + if (activeBuildTargetGroup != BuildTargetGroup.Android) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Android platform required."), false, GUILayout.Width(wvrToggleWidth)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Android, BuildTarget.Android); + } +#if UNITY_2019_4_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(WAVE_XR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Wave XR Plugin package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + + if (GUILayout.Button(new GUIContent("Add Wave XR Plugin Package", "Add " + WAVE_XR_PACKAGE_NAME + " to Package Manager"), GUILayout.ExpandWidth(false))) + { + if (!ManifestUtils.CheckRegistryExists(RegistryToolSettings.Instance().Registry)) + { + ManifestUtils.AddRegistry(RegistryToolSettings.Instance().Registry); + } + + PackageManagerHelper.AddToPackageList(WAVE_XR_PACKAGE_NAME); + VIUProjectSettings.Instance.isInstallingWaveXRPlugin = true; + } + } +#endif + else if (!VRModule.isWaveVRPluginDetected) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Wave VR plugin required."), false, GUILayout.Width(wvrToggleWidth)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowUrlLinkButton(URL_WAVE_VR_PLUGIN); + } +#else + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Unity 5.6.3 or later version required."), false, GUILayout.Width(wvrToggleWidth)); + GUI.enabled = true; +#endif + GUILayout.EndHorizontal(); + } + + if (support && m_foldouter.isExpended) + { + if (support) { EditorGUI.BeginChangeCheck(); } else { GUI.enabled = false; } + { + EditorGUI.indentLevel += 2; + EditorGUILayout.BeginHorizontal(); + + EditorGUIUtility.labelWidth = 230; + var style = new GUIStyle(GUI.skin.textField) { alignment = TextAnchor.MiddleLeft }; + VIUSettings.waveVRAndroidManifestPath = EditorGUILayout.DelayedTextField(new GUIContent("Customized AndroidManifest Path:", "Default path: " + defaultAndroidManifestPath), + VIUSettings.waveVRAndroidManifestPath, style); + if (GUILayout.Button("Open", new GUILayoutOption[] { GUILayout.Width(44), GUILayout.Height(18) })) + { + VIUSettings.waveVRAndroidManifestPath = EditorUtility.OpenFilePanel("Select AndroidManifest.xml", string.Empty, "xml"); + } + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + + if (!File.Exists(VIUSettings.waveVRAndroidManifestPath) && (string.IsNullOrEmpty(defaultAndroidManifestPath) || !File.Exists(defaultAndroidManifestPath))) + { + EditorGUILayout.HelpBox("Default AndroidManifest.xml does not existed!", MessageType.Warning); + } + else if (!string.IsNullOrEmpty(VIUSettings.waveVRAndroidManifestPath) && !File.Exists(VIUSettings.waveVRAndroidManifestPath)) + { + EditorGUILayout.HelpBox("File does not existed!", MessageType.Warning); + } + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.EndHorizontal(); + + VIUSettings.waveVRAddVirtualArmTo3DoFController = EditorGUILayout.ToggleLeft(new GUIContent("Add Virtual Arm for 3 Dof Controller"), VIUSettings.waveVRAddVirtualArmTo3DoFController); + if (!VIUSettings.waveVRAddVirtualArmTo3DoFController) { GUI.enabled = false; } + { + EditorGUI.indentLevel++; + + VIUSettings.waveVRVirtualNeckPosition = EditorGUILayout.Vector3Field("Neck", VIUSettings.waveVRVirtualNeckPosition); + VIUSettings.waveVRVirtualElbowRestPosition = EditorGUILayout.Vector3Field("Elbow", VIUSettings.waveVRVirtualElbowRestPosition); + VIUSettings.waveVRVirtualArmExtensionOffset = EditorGUILayout.Vector3Field("Arm", VIUSettings.waveVRVirtualArmExtensionOffset); + VIUSettings.waveVRVirtualWristRestPosition = EditorGUILayout.Vector3Field("Wrist", VIUSettings.waveVRVirtualWristRestPosition); + VIUSettings.waveVRVirtualHandRestPosition = EditorGUILayout.Vector3Field("Hand", VIUSettings.waveVRVirtualHandRestPosition); + + EditorGUI.indentLevel--; + } + if (!VIUSettings.waveVRAddVirtualArmTo3DoFController) { GUI.enabled = true; } + + EditorGUILayout.BeginHorizontal(); + VIUSettings.simulateWaveVR6DofController = EditorGUILayout.ToggleLeft(new GUIContent("Enable 6 Dof Simulator (Experimental)", "Connect HMD with Type-C keyboard to perform simulation"), VIUSettings.simulateWaveVR6DofController); + s_guiChanged |= EditorGUI.EndChangeCheck(); + ShowUrlLinkButton(URL_WAVE_VR_6DOF_SUMULATOR_USAGE_PAGE, "Usage"); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.EndHorizontal(); + + if (!VIUSettings.enableSimulatorKeyboardMouseControl && supportSimulator) { GUI.enabled = true; } + + EditorGUI.indentLevel -= 2; + } + if (support) { s_guiChanged |= EditorGUI.EndChangeCheck(); } else { GUI.enabled = true; } + } + + if (support) + { + EditorGUI.indentLevel += 2; + +#if VIU_WAVEVR_2_1_0_OR_NEWER + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox("WaveVR Simulator will be activated in Editor Mode.", MessageType.Info); + + s_warningHeight = Mathf.Max(s_warningHeight, GUILayoutUtility.GetLastRect().height); + GUILayout.BeginVertical(GUILayout.Height(s_warningHeight)); + GUILayout.FlexibleSpace(); + ShowUrlLinkButton("https://hub.vive.com/storage/app/doc/en-us/Simulator.html", "Usage"); + GUILayout.FlexibleSpace(); + GUILayout.EndVertical(); + + EditorGUILayout.EndHorizontal(); +#else + EditorGUILayout.HelpBox("WaveVR device not supported in Editor Mode. Please run on target device.", MessageType.Info); +#endif + + EditorGUI.indentLevel -= 2; + } + +#if UNITY_2019_4_OR_NEWER + if (VIUProjectSettings.Instance.isInstallingWaveXRPlugin) + { + bool isPackageInstalled = PackageManagerHelper.IsPackageInList(WAVE_XR_PACKAGE_NAME); + bool isLoaderEnabled = XRPluginManagementUtils.IsXRLoaderEnabled(UnityXRModule.WAVE_XR_LOADER_NAME, BuildTargetGroup.Android); + if (isPackageInstalled && !isLoaderEnabled) + { + XRPluginManagementUtils.SetXRLoaderEnabled(UnityXRModule.WAVE_XR_LOADER_CLASS_NAME, BuildTargetGroup.Android, true); + VIUProjectSettings.Instance.isInstallingWaveXRPlugin = false; + } + } +#endif + } + + public void OnPreprocessBuild(BuildTarget target, string path) + { + if (!support) { return; } + + if (File.Exists(VIUSettings.waveVRAndroidManifestPath)) + { + File.Copy(VIUSettings.waveVRAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + else if (File.Exists(defaultAndroidManifestPath)) + { + File.Copy(defaultAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + } + +#if UNITY_2018_1_OR_NEWER + public void OnPreprocessBuild(BuildReport report) + { + if (!support) { return; } + + if (File.Exists(VIUSettings.waveVRAndroidManifestPath)) + { + File.Copy(VIUSettings.waveVRAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + else if (File.Exists(defaultAndroidManifestPath)) + { + File.Copy(defaultAndroidManifestPath, "Assets/Plugins/Android/AndroidManifest.xml", true); + } + } +#endif + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ebaaa5e94a6dfd29b9c17d9c97b65790b201feaa --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WaveVRSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d682ce765c334a8489f92ce7a4a3aad9 +timeCreated: 1548535773 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..cd1bcb478cb92fb443c2a2c54da7681d3befeacf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs @@ -0,0 +1,147 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.Rendering; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.XR; +#endif + +namespace HTC.UnityPlugin.Vive +{ + public class WindowsMRRecommendedSettings : VIUVersionCheck.RecommendedSettingCollection + { + public WindowsMRRecommendedSettings() + { + Add(new VIUVersionCheck.RecommendedSetting<bool>() + { + settingTitle = "Virtual Reality Supported with Windows XR", + skipCheckFunc = () => !VIUSettingsEditor.canSupportWindowsMR, + currentValueFunc = () => VIUSettingsEditor.supportWindowsMR, + setValueFunc = v => VIUSettingsEditor.supportWindowsMR = v, + recommendedValue = true, + }); + } + } + + public static partial class VIUSettingsEditor + { + private const string WINDOWSMR_PACKAGE_NAME = "com.unity.xr.windowsmr.metro"; + private const string WINDOWSMR_XR_PACKAGE_NAME = "com.unity.xr.windowsmr"; + public const string WINDOWSMR_XR_LOADER_NAME = "Windows MR Loader"; + public const string WINDOWSMR_XR_LOADER_CLASS_NAME = "WindowsMRLoader"; + + public static bool canSupportWindowsMR + { + get { return WindowsMRSettings.instance.canSupport; } + } + + public static bool supportWindowsMR + { + get { return WindowsMRSettings.instance.support; } + set { WindowsMRSettings.instance.support = value; } + } + + private class WindowsMRSettings : VRPlatformSetting + { + private Foldouter m_foldouter = new Foldouter(); + + public static WindowsMRSettings instance { get; private set; } + + public WindowsMRSettings() { instance = this; } + + public override int order { get { return 3; } } + + protected override BuildTargetGroup requirdPlatform { get { return BuildTargetGroup.Standalone; } } + + public override bool canSupport + { + get + { +#if UNITY_2019_3_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && PackageManagerHelper.IsPackageInList(WINDOWSMR_XR_PACKAGE_NAME); +#elif UNITY_2018_2_OR_NEWER + return activeBuildTargetGroup == BuildTargetGroup.Standalone && PackageManagerHelper.IsPackageInList(WINDOWSMR_PACKAGE_NAME); +#else + return false; +#endif + } + } + + public override bool support + { + get + { +#if UNITY_2019_3_OR_NEWER + return canSupport && VIUSettings.activateUnityXRModule && XRPluginManagementUtils.IsXRLoaderEnabled(WINDOWSMR_XR_LOADER_NAME, requirdPlatform); +#elif UNITY_2018_2_OR_NEWER + return canSupport && VIUSettings.activateUnityNativeVRModule && WindowsMRSDK.enabled; +#else + return false; +#endif + } + set + { + if (support == value) { return; } +#if UNITY_2019_3_OR_NEWER + XRPluginManagementUtils.SetXRLoaderEnabled(WINDOWSMR_XR_LOADER_CLASS_NAME, requirdPlatform, value); + VIUSettings.activateUnityXRModule = XRPluginManagementUtils.IsAnyXRLoaderEnabled(requirdPlatform); +#elif UNITY_2018_2_OR_NEWER + WindowsMRSDK.enabled = value; + VIUSettings.activateUnityNativeVRModule = value; +#endif + } + } + + public override void OnPreferenceGUI() + { + const string title = "Windows MR"; + if (canSupport) + { + support = m_foldouter.ShowFoldoutButtonOnToggleEnabled(new GUIContent(title, "Windows MR"), support); + } + else + { + GUILayout.BeginHorizontal(); + Foldouter.ShowFoldoutBlank(); + + if (activeBuildTargetGroup != BuildTargetGroup.Standalone) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Standalone platform required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowSwitchPlatformButton(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64); + } +#if UNITY_2019_3_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(WINDOWSMR_XR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Windows XR Plugin package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Windows XR Plugin", WINDOWSMR_XR_PACKAGE_NAME); + } +#endif +#if UNITY_2018_2_OR_NEWER && !UNITY_2020_1_OR_NEWER + else if (!PackageManagerHelper.IsPackageInList(WINDOWSMR_PACKAGE_NAME)) + { + GUI.enabled = false; + ShowToggle(new GUIContent(title, "Windows Mixed Reality package required."), false, GUILayout.Width(230f)); + GUI.enabled = true; + GUILayout.FlexibleSpace(); + ShowAddPackageButton("Windows Mixed Reality", WINDOWSMR_PACKAGE_NAME); + } +#endif + + GUILayout.EndHorizontal(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..63dbca112c9cc101a0fd6c46295010cf0d4e686e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/WindowsMRSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 652f26e9284c9984e8376e0f98db47dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..0b8124b877111dc2ec99bea073238f83fe4b6db6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs @@ -0,0 +1,280 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.IO; +using System.Linq; +using UnityEngine; +using UnityEditor; +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using System.Reflection; + +#if VIU_XR_GENERAL_SETTINGS +using UnityEditor.XR.Management; +using UnityEngine.XR.Management; +#endif + +namespace HTC.UnityPlugin.Vive +{ + public static class XRPluginManagementUtils + { + public static bool IsXRLoaderEnabled(string loaderName, BuildTargetGroup buildTargetGroup) + { +#if VIU_XR_GENERAL_SETTINGS + XRGeneralSettings xrSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); + if (!xrSettings) + { + return false; + } + + if (!xrSettings.AssignedSettings) + { + return false; + } + + foreach (XRLoader loader in xrSettings.AssignedSettings.loaders) + { + if (loader.name == loaderName) + { + return true; + } + } +#endif + return false; + } + + public static bool IsAnyXRLoaderEnabled(BuildTargetGroup buildTargetGroup) + { +#if VIU_XR_GENERAL_SETTINGS + XRGeneralSettings xrSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); + if (!xrSettings) + { + return false; + } + + if (!xrSettings.AssignedSettings) + { + return false; + } + + return xrSettings.AssignedSettings.loaders.Count > 0; +#else + return false; +#endif + } + + public static void SetXRLoaderEnabled(string loaderClassName, BuildTargetGroup buildTargetGroup, bool enabled) + { +#if VIU_XR_GENERAL_SETTINGS + MethodInfo method = Type.GetType("UnityEditor.XR.Management.XRSettingsManager, Unity.XR.Management.Editor") + .GetProperty("currentSettings", BindingFlags.NonPublic | BindingFlags.Static).GetGetMethod(true); + XRGeneralSettingsPerBuildTarget generalSettings = (XRGeneralSettingsPerBuildTarget)method.Invoke(null, new object[]{}); + + XRGeneralSettings xrSettings = generalSettings.SettingsForBuildTarget(buildTargetGroup); + + if (xrSettings == null) + { + xrSettings = ScriptableObject.CreateInstance<XRGeneralSettings>() as XRGeneralSettings; + generalSettings.SetSettingsForBuildTarget(buildTargetGroup, xrSettings); + xrSettings.name = $"{buildTargetGroup.ToString()} Settings"; + AssetDatabase.AddObjectToAsset(xrSettings, AssetDatabase.GetAssetOrScenePath(generalSettings)); + } + + var serializedSettingsObject = new SerializedObject(xrSettings); + SerializedProperty loaderProp = serializedSettingsObject.FindProperty("m_LoaderManagerInstance"); + if (loaderProp.objectReferenceValue == null) + { + var xrManagerSettings = ScriptableObject.CreateInstance<XRManagerSettings>() as XRManagerSettings; + xrManagerSettings.name = $"{buildTargetGroup.ToString()} Providers"; + AssetDatabase.AddObjectToAsset(xrManagerSettings, AssetDatabase.GetAssetOrScenePath(generalSettings)); + loaderProp.objectReferenceValue = xrManagerSettings; + serializedSettingsObject.ApplyModifiedProperties(); + } + + if (enabled) + { +#if VIU_XR_PACKAGE_METADATA_STORE + if (!UnityEditor.XR.Management.Metadata.XRPackageMetadataStore.AssignLoader(xrSettings.AssignedSettings, loaderClassName, buildTargetGroup)) + { + Debug.LogWarning("Failed to assign XR loader: " + loaderClassName); + } +#else + if (!AssignLoader(xrSettings.AssignedSettings, loaderClassName)) + { + Debug.LogWarning("Failed to assign XR loader: " + loaderClassName); + } +#endif + } + else + { +#if VIU_XR_PACKAGE_METADATA_STORE + if (!UnityEditor.XR.Management.Metadata.XRPackageMetadataStore.RemoveLoader(xrSettings.AssignedSettings, loaderClassName, buildTargetGroup)) + { + Debug.LogWarning("Failed to remove XR loader: " + loaderClassName); + } +#else + if (!RemoveLoader(xrSettings.AssignedSettings, loaderClassName)) + { + Debug.LogWarning("Failed to remove XR loader: " + loaderClassName); + } +#endif + } +#endif + } + +#if VIU_XR_GENERAL_SETTINGS + private static readonly string[] s_loaderBlockList = { "DummyLoader", "SampleLoader", "XRLoaderHelper" }; + + private static bool AssignLoader(XRManagerSettings settings, string loaderTypeName) + { + var instance = GetInstanceOfTypeWithNameFromAssetDatabase(loaderTypeName); + if (instance == null || !(instance is XRLoader)) + { + instance = CreateScriptableObjectInstance(loaderTypeName, GetAssetPathForComponents(new string[] {"XR", "Loaders"})); + if (instance == null) + return false; + } + + List<XRLoader> assignedLoaders = new List<XRLoader>(settings.loaders); + XRLoader newLoader = instance as XRLoader; + + if (!assignedLoaders.Contains(newLoader)) + { + assignedLoaders.Add(newLoader); + settings.loaders.Clear(); + + List<string> allLoaderTypeNames = GetAllLoaderTypeNames(); + foreach (var typeName in allLoaderTypeNames) + { + var newInstance = GetInstanceOfTypeWithNameFromAssetDatabase(typeName) as XRLoader; + + if (newInstance != null && assignedLoaders.Contains(newInstance)) + { + settings.loaders.Add(newInstance); + } + } + + EditorUtility.SetDirty(settings); + AssetDatabase.SaveAssets(); + } + + return true; + } + + private static bool RemoveLoader(XRManagerSettings settings, string loaderTypeName) + { + var instance = GetInstanceOfTypeWithNameFromAssetDatabase(loaderTypeName); + if (instance == null || !(instance is XRLoader)) + return false; + + XRLoader loader = instance as XRLoader; + + if (settings.loaders.Contains(loader)) + { + settings.loaders.Remove(loader); + EditorUtility.SetDirty(settings); + AssetDatabase.SaveAssets(); + } + + return true; + } + + private static ScriptableObject GetInstanceOfTypeWithNameFromAssetDatabase(string typeName) + { + string[] assetGUIDs = AssetDatabase.FindAssets(string.Format("t:{0}", typeName)); + if (assetGUIDs.Any()) + { + string assetPath = AssetDatabase.GUIDToAssetPath(assetGUIDs[0]); + UnityEngine.Object asset = AssetDatabase.LoadAssetAtPath(assetPath, typeof(ScriptableObject)); + + return asset as ScriptableObject; + } + + return null; + } + + private static ScriptableObject CreateScriptableObjectInstance(string typeName, string path) + { + ScriptableObject obj = ScriptableObject.CreateInstance(typeName) as ScriptableObject; + if (obj != null) + { + if (!string.IsNullOrEmpty(path)) + { + string fileName = string.Format("{0}.asset", TypeNameToString(typeName)); + string targetPath = Path.Combine(path, fileName); + AssetDatabase.CreateAsset(obj, targetPath); + + return obj; + } + } + + Debug.LogError($"We were unable to create an instance of the requested type {typeName}. Please make sure that all packages are updated to support this version of XR Plug-In Management. See the Unity documentation for XR Plug-In Management for information on resolving this issue."); + + return null; + } + + private static string GetAssetPathForComponents(string[] pathComponents, string root = "Assets") + { + if (pathComponents.Length <= 0) + return null; + + string path = root; + foreach( var pc in pathComponents) + { + string subFolder = Path.Combine(path, pc); + bool shouldCreate = true; + foreach (var f in AssetDatabase.GetSubFolders(path)) + { + if (string.Compare(Path.GetFullPath(f), Path.GetFullPath(subFolder), true) == 0) + { + shouldCreate = false; + break; + } + } + + if (shouldCreate) + AssetDatabase.CreateFolder(path, pc); + path = subFolder; + } + + return path; + } + + private static string TypeNameToString(Type type) + { + return type == null ? "" : TypeNameToString(type.FullName); + } + + private static string TypeNameToString(string type) + { + string[] typeParts = type.Split(new char[] { '.' }); + if (!typeParts.Any()) + return String.Empty; + + string[] words = Regex.Matches(typeParts.Last(), "(^[a-z]+|[A-Z]+(?![a-z])|[A-Z][a-z]+)") + .OfType<Match>() + .Select(m => m.Value) + .ToArray(); + return string.Join(" ", words); + } + + private static List<string> GetAllLoaderTypeNames() + { + List<string> loaderTypeNames = new List<string>(); + var loaderTypes = TypeCache.GetTypesDerivedFrom(typeof(XRLoader)); + foreach (Type loaderType in loaderTypes) + { + if (loaderType.IsAbstract) + continue; + + if (s_loaderBlockList.Contains(loaderType.Name)) + continue; + + loaderTypeNames.Add(loaderType.Name); + } + + return loaderTypeNames; + } +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8a50a9efd5c39298abe179a620b80e863cbd1fb2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/XRPluginManagementUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0591253b1e4ff56479b4a28c80b71b51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc.meta new file mode 100644 index 0000000000000000000000000000000000000000..f65f7527ded93e52f2888c242fd09333803727b7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6b459162ca1a7874db9b6c93b8ab181d +folderAsset: yes +timeCreated: 1478846386 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs new file mode 100644 index 0000000000000000000000000000000000000000..08fc21c01e74242b571b96980d96ba718031e23f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs @@ -0,0 +1,247 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.Serialization; +using GrabberPool = HTC.UnityPlugin.Utility.ObjectPool<HTC.UnityPlugin.Vive.BasicGrabbable.Grabber>; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Object Grabber/Basic Grabbable", 0)] + public class BasicGrabbable : GrabbableBase<BasicGrabbable.Grabber> + , IColliderEventDragStartHandler + , IColliderEventDragFixedUpdateHandler + , IColliderEventDragUpdateHandler + , IColliderEventDragEndHandler + { + [Serializable] + public class UnityEventGrabbable : UnityEvent<BasicGrabbable> { } + + public class Grabber : IGrabber + { + private static GrabberPool m_pool; + + public static Grabber Get(ColliderButtonEventData eventData) + { + if (m_pool == null) + { + m_pool = new GrabberPool(() => new Grabber()); + } + + var grabber = m_pool.Get(); + grabber.eventData = eventData; + return grabber; + } + + public static void Release(Grabber grabber) + { + grabber.eventData = null; + m_pool.Release(grabber); + } + + public ColliderButtonEventData eventData { get; private set; } + + public RigidPose grabberOrigin + { + get + { + return new RigidPose(eventData.eventCaster.transform); + } + } + + public RigidPose grabOffset { get; set; } + } + + private IndexedTable<ColliderButtonEventData, Grabber> m_eventGrabberSet; + + public bool alignPosition; + public bool alignRotation; + public Vector3 alignPositionOffset; + public Vector3 alignRotationOffset; + + [Range(MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION)] + [FormerlySerializedAs("followingDuration")] + [SerializeField] + private float m_followingDuration = DEFAULT_FOLLOWING_DURATION; + [FormerlySerializedAs("overrideMaxAngularVelocity")] + [SerializeField] + private bool m_overrideMaxAngularVelocity = true; + [FormerlySerializedAs("unblockableGrab")] + [SerializeField] + private bool m_unblockableGrab = true; + [SerializeField] + [FlagsFromEnum(typeof(ControllerButton))] + private ulong m_primaryGrabButton = 0ul; + [SerializeField] + [FlagsFromEnum(typeof(ColliderButtonEventData.InputButton))] + private uint m_secondaryGrabButton = 1u << (int)ColliderButtonEventData.InputButton.Trigger; + [SerializeField] + [HideInInspector] + private ColliderButtonEventData.InputButton m_grabButton = ColliderButtonEventData.InputButton.Trigger; + [SerializeField] + private bool m_allowMultipleGrabbers = true; + [FormerlySerializedAs("afterGrabbed")] + [SerializeField] + private UnityEventGrabbable m_afterGrabbed = new UnityEventGrabbable(); + [FormerlySerializedAs("beforeRelease")] + [SerializeField] + private UnityEventGrabbable m_beforeRelease = new UnityEventGrabbable(); + [FormerlySerializedAs("onDrop")] + [SerializeField] + private UnityEventGrabbable m_onDrop = new UnityEventGrabbable(); // change rigidbody drop velocity here + + public override float followingDuration { get { return m_followingDuration; } set { m_followingDuration = Mathf.Clamp(value, MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION); } } + + public override bool overrideMaxAngularVelocity { get { return m_overrideMaxAngularVelocity; } set { m_overrideMaxAngularVelocity = value; } } + + public bool unblockableGrab { get { return m_unblockableGrab; } set { m_unblockableGrab = value; } } + + public UnityEventGrabbable afterGrabbed { get { return m_afterGrabbed; } } + + public UnityEventGrabbable beforeRelease { get { return m_beforeRelease; } } + + public UnityEventGrabbable onDrop { get { return m_onDrop; } } + + public ColliderButtonEventData grabbedEvent { get { return isGrabbed ? currentGrabber.eventData : null; } } + + public ulong primaryGrabButton { get { return m_primaryGrabButton; } set { m_primaryGrabButton = value; } } + + public uint secondaryGrabButton { get { return m_secondaryGrabButton; } set { m_secondaryGrabButton = value; } } + + [Obsolete("Use IsSecondaryGrabButtonOn and SetSecondaryGrabButton instead")] + public ColliderButtonEventData.InputButton grabButton + { + get + { + for (uint btn = 0u, btns = m_secondaryGrabButton; btns > 0u; btns >>= 1, ++btn) + { + if ((btns & 1u) > 0u) { return (ColliderButtonEventData.InputButton)btn; } + } + return ColliderButtonEventData.InputButton.None; + } + set { m_secondaryGrabButton = 1u << (int)value; } + } + + private bool moveByVelocity { get { return !unblockableGrab && grabRigidbody != null && !grabRigidbody.isKinematic; } } + + public bool IsPrimeryGrabButtonOn(ControllerButton btn) { return EnumUtils.GetFlag(m_primaryGrabButton, (int)btn); } + + public void SetPrimeryGrabButton(ControllerButton btn, bool isOn = true) { EnumUtils.SetFlag(ref m_primaryGrabButton, (int)btn, isOn); } + + public void ClearPrimeryGrabButton() { m_primaryGrabButton = 0ul; } + + public bool IsSecondaryGrabButtonOn(ColliderButtonEventData.InputButton btn) { return EnumUtils.GetFlag(m_secondaryGrabButton, (int)btn); } + + public void SetSecondaryGrabButton(ColliderButtonEventData.InputButton btn, bool isOn = true) { EnumUtils.SetFlag(ref m_secondaryGrabButton, (int)btn, isOn); } + + public void ClearSecondaryGrabButton() { m_secondaryGrabButton = 0u; } + + [Obsolete("Use grabRigidbody instead")] + public Rigidbody rigid { get { return grabRigidbody; } set { grabRigidbody = value; } } + +#if UNITY_EDITOR + protected virtual void OnValidate() { RestoreObsoleteGrabButton(); } +#endif + private void RestoreObsoleteGrabButton() + { + if (m_grabButton == ColliderButtonEventData.InputButton.Trigger) { return; } + ClearSecondaryGrabButton(); + SetSecondaryGrabButton(m_grabButton, true); + m_grabButton = ColliderButtonEventData.InputButton.Trigger; + } + + protected override void Awake() + { + base.Awake(); + + RestoreObsoleteGrabButton(); + + afterGrabberGrabbed += () => m_afterGrabbed.Invoke(this); + beforeGrabberReleased += () => m_beforeRelease.Invoke(this); + onGrabberDrop += () => m_onDrop.Invoke(this); + } + + protected virtual void OnDisable() + { + ClearGrabbers(true); + ClearEventGrabberSet(); + } + + private void ClearEventGrabberSet() + { + if (m_eventGrabberSet == null) { return; } + + for (int i = m_eventGrabberSet.Count - 1; i >= 0; --i) + { + Grabber.Release(m_eventGrabberSet.GetValueByIndex(i)); + } + + m_eventGrabberSet.Clear(); + } + + protected bool IsValidGrabButton(ColliderButtonEventData eventData) + { + if (m_primaryGrabButton > 0ul) + { + ViveColliderButtonEventData viveEventData; + if (eventData.TryGetViveButtonEventData(out viveEventData) && IsPrimeryGrabButtonOn(viveEventData.viveButton)) { return true; } + } + + return m_secondaryGrabButton > 0u && IsSecondaryGrabButtonOn(eventData.button); + } + + public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData) + { + if (!IsValidGrabButton(eventData)) { return; } + + if (!m_allowMultipleGrabbers) + { + ClearGrabbers(false); + ClearEventGrabberSet(); + } + + var grabber = Grabber.Get(eventData); + var offset = RigidPose.FromToPose(grabber.grabberOrigin, new RigidPose(transform)); + if (alignPosition) { offset.pos = alignPositionOffset; } + if (alignRotation) { offset.rot = Quaternion.Euler(alignRotationOffset); } + grabber.grabOffset = offset; + + if (m_eventGrabberSet == null) { m_eventGrabberSet = new IndexedTable<ColliderButtonEventData, Grabber>(); } + m_eventGrabberSet.Add(eventData, grabber); + + AddGrabber(grabber); + } + + public virtual void OnColliderEventDragFixedUpdate(ColliderButtonEventData eventData) + { + if (isGrabbed && moveByVelocity && currentGrabber.eventData == eventData) + { + OnGrabRigidbody(); + } + } + + public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData) + { + if (isGrabbed && !moveByVelocity && currentGrabber.eventData == eventData) + { + RecordLatestPosesForDrop(Time.time, 0.05f); + OnGrabTransform(); + } + } + + public virtual void OnColliderEventDragEnd(ColliderButtonEventData eventData) + { + if (m_eventGrabberSet == null) { return; } + + Grabber grabber; + if (!m_eventGrabberSet.TryGetValue(eventData, out grabber)) { return; } + + RemoveGrabber(grabber); + m_eventGrabberSet.Remove(eventData); + Grabber.Release(grabber); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2c4b3844980d0bf3075c24629ffcb1ea4e4b9722 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/BasicGrabbable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2c1e088ce10ab7d4c87f03fd1f2dfcae +timeCreated: 1477844142 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..90b05ce0743b98bf3a7bd0b09c425b66d07b3109 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs @@ -0,0 +1,499 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.Vive; +using System.Collections.Generic; +using UnityEngine; + +public class ControllerManagerSample : MonoBehaviour +{ + public enum CustomModelActiveModeEnum + { + None, + ActiveOnGripped, + ToggleByDoubleGrip + } + + public enum LaserPointerActiveModeEnum + { + None, + ToggleByMenuClick, + ActiveOnPadPressed, + ToggleByTriggerClick + } + + public enum CurvePointerActiveModeEnum + { + None, + ActiveOnPadPressed, + ToggleByPadDoubleClick + } + + // after changing following public fields in playing mode, call UpdateStatus() to apply changes + [Header("Mode Settings")] + public bool hideRenderModelOnGrab = true; + + public CustomModelActiveModeEnum customModelActiveMode; + public LaserPointerActiveModeEnum laserPointerActiveMode; + public CurvePointerActiveModeEnum curvePointerActiveMode; + + [Header("Right controller")] + public GameObject rightRenderModel; + public GameObject rightCustomModel; + + public GameObject rightGrabber; + public GameObject rightLaserPointer; + public GameObject rightCurvePointer; + + [Header("Left controller")] + public GameObject leftRenderModel; + public GameObject leftCustomModel; + + public GameObject leftGrabber; + public GameObject leftLaserPointer; + public GameObject leftCurvePointer; + + private bool m_rightCustomModelActive; + private bool m_rightLaserPointerActive; + private bool m_rightCurvePointerActive; + + private bool m_leftCustomModelActive; + private bool m_leftLaserPointerActive; + private bool m_leftCurvePointerActive; + + private bool isLeftStickyGrab = false; + private bool isRightStickyGrab = false; + + private HashSet<GameObject> rightGrabbingSet = new HashSet<GameObject>(); + private HashSet<GameObject> leftGrabbingSet = new HashSet<GameObject>(); + + //properties + public bool rightGrabberActive + { + get { return !m_rightLaserPointerActive && !m_rightCurvePointerActive && !m_rightCustomModelActive; } + } + + public bool rightLaserPointerActive + { + get { return m_rightLaserPointerActive; } + set { SetRightLaserPointerActive(value); } + } + + public bool rightCurvePointerActive + { + get { return m_rightCurvePointerActive; } + set { SetRightCurvePointerActive(value); } + } + + public bool rightCustomModelActive + { + get { return m_rightCustomModelActive; } + set { SetRightCustomModelActive(value); } + } + + public bool leftGrabberActive + { + get { return !m_leftLaserPointerActive && !m_leftCurvePointerActive && !m_leftCustomModelActive; } + } + + public bool leftLaserPointerActive + { + get { return m_leftLaserPointerActive; } + set { SetLeftLaserPointerActive(value); } + } + + public bool leftCurvePointerActive + { + get { return m_leftCurvePointerActive; } + set { SetLeftLaserPointerActive(value); } + } + + public bool leftCustomModelActive + { + get { return m_leftCustomModelActive; } + set { SetLeftCustomModelActive(value); } + } + + public bool SetRightLaserPointerActive(bool value) + { + if (ChangeProp.Set(ref m_rightLaserPointerActive, value)) + { + if (value) { m_rightCurvePointerActive = false; m_rightCustomModelActive = false; } + return true; + } + return false; + } + + public bool SetRightCurvePointerActive(bool value) + { + if (ChangeProp.Set(ref m_rightCurvePointerActive, value)) + { + if (value) { m_rightLaserPointerActive = false; m_rightCustomModelActive = false; } + return true; + } + return false; + } + + public bool SetRightCustomModelActive(bool value) + { + if (ChangeProp.Set(ref m_rightCustomModelActive, value)) + { + if (value) { m_rightLaserPointerActive = false; m_rightCurvePointerActive = false; } + return true; + } + return false; + } + + public bool SetLeftLaserPointerActive(bool value) + { + if (ChangeProp.Set(ref m_leftLaserPointerActive, value)) + { + if (value) { m_leftCurvePointerActive = false; m_leftCustomModelActive = false; } + return true; + } + return false; + } + + public bool SetLeftCurvePointerActive(bool value) + { + if (ChangeProp.Set(ref m_leftCurvePointerActive, value)) + { + if (value) { m_leftLaserPointerActive = false; m_leftCustomModelActive = false; } + return true; + } + return false; + } + + public bool SetLeftCustomModelActive(bool value) + { + if (ChangeProp.Set(ref m_leftCustomModelActive, value)) + { + if (value) { m_leftLaserPointerActive = false; m_leftCurvePointerActive = false; } + return true; + } + return false; + } + + public void ToggleRightLaserPointer() { rightLaserPointerActive = !rightLaserPointerActive; } + public void ToggleRightCurvePointer() { rightCurvePointerActive = !rightCurvePointerActive; } + public void ToggleRightCustomModel() { rightCustomModelActive = !rightCustomModelActive; } + public void ToggleLeftLaserPointer() { leftLaserPointerActive = !leftLaserPointerActive; } + public void ToggleLeftCurvePointer() { leftCurvePointerActive = !leftCurvePointerActive; } + public void ToggleLeftCustomModel() { leftCustomModelActive = !leftCustomModelActive; } + +#if UNITY_EDITOR + + protected virtual void OnValidate() + { + if (Application.isPlaying) + { + UpdateActivity(); + } + } + +#endif + + protected virtual void Start() + { + m_rightLaserPointerActive = false; + m_rightCustomModelActive = false; + m_rightCurvePointerActive = false; + m_leftLaserPointerActive = false; + m_leftCustomModelActive = false; + m_leftCurvePointerActive = false; + + UpdateActivity(); + } + + protected virtual void LateUpdate() + { + var needUpdate = false; + + switch (laserPointerActiveMode) + { + case LaserPointerActiveModeEnum.None: + needUpdate |= SetRightLaserPointerActive(false); + needUpdate |= SetLeftLaserPointerActive(false); + break; + + case LaserPointerActiveModeEnum.ToggleByMenuClick: + if (ViveInput.GetPressUpEx(HandRole.RightHand, ControllerButton.Menu)) + { + ToggleRightLaserPointer(); + needUpdate = true; + } + + if (ViveInput.GetPressUpEx(HandRole.LeftHand, ControllerButton.Menu)) + { + ToggleLeftLaserPointer(); + needUpdate = true; + } + break; + case LaserPointerActiveModeEnum.ToggleByTriggerClick: + if (ViveInput.GetPressUpEx(HandRole.RightHand, ControllerButton.Trigger)) + { + ToggleRightLaserPointer(); + needUpdate = true; + } + + if (ViveInput.GetPressUpEx(HandRole.LeftHand, ControllerButton.Trigger)) + { + ToggleLeftLaserPointer(); + needUpdate = true; + } + break; + case LaserPointerActiveModeEnum.ActiveOnPadPressed: + needUpdate |= SetRightLaserPointerActive(ViveInput.GetPressEx(HandRole.RightHand, ControllerButton.Pad)); + needUpdate |= SetLeftLaserPointerActive(ViveInput.GetPressEx(HandRole.LeftHand, ControllerButton.Pad)); + break; + } + + switch (curvePointerActiveMode) + { + case CurvePointerActiveModeEnum.None: + needUpdate |= SetRightCurvePointerActive(false); + needUpdate |= SetLeftCurvePointerActive(false); + break; + + case CurvePointerActiveModeEnum.ActiveOnPadPressed: + needUpdate |= SetRightCurvePointerActive(ViveInput.GetPressEx(HandRole.RightHand, ControllerButton.Pad)); + needUpdate |= SetLeftCurvePointerActive(ViveInput.GetPressEx(HandRole.LeftHand, ControllerButton.Pad)); + break; + + case CurvePointerActiveModeEnum.ToggleByPadDoubleClick: + if (ViveInput.GetPressDownEx(HandRole.RightHand, ControllerButton.Pad) && ViveInput.ClickCountEx(HandRole.RightHand, ControllerButton.Pad) == 2) + { + ToggleRightCurvePointer(); + needUpdate = true; + } + + if (ViveInput.GetPressDownEx(HandRole.LeftHand, ControllerButton.Pad) && ViveInput.ClickCountEx(HandRole.LeftHand, ControllerButton.Pad) == 2) + { + ToggleLeftCurvePointer(); + needUpdate = true; + } + break; + } + + switch (customModelActiveMode) + { + case CustomModelActiveModeEnum.None: + needUpdate |= ChangeProp.Set(ref m_rightCustomModelActive, false); + needUpdate |= ChangeProp.Set(ref m_leftCustomModelActive, false); + break; + + case CustomModelActiveModeEnum.ActiveOnGripped: + needUpdate |= SetRightCustomModelActive(ViveInput.GetPressEx(HandRole.RightHand, ControllerButton.Grip)); + needUpdate |= SetLeftCustomModelActive(ViveInput.GetPressEx(HandRole.LeftHand, ControllerButton.Grip)); + break; + + case CustomModelActiveModeEnum.ToggleByDoubleGrip: + if (ViveInput.GetPressDownEx(HandRole.RightHand, ControllerButton.Grip) && ViveInput.ClickCountEx(HandRole.RightHand, ControllerButton.Grip) == 2) + { + ToggleRightCustomModel(); + needUpdate = true; + } + if (ViveInput.GetPressDownEx(HandRole.LeftHand, ControllerButton.Grip) && ViveInput.ClickCountEx(HandRole.LeftHand, ControllerButton.Grip) == 2) + { + ToggleLeftCustomModel(); + needUpdate = true; + } + break; + } + + if (needUpdate) { UpdateActivity(); } + } + + public void OnGrabbed(BasicGrabbable grabbedObj) + { + ViveColliderButtonEventData viveEventData; + if (!grabbedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) { return; } + + switch (viveEventData.viveRole.ToRole<HandRole>()) + { + case HandRole.RightHand: + if (rightGrabbingSet.Add(grabbedObj.gameObject) && rightGrabbingSet.Count == 1) + { + UpdateActivity(); + } + break; + + case HandRole.LeftHand: + if (leftGrabbingSet.Add(grabbedObj.gameObject) && leftGrabbingSet.Count == 1) + { + UpdateActivity(); + } + break; + } + } + public void OnStickyGrabbed(StickyGrabbable grabbedObj) + { + ViveColliderButtonEventData viveEventData; + if (!grabbedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) + { + return; + } + UpdateActivity(); + switch (viveEventData.viveRole.ToRole<HandRole>()) + { + case HandRole.RightHand: + if (rightGrabbingSet.Count > 0 || isRightStickyGrab) + { + return; + } + if (rightGrabbingSet.Add(grabbedObj.gameObject) && rightGrabbingSet.Count == 1) + { + UpdateActivity(); + } + break; + + case HandRole.LeftHand: + if (leftGrabbingSet.Count > 0 || isLeftStickyGrab) + { + return; + } + if (leftGrabbingSet.Add(grabbedObj.gameObject) && leftGrabbingSet.Count == 1) + { + UpdateActivity(); + } + break; + } + } + public void OnRelease(BasicGrabbable releasedObj) + { + ViveColliderButtonEventData viveEventData; + if (!releasedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) { return; } + UpdateActivity(); + switch (viveEventData.viveRole.ToRole<HandRole>()) + { + case HandRole.RightHand: + if (rightGrabbingSet.Remove(releasedObj.gameObject) && rightGrabbingSet.Count == 0) + { + UpdateActivity(); + } + break; + + case HandRole.LeftHand: + if (leftGrabbingSet.Remove(releasedObj.gameObject) && leftGrabbingSet.Count == 0) + { + UpdateActivity(); + } + break; + } + } + public void OnLetGo(BasicGrabbable releaseObj) + { + leftGrabbingSet.Clear(); + rightGrabbingSet.Clear(); + UpdateActivity(); + } + + public void OnStickyLetGo(StickyGrabbable releaseObj) + { + leftGrabbingSet.Clear(); + rightGrabbingSet.Clear(); + UpdateActivity(); + } + public void OnStickyRelease(StickyGrabbable releasedObj) + { + UpdateActivity(); + + ViveColliderButtonEventData viveEventData; + if (!releasedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) { return; } + + switch (viveEventData.viveRole.ToRole<HandRole>()) + { + case HandRole.RightHand: + + if (rightGrabbingSet.Remove(releasedObj.gameObject) && rightGrabbingSet.Count == 0) + { + isRightStickyGrab = false; + UpdateActivity(); + } + break; + + case HandRole.LeftHand: + + if (leftGrabbingSet.Remove(releasedObj.gameObject) && leftGrabbingSet.Count == 0) + { + isLeftStickyGrab = false; + UpdateActivity(); + } + break; + } + } + public void OnDropped(BasicGrabbable grabbedObj) + { + OnRelease(grabbedObj); + } + public void OnDropped(StickyGrabbable grabbedObj) + { + OnStickyRelease(grabbedObj); + } + public void UpdateActivity() + { + //var rightRenderModelShouldActive = !m_rightCustomModelActive && (!hideRenderModelOnGrab || rightGrabbingSet.Count == 0); + var rightRenderModelShouldActive = !hideRenderModelOnGrab || rightGrabbingSet.Count == 0; + var rightCustomModelShouldActive = m_rightCustomModelActive; + var rightLaserPointerShouldActive = m_rightLaserPointerActive; + var rightCurvePointerShouldActive = m_rightCurvePointerActive; + var rightGrabberShouldActive = !m_rightLaserPointerActive && !m_rightCustomModelActive && !m_rightCurvePointerActive; + + if (rightRenderModel != null && rightRenderModel.activeSelf != rightRenderModelShouldActive) + { + rightRenderModel.SetActive(rightRenderModelShouldActive); + } + + if (rightCustomModel != null && rightCustomModel.activeSelf != rightCustomModelShouldActive) + { + rightCustomModel.SetActive(rightCustomModelShouldActive); + } + + if (rightLaserPointer != null && rightLaserPointer.activeSelf != rightLaserPointerShouldActive) + { + rightLaserPointer.SetActive(rightLaserPointerShouldActive); + } + + if (rightCurvePointer != null && rightCurvePointer.activeSelf != rightCurvePointerShouldActive) + { + rightCurvePointer.SetActive(rightCurvePointerShouldActive); + } + + if (rightGrabber != null && rightGrabber.activeSelf != rightGrabberShouldActive) + { + rightGrabber.SetActive(rightGrabberShouldActive); + } + + // var leftRenderModelShouldActive = !m_leftCustomModelActive && (!hideRenderModelOnGrab || leftGrabbingSet.Count == 0); + var leftRenderModelShouldActive = !hideRenderModelOnGrab || leftGrabbingSet.Count == 0; + var leftCustomModelShouldActive = m_leftCustomModelActive; + var leftLaserPointerShouldActive = m_leftLaserPointerActive; + var leftCurvePointerShouldActive = m_leftCurvePointerActive; + var leftGrabberShouldActive = !m_leftLaserPointerActive && !m_leftCustomModelActive && !m_leftCurvePointerActive; + + if (leftRenderModel != null && leftRenderModel.activeSelf != leftRenderModelShouldActive) + { + leftRenderModel.SetActive(leftRenderModelShouldActive); + } + + if (leftCustomModel != null && leftCustomModel.activeSelf != leftCustomModelShouldActive) + { + leftCustomModel.SetActive(leftCustomModelShouldActive); + } + + if (leftLaserPointer != null && leftLaserPointer.activeSelf != leftLaserPointerShouldActive) + { + leftLaserPointer.SetActive(leftLaserPointerShouldActive); + } + + if (leftCurvePointer != null && leftCurvePointer.activeSelf != leftCurvePointerShouldActive) + { + leftCurvePointer.SetActive(leftCurvePointerShouldActive); + } + + if (leftGrabber != null && leftGrabber.activeSelf != leftGrabberShouldActive) + { + leftGrabber.SetActive(leftGrabberShouldActive); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a23efc898e8f90d9ef6624ead01c2f880314ef4c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ControllerManagerSample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: afea3b80346a74d4bb1ccdcd457390bf +timeCreated: 1482721104 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..9d209d84045942033dfca83b2165bf5289ff7b00 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 644ed8e93e5e5bb4fa11d520309dd547 +folderAsset: yes +timeCreated: 1489680537 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..2f29adbc6a22cb1bda43b03259cd10ecc9db084d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e42824c15944f4d4f9e413320c979be5 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..146ff1810b03cfb7578bb4254070438bd52dc7f3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs @@ -0,0 +1,63 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [CustomEditor(typeof(RenderModelHook))] + [CanEditMultipleObjects] + public class RenderModelHookEditor : Editor + { + protected SerializedProperty scriptProp; + protected SerializedProperty modeProp; + protected SerializedProperty viveRoleProp; + protected SerializedProperty deviceIndexProp; + protected SerializedProperty overrideModelProp; + protected SerializedProperty overrideShaderProp; + + protected virtual void OnEnable() + { + if (target == null || serializedObject == null) return; + + scriptProp = serializedObject.FindProperty("m_Script"); + modeProp = serializedObject.FindProperty("m_mode"); + viveRoleProp = serializedObject.FindProperty("m_viveRole"); + deviceIndexProp = serializedObject.FindProperty("m_deviceIndex"); + overrideModelProp = serializedObject.FindProperty("m_overrideModel"); + overrideShaderProp = serializedObject.FindProperty("m_overrideShader"); + } + + public override void OnInspectorGUI() + { + if (target == null || serializedObject == null) return; + + serializedObject.Update(); + + GUI.enabled = false; + EditorGUILayout.PropertyField(scriptProp); + GUI.enabled = true; + + EditorGUILayout.PropertyField(overrideModelProp); + + EditorGUILayout.PropertyField(overrideShaderProp); + + EditorGUILayout.PropertyField(modeProp); + + switch (modeProp.intValue) + { + case (int)RenderModelHook.Mode.ViveRole: + EditorGUILayout.PropertyField(viveRoleProp); + break; + case (int)RenderModelHook.Mode.DeivceIndex: + EditorGUILayout.PropertyField(deviceIndexProp); + break; + case (int)RenderModelHook.Mode.Disable: + default: + break; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4937e713483dcf0dbbff58362e990f9e4d2e8fa6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Editor/RenderModelHookEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9b2893be0c6820249acac4f70c310bcc +timeCreated: 1489680549 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface.meta new file mode 100644 index 0000000000000000000000000000000000000000..d584d6e521995f635eb408fefd39ccc21b498649 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b45b8a1e5db9a1945952eab6bbadccae +folderAsset: yes +timeCreated: 1505122513 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs new file mode 100644 index 0000000000000000000000000000000000000000..f3bc0962c4a3af72f79012af13dd3a19c5031efe --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs @@ -0,0 +1,210 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.ExCamConfigInterface +{ + public sealed class ExCamConfigInterfaceDraggableLabel : MonoBehaviour + , IPointerEnterHandler + , IPointerExitHandler + , IInitializePotentialDragHandler + , IBeginDragHandler + , IDragHandler + , IEndDragHandler + { + [Serializable] + public class UnityEventFloat : UnityEvent<float> { } + + [SerializeField] + private Text m_text; + [SerializeField] + private InputField m_field; + [SerializeField] + private float m_fieldValue; + [SerializeField] + private string m_label; + [SerializeField, Range(0, 10)] + private int m_dragPrecision = 2; + [SerializeField] + private float m_slopePow = 1.5f; + [SerializeField] + private bool m_clampValue; + [SerializeField] + private float m_clampMin; + [SerializeField] + private float m_clampMax; + [SerializeField] + private UnityEventFloat m_onEndEdit = new UnityEventFloat(); + + private HashSet<PointerEventData> m_pointerEnter; + private PointerEventData m_pointerDrag; + private Vector2 m_lastDragPos; + private Vector2 m_dragDelta; + private bool m_changingFieldText; + + public float fieldValue + { + get { return m_fieldValue; } + set + { + if (m_clampValue) + { + value = Mathf.Clamp(value, m_clampMin, m_clampMax); + } + + if (m_fieldValue != value) + { + m_fieldValue = value; + m_field.text = m_fieldValue.ToString("r"); + } + } + } + +#if UNITY_EDITOR + private void Reset() + { + m_text = GetComponent<Text>(); + } + + private void OnValidate() + { + if (m_text != null) + { + CombineLabelToText(0.5f, 0.5f); + } + } +#endif + + private void Awake() + { + if (m_clampValue) + { + m_fieldValue = Mathf.Clamp(m_fieldValue, m_clampMin, m_clampMax); + } + + m_field.text = m_fieldValue.ToString("r"); + + UpdateLabelText(); + ((Text)m_field.placeholder).text = ""; + m_field.onEndEdit.AddListener(OnFieldEndEdit); + } + + private void OnFieldEndEdit(string fieldStr) + { + float fv; + if (string.IsNullOrEmpty(fieldStr)) + { + fieldValue = 0f; + } + else if (float.TryParse(fieldStr, out fv)) + { + fieldValue = fv; + } + + SubmitFieldValue(); + } + + public void SubmitFieldValue() + { + m_onEndEdit.Invoke(fieldValue); + } + + public void OnPointerEnter(PointerEventData eventData) + { + if (m_pointerEnter == null) { m_pointerEnter = new HashSet<PointerEventData>(); } + + if (m_pointerEnter.Add(eventData) && m_pointerEnter.Count == 1) + { + UpdateLabelText(); + } + } + + public void OnPointerExit(PointerEventData eventData) + { + if (m_pointerEnter.Remove(eventData) && m_pointerEnter.Count == 0) + { + UpdateLabelText(); + } + } + + public void OnInitializePotentialDrag(PointerEventData eventData) + { + + } + + public void OnBeginDrag(PointerEventData eventData) + { + if (m_pointerDrag == null) + { + m_pointerDrag = eventData; + m_lastDragPos = m_pointerDrag.position; + } + } + + public void OnDrag(PointerEventData eventData) + { + if (m_pointerDrag == eventData) + { + m_dragDelta = m_pointerDrag.position - m_lastDragPos; + m_lastDragPos = m_pointerDrag.position; + UpdateLabelText(); + } + } + + public void OnEndDrag(PointerEventData eventData) + { + if (m_pointerDrag == eventData) + { + m_pointerDrag = null; + m_dragDelta = Vector2.zero; + UpdateLabelText(); + } + } + + private void UpdateLabelText() + { + if (m_pointerDrag != null) + { + if (m_dragDelta.x > 0f) + { + CombineLabelToText(0.5f, 1.0f); + } + else if (m_dragDelta.x < 0f) + { + CombineLabelToText(1.0f, 0.5f); + } + + fieldValue += Mathf.Sign(m_dragDelta.x) * Mathf.Pow(Mathf.Abs(m_dragDelta.x), m_slopePow) * Mathf.Pow(0.1f, m_dragPrecision); + SubmitFieldValue(); + } + else if (m_pointerEnter != null && m_pointerEnter.Count > 0) + { + CombineLabelToText(0.5f, 0.5f); + } + else + { + CombineLabelToText(0f, 0f); + } + } + + private void CombineLabelToText(float leftAlphaFactor, float rightAlphaFactor) + { + var color = m_text.color; + var leftColor = (Color32)new Color(color.r, color.g, color.b, color.a * leftAlphaFactor); + var rightColor = (Color32)new Color(color.r, color.g, color.b, color.a * rightAlphaFactor); + + m_text.text = "<color=#" + Color32ToHexStr(leftColor) + "><</color>" + m_label + "<color=#" + Color32ToHexStr(rightColor) + ">></color>"; + } + + private string Color32ToHexStr(Color32 color) + { + return color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2") + color.a.ToString("X2"); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..33188a449828ab91b48dcb4b83c8c6e12afc325e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfaceDraggableLabel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3da6ce048533cea43878fb2a54edef80 +timeCreated: 1505122797 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..fd14fa6be398031572d04b9c0bd0fc4e32bdd358 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs @@ -0,0 +1,572 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.Utility; +using System.IO; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive.ExCamConfigInterface +{ + public class ExCamConfigInterfacePanelController : MonoBehaviour + { + [SerializeField] + private GameObject m_recenterButton; + [SerializeField] + private GameObject m_dirtySymbol; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_posX; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_posY; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_posZ; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_rotX; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_rotY; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_rotZ; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_ckR; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_ckG; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_ckB; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_ckA; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_fov; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_clipNear; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_clipFar; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_offsetNear; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_offsetFar; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_offsetHMD; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_frameSkip; + [SerializeField] + private ExCamConfigInterfaceDraggableLabel m_sceneResolutionScale; + [SerializeField] + private Toggle m_diableStandardAssets; + +#if VIU_STEAMVR && UNITY_STANDALONE + public float posX + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.x; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.x = value; + + var pos = cam.transform.localPosition; + pos.x = value; + cam.transform.localPosition = pos; + } + } + } + + public float posY + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.y; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.y = value; + + var pos = cam.transform.localPosition; + pos.y = value; + cam.transform.localPosition = pos; + } + } + } + + public float posZ + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.z; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.z = value; + + var pos = cam.transform.localPosition; + pos.z = value; + cam.transform.localPosition = pos; + } + } + } + + public float rotX + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.rx; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.rx = value; + + var rot = cam.transform.localEulerAngles; + rot.x = value; + cam.transform.localEulerAngles = rot; + } + } + } + + public float rotY + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.ry; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.ry = value; + + var rot = cam.transform.localEulerAngles; + rot.y = value; + cam.transform.localEulerAngles = rot; + } + } + } + + public float rotZ + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.rz; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.rz = value; + + var rot = cam.transform.localEulerAngles; + rot.z = value; + cam.transform.localEulerAngles = rot; + } + } + } + + public float fov + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.fov; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + excam.config.fov = value; + + cam.fieldOfView = value; + } + } + } + + public float sceneResolutionScale + { + get + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + return excam.config.sceneResolutionScale; + } + else + { + return 0f; + } + } + set + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + excam.config.sceneResolutionScale = value; + SteamVR_Camera.sceneResolutionScale = value; + } + } + } +#if VIU_STEAMVR_1_2_2_OR_NEWER + public float ckR { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.r : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.r = value; } } } + public float ckG { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.g : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.g = value; } } } + public float ckB { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.b : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.b = value; } } } + public float ckA { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.a : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.a = value; } } } +#else + public float ckR { get { return 0f; } set { } } + public float ckG { get { return 0f; } set { } } + public float ckB { get { return 0f; } set { } } + public float ckA { get { return 0f; } set { } } +#endif + public float clipNear { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.near : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.near = value; } } } + public float clipFar { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.far : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.far = value; } } } + public float offsetNear { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.nearOffset : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.nearOffset = value; } } } + public float offsetFar { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.farOffset : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.farOffset = value; } } } + public float offsetHMD { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.hmdOffset : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.hmdOffset = value; } } } + public float frameSkip { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.frameSkip : 0f; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.frameSkip = value; } } } + public bool diableStandardAssets { get { SteamVR_ExternalCamera excam; return TryGetTargetExCam(out excam) ? excam.config.disableStandardAssets : false; } set { SteamVR_ExternalCamera excam; if (TryGetTargetExCam(out excam)) { excam.config.disableStandardAssets = value; } } } + + public void SaveConfig() + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam) && !string.IsNullOrEmpty(excam.configPath)) + { + try + { + using (var outputFile = new StreamWriter(excam.configPath)) + { + var configType = typeof(SteamVR_ExternalCamera.Config); + var config = excam.config; + foreach (var fieldInfo in configType.GetFields()) + { + outputFile.WriteLine(fieldInfo.Name + "=" + fieldInfo.GetValue(config).ToString()); + } + } + } + catch { } + } + } + + public void ReloadConfig() + { + SteamVR_ExternalCamera excam; + if (TryGetTargetExCam(out excam)) + { + excam.config = default(SteamVR_ExternalCamera.Config); + excam.ReadConfig(); + + ReloadFields(); + + // sceneResolutionScale only update on SteamVR_ExternalCamera Enabled/Disabled + SteamVR_Camera.sceneResolutionScale = sceneResolutionScale; + } + } + + private bool TryGetTargetExCam(out SteamVR_ExternalCamera excam) + { + if (!ExternalCameraHook.Active || ExternalCameraHook.Instance.externalCamera == null) + { + excam = null; + return false; + } + else + { + excam = ExternalCameraHook.Instance.externalCamera; + return true; + } + } + + private bool TryGetTargetExCam(out SteamVR_ExternalCamera excam, out Camera camera) + { + if (!TryGetTargetExCam(out excam)) + { + camera = null; + return false; + } + + excam = ExternalCameraHook.Instance.externalCamera; + var excamTrans = excam.transform; + + if (excamTrans.childCount <= 1) + { + camera = excam.GetComponentInChildren<Camera>(); + } + else + { + // Locate the camera component on the last child and clean up other duplicated cameras + // Note that SteamVR_ExternalCamera.ReadConfig triggers making a new clone from head camera + // And ReadConfig is called when externalcamera.cfg is changed on disk + var duplicateCamsObj = ListPool<GameObject>.Get(); + + camera = null; + for (int i = excamTrans.childCount - 1; i >= 0; --i) + { + var cam = excamTrans.GetChild(i).GetComponent<Camera>(); + if (cam == null) { continue; } + + if (camera == null) + { + camera = cam; + } + else + { + duplicateCamsObj.Add(cam.gameObject); + } + } + + for (int i = duplicateCamsObj.Count - 1; i >= 0; --i) + { + Destroy(duplicateCamsObj[i]); + } + + ListPool<GameObject>.Release(duplicateCamsObj); + } + + return true; + } + + public void RecenterExternalCameraPose() + { + SteamVR_ExternalCamera excam; + Camera cam; + if (TryGetTargetExCam(out excam, out cam)) + { + Vector3 recenteredPos; + Vector3 recenteredRot; + + var origin = ExternalCameraHook.Instance.origin; + var root = origin != null ? origin : ExternalCameraHook.Instance.transform.parent; + + if (root == null) + { + recenteredPos = cam.transform.position; + recenteredRot = root.eulerAngles; + } + else + { + recenteredPos = root.InverseTransformPoint(cam.transform.position); + recenteredRot = (cam.transform.rotation * Quaternion.Inverse(root.rotation)).eulerAngles; + } + + posX = recenteredPos.x; + posY = recenteredPos.y; + posZ = recenteredPos.z; + rotX = recenteredRot.x; + rotY = recenteredRot.y; + rotZ = recenteredRot.z; + + ReloadFields(); + + ExternalCameraHook.Instance.Recenter(); + } + + m_recenterButton.gameObject.SetActive(false); + } +#else + public float posX { get; set; } + public float posY { get; set; } + public float posZ { get; set; } + public float rotX { get; set; } + public float rotY { get; set; } + public float rotZ { get; set; } + public float ckR { get; set; } + public float ckG { get; set; } + public float ckB { get; set; } + public float ckA { get; set; } + public float fov { get; set; } + public float clipNear { get; set; } + public float clipFar { get; set; } + public float offsetNear { get; set; } + public float offsetFar { get; set; } + public float offsetHMD { get; set; } + public float frameSkip { get; set; } + public float sceneResolutionScale { get; set; } + public bool diableStandardAssets { get; set; } + + public void SaveConfig() { } + + public void ReloadConfig() { } + + public void RecenterExternalCameraPose() { } +#endif + private ViveRoleProperty m_exCamViveRole; + + private void Awake() + { + if (EventSystem.current == null) + { + new GameObject("[EventSystem]", typeof(EventSystem)).AddComponent<StandaloneInputModule>(); + } + else if (EventSystem.current.GetComponent<StandaloneInputModule>() == null) + { + EventSystem.current.gameObject.AddComponent<StandaloneInputModule>(); + } + +#if !VIU_STEAMVR_1_2_2_OR_NEWER + if (m_ckR != null) + { + m_ckR.transform.parent.gameObject.SetActive(false); + } +#endif + +#if UNITY_5_4_OR_NEWER + // Disable the camera HMD tracking + GetComponent<Canvas>().worldCamera.stereoTargetEye = StereoTargetEyeMask.None; +#endif + + // Force update layout + transform.parent.gameObject.SetActive(false); + transform.parent.gameObject.SetActive(true); + } + + private void OnEnable() + { + ReloadFields(); + + if (m_exCamViveRole == null && ExternalCameraHook.Active) + { + m_exCamViveRole = ExternalCameraHook.Instance.viveRole; + m_exCamViveRole.onDeviceIndexChanged += OnDeviceIndexChanged; + } + + UpdateRecenterButtonVisible(); + } + + private void OnDisable() + { + if (m_exCamViveRole != null) + { + m_exCamViveRole.onDeviceIndexChanged -= OnDeviceIndexChanged; + m_exCamViveRole = null; + } + } + + private void ReloadFields() + { + m_posX.fieldValue = posX; + m_posY.fieldValue = posY; + m_posZ.fieldValue = posZ; + m_rotX.fieldValue = rotX; + m_rotY.fieldValue = rotY; + m_rotZ.fieldValue = rotZ; + m_ckR.fieldValue = ckR; + m_ckG.fieldValue = ckG; + m_ckB.fieldValue = ckB; + m_ckA.fieldValue = ckA; + m_fov.fieldValue = fov; + m_clipNear.fieldValue = clipNear; + m_clipFar.fieldValue = clipFar; + m_offsetNear.fieldValue = offsetNear; + m_offsetFar.fieldValue = offsetFar; + m_offsetHMD.fieldValue = offsetHMD; + m_frameSkip.fieldValue = frameSkip; + m_sceneResolutionScale.fieldValue = sceneResolutionScale; + m_diableStandardAssets.isOn = diableStandardAssets; + + m_dirtySymbol.gameObject.SetActive(false); + } + + private void OnDeviceIndexChanged(uint deviceIndex) { UpdateRecenterButtonVisible(); } + + private void UpdateRecenterButtonVisible() + { + if (!isActiveAndEnabled || m_recenterButton == null) { return; } + + if (ExternalCameraHook.Instance.isTrackingDevice) + { + m_recenterButton.gameObject.SetActive(false); + } + else + { + bool needRecenter; + var origin = ExternalCameraHook.Instance.origin; + if (origin == null) + { + needRecenter = new RigidPose(ExternalCameraHook.Instance.transform, false) != RigidPose.identity; + } + else + { + needRecenter = new RigidPose(ExternalCameraHook.Instance.transform, false) != new RigidPose(origin, false); + } + + m_recenterButton.gameObject.SetActive(needRecenter); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b179803e97e9b3d1d5bd124bd41be091f91d08a1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExCamConfigInterface/ExCamConfigInterfacePanelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b8329080bef86e84091f2f7d9c246b92 +timeCreated: 1505122661 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs new file mode 100644 index 0000000000000000000000000000000000000000..5319a681fd7d79bb7ab796b941e8a2abdfdafec6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs @@ -0,0 +1,415 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.IO; +using UnityEngine; +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive +{ + // This script creates and handles SteamVR_ExternalCamera using viveRole property + [AddComponentMenu("VIU/Hooks/External Camera Hook", 9)] + [DisallowMultipleComponent] + public class ExternalCameraHook : SingletonBehaviour<ExternalCameraHook>, INewPoseListener, IViveRoleComponent + { + [Obsolete("Use VIUSettings.EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE instead.")] + public const string AUTO_LOAD_CONFIG_PATH = "externalcamera.cfg"; + + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.ExternalCamera); + [SerializeField] + private Transform m_origin; + [SerializeField] + private string m_configPath = string.Empty; + + private bool m_quadViewSwitch = false; + private bool m_configInterfaceSwitch = true; + private GameObject m_configUI = null; + + public ViveRoleProperty viveRole { get { return m_viveRole; } } + + public Transform origin { get { return m_origin; } set { m_origin = value; } } + + public bool isTrackingDevice { get { return isActiveAndEnabled && VRModule.IsValidDeviceIndex(m_viveRole.GetDeviceIndex()); } } + + public string configPath + { + get + { + return m_configPath; + } + set + { + m_configPath = value; +#if VIU_STEAMVR && UNITY_STANDALONE + if (m_externalCamera != null && !string.IsNullOrEmpty(m_configPath) && File.Exists(m_configPath)) + { + m_externalCamera.configPath = m_configPath; + m_externalCamera.ReadConfig(); + } +#endif + } + } + + public bool quadViewEnabled + { + get { return m_quadViewSwitch; } + set + { + if (IsInstance && m_quadViewSwitch != value) + { + m_quadViewSwitch = value; + UpdateActivity(); + } + } + } + + public bool configInterfaceEnabled + { + get { return m_configInterfaceSwitch; } + set + { + if (IsInstance && m_configInterfaceSwitch != value) + { + m_configInterfaceSwitch = value; + UpdateActivity(); + } + } + } + + public bool isQuadViewActive + { + get + { +#if VIU_STEAMVR && UNITY_STANDALONE + return isActiveAndEnabled && m_externalCamera != null && m_externalCamera.isActiveAndEnabled; +#else + return false; +#endif + } + } + + public bool isConfigInterfaceActive + { + get + { + return isActiveAndEnabled && m_configUI != null && m_configUI.activeSelf; + } + } + + static ExternalCameraHook() + { + SetDefaultInitGameObjectGetter(DefaultInitGameObject); + } + + private static GameObject DefaultInitGameObject() + { + var go = new GameObject("[ExternalCamera]"); + go.transform.SetParent(VRModule.Instance.transform, false); + return go; + } + +#if UNITY_EDITOR + private void Reset() + { + m_configPath = VIUSettings.EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE; + } + + private void OnValidate() + { + if (Application.isPlaying && isActiveAndEnabled) + { + UpdateActivity(); + } + } +#endif + +#if VIU_STEAMVR && UNITY_STANDALONE + private SteamVR_ExternalCamera m_externalCamera; + private RigidPose m_staticExCamPose = RigidPose.identity; + + public SteamVR_ExternalCamera externalCamera { get { return m_externalCamera; } } + + [RuntimeInitializeOnLoadMethod] + private static void OnLoad() + { + if (VIUSettings.autoLoadExternalCameraConfigOnStart) + { + if (VRModule.Active && VRModule.activeModule != VRModuleActiveEnum.Uninitialized) + { + AutoLoadConfig(); + } + else + { + VRModule.onActiveModuleChanged += OnActiveModuleChanged; + } + } + } + + private static void OnActiveModuleChanged(VRModuleActiveEnum activatedModule) + { + if (activatedModule != VRModuleActiveEnum.Uninitialized) + { + VRModule.onActiveModuleChanged -= OnActiveModuleChanged; + AutoLoadConfig(); + } + } + + private static void AutoLoadConfig() + { + Initialize(); + + if (string.IsNullOrEmpty(Instance.m_configPath)) + { + Instance.m_configPath = VIUSettings.externalCameraConfigFilePath; + } + + LoadConfigFromFile(Instance.m_configPath); + } + + /// <summary> + /// Load config form file if the file exist. + /// Will create an ExternalCameraHook instance into scene if config is availabile and there was no instance. + /// </summary> + /// <param name="">The config file path.</param> + /// <returns>true if config file loaded and external camera instance is created successfully.</returns> + public static bool LoadConfigFromFile(string path) + { + if (!SteamVR.active || string.IsNullOrEmpty(path) || !File.Exists(path)) + { + return false; + } + + Instance.configPath = path; + Instance.UpdateActivity(); + return true; + } + + private static bool m_defaultExCamResolved; + private static void ResolveDefaultExCam() + { + if (m_defaultExCamResolved || VRModule.activeModule != VRModuleActiveEnum.SteamVR || !SteamVR.active) + { + if (Active && (VRModule.activeModule != VRModuleActiveEnum.SteamVR || !SteamVR.active)) { Instance.m_quadViewSwitch = false; } + return; + } + m_defaultExCamResolved = true; + + SteamVR_Render.instance.externalCameraConfigPath = string.Empty; + + var oldExternalCam = SteamVR_Render.instance.externalCamera; + if (oldExternalCam != null) + { + SteamVR_Render.instance.externalCamera = null; + // To prevent SteamVR_ExternalCamera from setting invalid(0f) sceneResolutionScale value in OnDisable() + oldExternalCam.config.sceneResolutionScale = 0f; + +#if !VIU_STEAMVR_2_0_0_OR_NEWER + if (oldExternalCam.transform.parent != null && oldExternalCam.transform.parent.GetComponent<SteamVR_ControllerManager>() != null) +#else + if (oldExternalCam.transform.parent != null && oldExternalCam.transform.parent.GetComponentInChildren<SteamVR_TrackedObject>() != null) +#endif + { + Destroy(oldExternalCam.transform.parent.gameObject); + } + else + { + Destroy(oldExternalCam.gameObject); + } + } + } + + private void OnEnable() + { + if (IsInstance) + { + m_viveRole.onDeviceIndexChanged += OnDeviceIndexChanged; + OnDeviceIndexChanged(m_viveRole.GetDeviceIndex()); + } + } + + private void OnDisable() + { + if (IsInstance) + { + m_viveRole.onDeviceIndexChanged -= OnDeviceIndexChanged; + OnDeviceIndexChanged(VRModule.INVALID_DEVICE_INDEX); + } + } + + private void OnDeviceIndexChanged(uint deviceIndex) + { + if (IsInstance) + { + m_quadViewSwitch = isTrackingDevice; + UpdateActivity(); + } + } + + public virtual void BeforeNewPoses() { } + + public virtual void OnNewPoses() + { + var deviceIndex = m_viveRole.GetDeviceIndex(); + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + m_staticExCamPose = VivePose.GetPose(deviceIndex); + } + + if (isQuadViewActive) + { + RigidPose.SetPose(transform, m_staticExCamPose, m_origin); + } + } + + public virtual void AfterNewPoses() { } + + private void Update() + { + if (VIUSettings.enableExternalCameraSwitch && Input.GetKeyDown(VIUSettings.externalCameraSwitchKey) && (VIUSettings.externalCameraSwitchKeyModifier != KeyCode.None && Input.GetKey(VIUSettings.externalCameraSwitchKeyModifier))) + { + if (!isQuadViewActive) + { + m_quadViewSwitch = true; + m_configInterfaceSwitch = true; + } + else + { + if (m_configInterfaceSwitch) + { + m_configInterfaceSwitch = false; + } + else + { + m_quadViewSwitch = false; + m_configInterfaceSwitch = false; + } + } + + UpdateActivity(); + } + } + + private void UpdateActivity() + { + ResolveDefaultExCam(); + + if (!isActiveAndEnabled) + { + InternalSetQuadViewActive(false); + InternalSetConfigInterfaceActive(false); + } + else + { + InternalSetQuadViewActive(m_quadViewSwitch); + InternalSetConfigInterfaceActive(isQuadViewActive && m_configInterfaceSwitch); + } + } + + private void InternalSetQuadViewActive(bool value) + { + if (value && m_externalCamera == null && !string.IsNullOrEmpty(m_configPath) && File.Exists(m_configPath)) + { + // don't know why SteamVR_ExternalCamera must be instantiated from the prefab + // when create SteamVR_ExternalCamera using AddComponent, errors came out when disabling + var prefab = Resources.Load<GameObject>("SteamVR_ExternalCamera"); + if (prefab == null) + { + Debug.LogError("SteamVR_ExternalCamera prefab not found!"); + } + else + { + var ctrlMgr = Instantiate(prefab); + var extCam = ctrlMgr.transform.GetChild(0); + extCam.gameObject.name = "SteamVR External Camera"; + extCam.SetParent(transform, false); + DestroyImmediate(extCam.GetComponent<SteamVR_TrackedObject>()); + DestroyImmediate(ctrlMgr); + + m_externalCamera = extCam.GetComponent<SteamVR_ExternalCamera>(); + SteamVR_Render.instance.externalCamera = m_externalCamera; + + // resolve config file + m_externalCamera.enabled = false; + m_externalCamera.configPath = m_configPath; + m_externalCamera.ReadConfig(); + m_externalCamera.enabled = true; // to preserve sceneResolutionScale on enabled + + // resolve RenderTexture + m_externalCamera.AttachToCamera(SteamVR_Render.Top()); + var w = Screen.width / 2; + var h = Screen.height / 2; + var cam = m_externalCamera.GetComponentInChildren<Camera>(); + if (cam.targetTexture == null || cam.targetTexture.width != w || cam.targetTexture.height != h) + { + var tex = new RenderTexture(w, h, 24, RenderTextureFormat.ARGB32, QualitySettings.activeColorSpace == ColorSpace.Linear ? RenderTextureReadWrite.Linear : RenderTextureReadWrite.Default); + tex.antiAliasing = QualitySettings.antiAliasing == 0 ? 1 : QualitySettings.antiAliasing; + cam.targetTexture = tex; + } + } + } + + if (m_externalCamera != null) + { + m_externalCamera.gameObject.SetActive(value); + + if (value) + { + VivePose.AddNewPosesListener(this); + } + else + { + VivePose.RemoveNewPosesListener(this); + } + } + } + + private void InternalSetConfigInterfaceActive(bool value) + { + if (value && m_configUI == null) + { + var prefab = Resources.Load<GameObject>("VIUExCamConfigInterface"); + if (prefab == null) + { + Debug.LogError("VIUExCamConfigInterface prefab not found!"); + } + else + { + m_configUI = Instantiate(prefab); + } + } + + if (m_configUI != null) + { + m_configUI.SetActive(value); + } + } + + public void Recenter() + { + m_staticExCamPose = RigidPose.identity; + } + +#else + protected virtual void Start() + { + Debug.LogWarning("SteamVR plugin not found! install it to enable ExternalCamera!"); + } + + private void UpdateActivity() { } + + public virtual void BeforeNewPoses() { } + + public virtual void OnNewPoses() { } + + public virtual void AfterNewPoses() { } + + public void Recenter() { } +#endif + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8ea625c320c007eb07aa492ec754e14a79dcceca --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ExternalCameraHook.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a8deef80f4da8a44f858a453c0f74ecf +timeCreated: 1490029871 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..9ee0a933bb19aa4632aa05ec478e1ce5bb8b8d28 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs @@ -0,0 +1,189 @@ +using HTC.UnityPlugin.PoseTracker; +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public abstract class GrabbableBase<TGrabber> : BasePoseTracker where TGrabber : class, GrabbableBase<TGrabber>.IGrabber + { + public const float MIN_FOLLOWING_DURATION = 0.02f; + public const float DEFAULT_FOLLOWING_DURATION = 0.04f; + public const float MAX_FOLLOWING_DURATION = 0.5f; + + public interface IGrabber + { + RigidPose grabberOrigin { get; } + RigidPose grabOffset { get; } + } + + private struct PoseSample + { + public float time; + public RigidPose pose; + } + + private Queue<PoseSample> m_poseSamples = new Queue<PoseSample>(); + private OrderedIndexedSet<TGrabber> m_grabbers = new OrderedIndexedSet<TGrabber>(); + private bool m_grabMutex; + private Action m_afterGrabberGrabbed; + private Action m_beforeGrabberReleased; + private Action m_onGrabberDrop; + + public virtual float followingDuration { get { return DEFAULT_FOLLOWING_DURATION; } set { } } + public virtual bool overrideMaxAngularVelocity { get { return true; } set { } } + + public TGrabber currentGrabber { get; private set; } + public bool isGrabbed { get { return currentGrabber != null; } } + public Rigidbody grabRigidbody { get; set; } + + public event Action afterGrabberGrabbed { add { m_afterGrabberGrabbed += value; } remove { m_afterGrabberGrabbed -= value; } } + public event Action beforeGrabberReleased { add { m_beforeGrabberReleased += value; } remove { m_beforeGrabberReleased -= value; } } + public event Action onGrabberDrop { add { m_onGrabberDrop += value; } remove { m_onGrabberDrop -= value; } } + + protected virtual void Awake() + { + grabRigidbody = GetComponent<Rigidbody>(); + } + + protected bool AddGrabber(TGrabber grabber) + { + if (grabber == null || m_grabbers.Contains(grabber)) { return false; } + + CheckRecursiveException("AddGrabber"); + + if (isGrabbed && m_beforeGrabberReleased != null) + { + m_grabMutex = true; + m_beforeGrabberReleased(); + m_grabMutex = false; + } + + m_grabbers.Add(grabber); + currentGrabber = grabber; + + if (m_afterGrabberGrabbed != null) + { + m_afterGrabberGrabbed(); + } + + return true; + } + + protected bool RemoveGrabber(TGrabber grabber) + { + if (grabber == null || !m_grabbers.Contains(grabber)) { return false; } + + CheckRecursiveException("RemoveGrabber"); + + if (m_grabbers.Count == 1) + { + ClearGrabbers(true); + } + else if (grabber == currentGrabber) + { + if (m_beforeGrabberReleased != null) + { + m_grabMutex = true; + m_beforeGrabberReleased(); + m_grabMutex = false; + } + + m_grabbers.Remove(grabber); + currentGrabber = m_grabbers.GetLast(); + + if (m_afterGrabberGrabbed != null) + { + m_afterGrabberGrabbed(); + } + } + else + { + m_grabbers.Remove(grabber); + } + + return true; + } + + protected void ClearGrabbers(bool doDrop) + { + if (m_grabbers.Count == 0) { return; } + + CheckRecursiveException("ClearGrabbers"); + + if (m_beforeGrabberReleased != null) + { + m_grabMutex = true; + m_beforeGrabberReleased(); + m_grabMutex = false; + } + + m_grabbers.Clear(); + currentGrabber = null; + + if (doDrop) + { + if (grabRigidbody != null && !grabRigidbody.isKinematic && m_poseSamples.Count > 0) + { + var framePose = m_poseSamples.Dequeue(); + var deltaTime = Time.time - framePose.time; + + RigidPose.SetRigidbodyVelocity(grabRigidbody, framePose.pose.pos, transform.position, deltaTime); + RigidPose.SetRigidbodyAngularVelocity(grabRigidbody, framePose.pose.rot, transform.rotation, deltaTime, overrideMaxAngularVelocity); + + m_poseSamples.Clear(); + } + + if (m_onGrabberDrop != null) + { + m_onGrabberDrop(); + } + } + } + + protected void OnGrabRigidbody() + { + var targetPose = currentGrabber.grabberOrigin * currentGrabber.grabOffset; + ModifyPose(ref targetPose, null); + + RigidPose.SetRigidbodyVelocity(grabRigidbody, grabRigidbody.position, targetPose.pos, followingDuration); + RigidPose.SetRigidbodyAngularVelocity(grabRigidbody, grabRigidbody.rotation, targetPose.rot, followingDuration, overrideMaxAngularVelocity); + } + + protected virtual void OnGrabTransform() + { + var targetPose = currentGrabber.grabberOrigin * currentGrabber.grabOffset; + ModifyPose(ref targetPose, null); + + if (grabRigidbody != null) + { + grabRigidbody.velocity = Vector3.zero; + grabRigidbody.angularVelocity = Vector3.zero; + } + + transform.position = targetPose.pos; + transform.rotation = targetPose.rot; + } + + protected void RecordLatestPosesForDrop(float currentTime, float recordLength) + { + while (m_poseSamples.Count > 0 && (currentTime - m_poseSamples.Peek().time) > recordLength) + { + m_poseSamples.Dequeue(); + } + + m_poseSamples.Enqueue(new PoseSample() + { + time = currentTime, + pose = new RigidPose(transform), + }); + } + + private void CheckRecursiveException(string func) + { + if (!m_grabMutex) { return; } + throw new Exception("[" + func + "] Cannot Add/Remove Grabber recursivly"); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b99295ea41eed6b0e6a31bcb0940692f0c0e88c9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GrabbableBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c4bf95405e4df2245ab1dadaa3452321 +timeCreated: 1528697733 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..291fcd34b9226eb6170ff3d1c1e6797d54fa4595 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs @@ -0,0 +1,117 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Pointer3D; +using UnityEngine; + +public class GuideLineDrawer : MonoBehaviour +{ + public const float MIN_SEGMENT_LENGTH = 0.01f; + + public Vector3 gravityDirection = Vector3.down; + public bool showOnHitOnly; + public float segmentLength = 0.05f; + + public Pointer3DRaycaster raycaster; + public LineRenderer lineRenderer; + +#if UNITY_EDITOR + protected virtual void Reset() + { + for (var tr = transform; raycaster == null && tr != null; tr = tr.parent) + { + raycaster = tr.GetComponentInChildren<Pointer3DRaycaster>(); + } + + if (lineRenderer == null) { lineRenderer = GetComponentInChildren<LineRenderer>(); } + if (lineRenderer == null && raycaster != null) { lineRenderer = gameObject.AddComponent<LineRenderer>(); } + if (lineRenderer != null) + { +#if UNITY_5_5_OR_NEWER + lineRenderer.startWidth = 0.01f; + lineRenderer.endWidth = 0f; +#else + lineRenderer.SetWidth(0.01f, 0f); +#endif + } + } +#endif + protected virtual void LateUpdate() + { + var result = raycaster.FirstRaycastResult(); + if (showOnHitOnly && !result.isValid) + { + lineRenderer.enabled = false; + return; + } + + var points = raycaster.BreakPoints; + var pointCount = points.Count; + + if (pointCount < 2) + { + return; + } + + lineRenderer.enabled = true; + lineRenderer.useWorldSpace = false; + + var startPoint = points[0]; + var endPoint = points[pointCount - 1]; + + if (pointCount == 2) + { +#if UNITY_5_6_OR_NEWER + lineRenderer.positionCount = 2; +#elif UNITY_5_5_OR_NEWER + lineRenderer.numPositions = 2; +#else + lineRenderer.SetVertexCount(2); +#endif + lineRenderer.SetPosition(0, transform.InverseTransformPoint(startPoint)); + lineRenderer.SetPosition(1, transform.InverseTransformPoint(endPoint)); + } + else + { + var systemY = gravityDirection; + var systemX = endPoint - startPoint; + var systemZ = default(Vector3); + + Vector3.OrthoNormalize(ref systemY, ref systemX, ref systemZ); + + var initialV = Vector3.ProjectOnPlane(points[1] - points[0], systemZ); // initial projectile direction + var initialVx = Vector3.Dot(initialV, systemX); + var initialVy = Vector3.Dot(initialV, systemY); + var initSlope = initialVy / initialVx; + + var approachV = endPoint - startPoint; + var approachVx = Vector3.Dot(approachV, systemX); + var approachVy = Vector3.Dot(approachV, systemY); + + var lenx = Mathf.Max(segmentLength, MIN_SEGMENT_LENGTH); + var segments = Mathf.Max(Mathf.CeilToInt(approachVx / lenx), 0); + + var factor = (approachVy - initSlope * approachVx) / (approachVx * approachVx); + +#if UNITY_5_6_OR_NEWER + lineRenderer.positionCount = segments + 1; +#elif UNITY_5_5_OR_NEWER + lineRenderer.numPositions = segments + 1; +#else + lineRenderer.SetVertexCount(segments + 1); +#endif + lineRenderer.SetPosition(0, transform.InverseTransformPoint(startPoint)); + for (int i = 1, imax = segments; i < imax; ++i) + { + var x = i * lenx; + var y = factor * x * x + initSlope * x; + lineRenderer.SetPosition(i, transform.InverseTransformPoint(systemX * x + systemY * y + startPoint)); + } + lineRenderer.SetPosition(segments, transform.InverseTransformPoint(endPoint)); + } + } + + protected virtual void OnDisable() + { + lineRenderer.enabled = false; + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ebfb07c9afa627c174e1d527362765da1f2111e1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/GuideLineDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa380deb7f1437a4c8678ec04f101197 +timeCreated: 1475737356 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs new file mode 100644 index 0000000000000000000000000000000000000000..175f3aa5646bd4094dfc13bb5c662300352d8a6f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs @@ -0,0 +1,151 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; + +// This component shows the status that interacting with ColliderEventCaster +public class MaterialChanger : MonoBehaviour + , IColliderEventHoverEnterHandler + , IColliderEventHoverExitHandler + , IColliderEventPressEnterHandler + , IColliderEventPressExitHandler +{ + private readonly static List<Renderer> s_rederers = new List<Renderer>(); + + [NonSerialized] + private Material currentMat; + + public Material Normal; + [FormerlySerializedAs("Heightlight")] + public Material Hovered; + public Material Pressed; + public Material dragged; + + [Obsolete("Use hovered instead")] + public Material Heightlight { get { return Hovered; } set { Hovered = value; } } + + [Obsolete] + [HideInInspector] + public ColliderButtonEventData.InputButton heighlightButton = ColliderButtonEventData.InputButton.Trigger; + + private HashSet<ColliderHoverEventData> hovers = new HashSet<ColliderHoverEventData>(); + private HashSet<ColliderButtonEventData> presses = new HashSet<ColliderButtonEventData>(); + private HashSet<ColliderButtonEventData> drags = new HashSet<ColliderButtonEventData>(); + + [Obsolete] + public static void SetAllChildrenHeighlightButton(GameObject parent, ColliderButtonEventData.InputButton button) + { + var matChangers = ListPool<MaterialChanger>.Get(); + parent.GetComponentsInChildren(matChangers); + for (int i = matChangers.Count - 1; i >= 0; --i) { matChangers[i].heighlightButton = button; } + ListPool<MaterialChanger>.Release(matChangers); + } + + private void Start() + { + UpdateMaterialState(); + } + + public void OnColliderEventHoverEnter(ColliderHoverEventData eventData) + { + hovers.Add(eventData); + + UpdateMaterialState(); + } + + public void OnColliderEventHoverExit(ColliderHoverEventData eventData) + { + hovers.Remove(eventData); + + UpdateMaterialState(); + } + + public void OnColliderEventPressEnter(ColliderButtonEventData eventData) + { + for (int i = eventData.pressedRawObjects.Count - 1; i >= 0; --i) + { + if (gameObject == eventData.pressedRawObjects[i] || eventData.pressedRawObjects[i].transform.IsChildOf(transform)) + { + presses.Add(eventData); + } + } + + // check if this evenData is dragging me(or ancestry of mine) + for (int i = eventData.draggingHandlers.Count - 1; i >= 0; --i) + { + if (gameObject == eventData.draggingHandlers[i] || transform.IsChildOf(eventData.draggingHandlers[i].transform)) + { + drags.Add(eventData); + break; + } + } + + UpdateMaterialState(); + } + + public void OnColliderEventPressExit(ColliderButtonEventData eventData) + { + presses.Remove(eventData); + drags.Remove(eventData); + + UpdateMaterialState(); + } + + private void LateUpdate() + { + UpdateMaterialState(); + } + + private void OnDisable() + { + hovers.Clear(); + presses.Clear(); + drags.Clear(); + } + + public void UpdateMaterialState() + { + Material targetMat; + + if (drags.Count > 0) + { + targetMat = dragged; + } + else if (presses.Count > 0) + { + targetMat = Pressed; + } + else if (hovers.Count > 0) + { + targetMat = Hovered; + } + else + { + targetMat = Normal; + } + + if (ChangeProp.Set(ref currentMat, targetMat)) + { + SetChildRendererMaterial(targetMat); + } + } + + private void SetChildRendererMaterial(Material targetMat) + { + GetComponentsInChildren(true, s_rederers); + + if (s_rederers.Count > 0) + { + for (int i = s_rederers.Count - 1; i >= 0; --i) + { + s_rederers[i].sharedMaterial = targetMat; + } + + s_rederers.Clear(); + } + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..559b37cfa24d04743309e5319746777782267e07 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/MaterialChanger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 079afddb0d7f05e40bcb44383f149949 +timeCreated: 1477990862 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension.meta new file mode 100644 index 0000000000000000000000000000000000000000..7c5e70c9582bc8050f0c003a912a1e2342f8b3b3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d156d4c4fb957547bff681c048aa955 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..a4329f0330decbce07ab984d96bfcec4b0d76d88 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs @@ -0,0 +1,891 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +#if VIU_OCULUSVR_AVATAR +using Oculus.Avatar; +#endif + +namespace HTC.UnityPlugin.Vive.OculusVRExtension +{ + // Only works in playing mode + public class VIUOculusVRRenderModel : MonoBehaviour + { + private struct ChildTransforms + { + public Transform root; + public Transform attach; + } + + // Name of the sub-object which represents the "local" coordinate space for each component. + public const string LOCAL_TRANSFORM_NAME = "attach"; + + public const string MODEL_OVERRIDE_WARNNING = "Model override is really only meant to be used in " + + "the scene view for lining things up. Use tracked device " + + "index instead to ensure the correct model is displayed for all users."; + + private const uint LEFT_INDEX = 1; + private const uint RIGHT_INDEX = 2; + + [Tooltip(MODEL_OVERRIDE_WARNNING)] + [SerializeField] + private string m_modelOverride; + + [Tooltip("Shader to apply to model.")] + [SerializeField] + private Shader m_shaderOverride; + + [Tooltip("Update transforms of components at runtime to reflect user action.")] + [SerializeField] + private bool m_updateDynamically = true; + + private uint m_deviceIndex = VRModule.INVALID_DEVICE_INDEX; + private MeshFilter m_meshFilter; + private MeshRenderer m_meshRenderer; + private IndexedTable<string, ChildTransforms> m_chilTransforms = new IndexedTable<string, ChildTransforms>(); + private IndexedTable<int, Material> m_materials = new IndexedTable<int, Material>(); + private HashSet<string> m_loadingRenderModels = new HashSet<string>(); + private bool m_isAppQuit; + +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + private IntPtr sdkAvatar = IntPtr.Zero; + private HashSet<UInt64> assetLoadingIds = new HashSet<UInt64>(); + private Dictionary<string, OvrAvatarComponent> trackedComponents = + new Dictionary<string, OvrAvatarComponent>(); + private OvrAvatarTouchController ovrController; + private int renderPartCount = 0; + private Shader SurfaceShader; + private Shader SurfaceShaderSelfOccluding; + private List<OvrAvatarRenderComponent> RenderParts = new List<OvrAvatarRenderComponent>(); + + private ovrAvatarHandInputState inputStateLeft; + private ovrAvatarHandInputState inputStateRight; + private bool firstSkinnedUpdate = true; + private bool assetsFinishedLoading = false; + private bool isMaterialInitilized = false; + private bool isMeshInitilized = false; + private ovrAvatarControllerType m_controllerType = ovrAvatarControllerType.Quest; +#endif + + private string preferedModelName + { + get + { + if (!string.IsNullOrEmpty(m_modelOverride)) { return m_modelOverride; } +#if UNITY_EDITOR + if (!Application.isPlaying) + { + return string.Empty; + } + else +#endif + { + return VRModule.GetCurrentDeviceState(m_deviceIndex).renderModelName; + } + } + } + + private Shader preferedShader { get { return m_shaderOverride == null ? Shader.Find("Standard") : m_shaderOverride; } } + + public bool updateDynamically { get { return m_updateDynamically; } set { m_updateDynamically = value; } } + public bool isLoadingModel { get { return m_loadingRenderModels.Count > 0; } } + public string loadedModelName { get; private set; } + public bool isModelLoaded { get { return !string.IsNullOrEmpty(loadedModelName); } } + public Shader loadedShader { get; private set; } + + public string modelOverride + { + get + { + return m_modelOverride; + } + set + { + m_modelOverride = value; + LoadPreferedModel(); + } + } + + public Shader shaderOverride + { + get + { + return m_shaderOverride; + } + set + { + m_shaderOverride = value; + SetPreferedShader(); + } + } + +#if UNITY_EDITOR + private void OnValidate() + { + if (Application.isPlaying) + { + UnityEditor.EditorApplication.delayCall += () => + { + if (!m_isAppQuit && this != null && isActiveAndEnabled) + { + LoadPreferedModel(); + SetPreferedShader(); + } + }; + } + } +#endif + + private void Update() + { + if (m_updateDynamically) + { +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + if (sdkAvatar == IntPtr.Zero) + { + return; + } + + if (m_deviceIndex == LEFT_INDEX) + { + inputStateLeft.transform.position = transform.position; + inputStateLeft.transform.orientation = transform.rotation; + inputStateLeft.transform.scale = transform.localScale; + + inputStateLeft.buttonMask = 0; + inputStateLeft.touchMask = ovrAvatarTouch.Pointing | ovrAvatarTouch.ThumbUp; + + if (ViveInput.GetPress(HandRole.LeftHand, ControllerButton.AKey)) + { + inputStateLeft.buttonMask |= ovrAvatarButton.One; + } + + if (ViveInput.GetPress(HandRole.LeftHand, ControllerButton.BKey)) + { + inputStateLeft.buttonMask |= ovrAvatarButton.Two; + } + + if (ViveInput.GetPress(HandRole.LeftHand, ControllerButton.System)) + { + inputStateLeft.buttonMask |= ovrAvatarButton.Three; + } + + if (ViveInput.GetPress(HandRole.LeftHand, ControllerButton.Pad)) + { + inputStateLeft.buttonMask |= ovrAvatarButton.Joystick; + } + + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.AKeyTouch)) + { + inputStateLeft.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateLeft.touchMask |= ovrAvatarTouch.One; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.BkeyTouch)) + { + inputStateLeft.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateLeft.touchMask |= ovrAvatarTouch.Two; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.PadTouch)) + { + inputStateLeft.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateLeft.touchMask |= ovrAvatarTouch.Joystick; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.TriggerTouch)) + { + inputStateLeft.touchMask &= ~ovrAvatarTouch.Pointing; + inputStateLeft.touchMask |= ovrAvatarTouch.Index; + } + + inputStateLeft.joystickX = ViveInput.GetAxis(HandRole.LeftHand, ControllerAxis.JoystickX); + inputStateLeft.joystickY = ViveInput.GetAxis(HandRole.LeftHand, ControllerAxis.JoystickY); + inputStateLeft.indexTrigger = ViveInput.GetAxis(HandRole.LeftHand, ControllerAxis.Trigger); + inputStateLeft.handTrigger = ViveInput.GetAxis(HandRole.LeftHand, ControllerAxis.CapSenseGrip); + inputStateLeft.isActive = true; + } + else if (m_deviceIndex == RIGHT_INDEX) + { + inputStateRight.transform.position = transform.position; + inputStateRight.transform.orientation = transform.rotation; + inputStateRight.transform.scale = transform.localScale; + + inputStateRight.buttonMask = 0; + inputStateRight.touchMask = ovrAvatarTouch.Pointing | ovrAvatarTouch.ThumbUp; + + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.AKey)) + { + inputStateRight.buttonMask |= ovrAvatarButton.One; + } + + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.BKey)) + { + inputStateRight.buttonMask |= ovrAvatarButton.Two; + } + + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.Pad)) + { + inputStateRight.buttonMask |= ovrAvatarButton.Joystick; + } + + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.AKeyTouch)) + { + inputStateRight.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateRight.touchMask |= ovrAvatarTouch.One; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.BkeyTouch)) + { + inputStateRight.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateRight.touchMask |= ovrAvatarTouch.Two; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.PadTouch)) + { + inputStateRight.touchMask &= ~ovrAvatarTouch.ThumbUp; + inputStateRight.touchMask |= ovrAvatarTouch.Joystick; + } + if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.TriggerTouch)) + { + inputStateRight.touchMask &= ~ovrAvatarTouch.Pointing; + inputStateRight.touchMask |= ovrAvatarTouch.Index; + } + + inputStateRight.joystickX = ViveInput.GetAxis(HandRole.RightHand, ControllerAxis.JoystickX); + inputStateRight.joystickY = ViveInput.GetAxis(HandRole.RightHand, ControllerAxis.JoystickY); + inputStateRight.indexTrigger = ViveInput.GetAxis(HandRole.RightHand, ControllerAxis.Trigger); + inputStateRight.handTrigger = ViveInput.GetAxis(HandRole.RightHand, ControllerAxis.CapSenseGrip); + inputStateRight.isActive = true; + } + + CAPI.ovrAvatarPose_UpdateHandsWithType(sdkAvatar, inputStateLeft, inputStateRight, m_controllerType); + CAPI.ovrAvatarPose_Finalize(sdkAvatar, Time.deltaTime); +#endif + + UpdateComponents(); + +#if VIU_OCULUSVR_1_37_0_OR_NEWER && VIU_OCULUSVR_AVATAR + if (m_deviceIndex == LEFT_INDEX) + { + ovrAvatarControllerComponent component = new ovrAvatarControllerComponent(); + if (CAPI.ovrAvatarPose_GetLeftControllerComponent(sdkAvatar, ref component)) + { + UpdateAvatarComponent(component.renderComponent); + } + } + else if (m_deviceIndex == RIGHT_INDEX) + { + ovrAvatarControllerComponent component = new ovrAvatarControllerComponent(); + if (CAPI.ovrAvatarPose_GetRightControllerComponent(sdkAvatar, ref component)) + { + UpdateAvatarComponent(component.renderComponent); + } + } +#endif + } + } + + private void OnEnable() + { + LoadPreferedModel(); + } + + private void OnDestroy() + { + ClearModel(); + } + + private void OnApplicationQuit() + { + m_isAppQuit = true; + } + + public void ClearModel() + { + if (!isModelLoaded) { return; } + + if (m_meshRenderer != null) { Destroy(m_meshRenderer); } + if (m_meshFilter != null) { Destroy(m_meshFilter); } + + for (int i = 0, imax = m_chilTransforms.Count; i < imax; ++i) + { + var c = m_chilTransforms.GetValueByIndex(i); + if (c.root == null) { continue; } + Destroy(c.root.gameObject); + } + + m_chilTransforms.Clear(); + m_materials.Clear(); + loadedModelName = string.Empty; + loadedShader = null; + } + + private void SetPreferedShader() + { + SetShader(preferedShader); + } + + private void SetShader(Shader newShader) + { + if (loadedShader == newShader) { return; } + + loadedShader = newShader; + + if (m_materials == null) { return; } + + for (int i = 0, imax = m_materials.Count; i < imax; ++i) + { + var mat = m_materials.GetValueByIndex(i); + if (mat != null) + { + mat.shader = newShader; + } + } + } + + private void LoadPreferedModel() + { + LoadModel(preferedModelName); + } + + private void LoadModel(string renderModelName) + { + //Debug.Log(transform.parent.parent.name + " Try LoadModel " + renderModelName); +#if UNITY_EDITOR + if (!Application.isPlaying) + { + Debug.LogWarning("LoadModel failed! This function only works in playing mode"); + return; + } +#endif + if (string.IsNullOrEmpty(loadedModelName) && string.IsNullOrEmpty(renderModelName)) { return; } + + if (loadedModelName == renderModelName) { return; } + + if (m_loadingRenderModels.Contains(renderModelName)) { return; } + + ClearModel(); + + if (!m_isAppQuit && !string.IsNullOrEmpty(renderModelName)) + { + //Debug.Log(transform.parent.parent.name + " LoadModel " + renderModelName); + m_loadingRenderModels.Add(renderModelName); +#if VIU_OCULUSVR_1_37_0_OR_NEWER && VIU_OCULUSVR_AVATAR + OvrAvatarSDKManager.AvatarSpecRequestParams avatarSpecRequest = new OvrAvatarSDKManager.AvatarSpecRequestParams( + 0, + this.AvatarSpecificationCallback, + false, + ovrAvatarAssetLevelOfDetail.Highest, + false, + ovrAvatarLookAndFeelVersion.Two, + ovrAvatarLookAndFeelVersion.One, + false); + + OvrAvatarSDKManager.Instance.RequestAvatarSpecification(avatarSpecRequest); +#elif VIU_OCULUSVR_1_36_0_OR_NEWER && VIU_OCULUSVR_AVATAR + OvrAvatarSDKManager.Instance.RequestAvatarSpecification( + 0, + this.AvatarSpecificationCallback, + false, + ovrAvatarAssetLevelOfDetail.Highest, + false, + ovrAvatarLookAndFeelVersion.Two, + ovrAvatarLookAndFeelVersion.One, + false); +#elif VIU_OCULUSVR_1_32_0_OR_NEWER && VIU_OCULUSVR_AVATAR + OvrAvatarSDKManager.Instance.RequestAvatarSpecification( + 0, + this.AvatarSpecificationCallback, + false, + ovrAvatarAssetLevelOfDetail.Highest, + false); +#endif + } + } + + + private void AvatarSpecificationCallback(IntPtr avatarSpecification) + { +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + sdkAvatar = CAPI.ovrAvatar_Create(avatarSpecification, ovrAvatarCapabilities.All); + CAPI.ovrAvatar_SetLeftControllerVisibility(sdkAvatar, true); + CAPI.ovrAvatar_SetRightControllerVisibility(sdkAvatar, true); + + //Fetch all the assets that this avatar uses. + UInt32 assetCount = CAPI.ovrAvatar_GetReferencedAssetCount(sdkAvatar); + for (UInt32 i = 0; i < assetCount; ++i) + { + UInt64 id = CAPI.ovrAvatar_GetReferencedAsset(sdkAvatar, i); + if (OvrAvatarSDKManager.Instance.GetAsset(id) == null) + { + OvrAvatarSDKManager.Instance.BeginLoadingAsset( + id, + ovrAvatarAssetLevelOfDetail.Highest, + AssetLoadedCallback); + + assetLoadingIds.Add(id); + } + } +#endif + } + +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + private void AssetLoadedCallback(OvrAvatarAsset asset) + { + assetLoadingIds.Remove(asset.assetID); + } +#endif + + private void OnLoadModelComplete(string renderModelName) + { + m_loadingRenderModels.Remove(renderModelName); + + if (loadedModelName == renderModelName) { return; } + if (preferedModelName != renderModelName) { return; } + if (!isActiveAndEnabled) { return; } + //Debug.Log(transform.parent.parent.name + " OnLoadModelComplete " + renderModelName); + ClearModel(); + + loadedModelName = renderModelName; + } + + private void UpdateComponents() + { +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + if (assetLoadingIds.Count == 0) + { + if (!assetsFinishedLoading) + { + UpdateSDKAvatarUnityState(); + assetsFinishedLoading = true; + } + } +#endif + } + +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER || VIU_OCULUSVR_1_37_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + private void UpdateSDKAvatarUnityState() + { +#if VIU_OCULUSVR_1_37_0_OR_NEWER && VIU_OCULUSVR_AVATAR + ovrAvatarControllerComponent controllerComponent = new ovrAvatarControllerComponent(); + ovrAvatarComponent dummyComponent = new ovrAvatarComponent(); + OvrAvatarTouchController controller = null; + + if (m_deviceIndex == LEFT_INDEX) + { + if (CAPI.ovrAvatarPose_GetLeftControllerComponent(sdkAvatar, ref controllerComponent)) + { + CAPI.ovrAvatarComponent_Get(controllerComponent.renderComponent, true, ref dummyComponent); + AddAvatarComponent(ref controller, dummyComponent); + controller.isLeftHand = true; + } + } + else if (m_deviceIndex == RIGHT_INDEX) + { + if (CAPI.ovrAvatarPose_GetRightControllerComponent(sdkAvatar, ref controllerComponent)) + { + CAPI.ovrAvatarComponent_Get(controllerComponent.renderComponent, true, ref dummyComponent); + AddAvatarComponent(ref controller, dummyComponent); + controller.isLeftHand = false; + } + } +#elif (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + //Iterate through all the render components + UInt32 componentCount = CAPI.ovrAvatarComponent_Count(sdkAvatar); + + for (UInt32 i = 0; i < componentCount; i++) + { + IntPtr ptr = CAPI.ovrAvatarComponent_Get_Native(sdkAvatar, i); + + ovrAvatarComponent component = (ovrAvatarComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarComponent)); + + if (!trackedComponents.ContainsKey(component.name)) + { + GameObject componentObject = null; + Type specificType = null; + + + if (specificType == null && (ovrAvatarCapabilities.All & ovrAvatarCapabilities.Hands) != 0) + { + if (m_deviceIndex == LEFT_INDEX) + { + ovrAvatarControllerComponent? controllerComponent = CAPI.ovrAvatarPose_GetLeftControllerComponent(sdkAvatar); + if (specificType == null && controllerComponent.HasValue && ptr == controllerComponent.Value.renderComponent) + { + specificType = typeof(OvrAvatarTouchController); + if (ovrController != null) + { + componentObject = ovrController.gameObject; + } + } + } + else if (m_deviceIndex == RIGHT_INDEX) + { + ovrAvatarControllerComponent? controllerComponent = CAPI.ovrAvatarPose_GetRightControllerComponent(sdkAvatar); + if (specificType == null && controllerComponent.HasValue && ptr == controllerComponent.Value.renderComponent) + { + specificType = typeof(OvrAvatarTouchController); + if (ovrController != null) + { + componentObject = ovrController.gameObject; + } + } + } + } + + if (componentObject != null) + { + AddAvatarComponent(componentObject, component); + } + } + + UpdateAvatarComponent(component); + } +#endif + } + +#if VIU_OCULUSVR_1_37_0_OR_NEWER && VIU_OCULUSVR_AVATAR + private void AddAvatarComponent<T>(ref T root, ovrAvatarComponent nativeComponent) where T : OvrAvatarComponent + { + GameObject componentObject = new GameObject(); + componentObject.name = nativeComponent.name; + componentObject.transform.SetParent(transform); + root = componentObject.AddComponent<T>(); + AddRenderParts(root, nativeComponent, componentObject.transform); + } +#elif VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER + private void AddAvatarComponent(GameObject componentObject, ovrAvatarComponent component) + { + OvrAvatarComponent ovrComponent = componentObject.AddComponent<OvrAvatarComponent>(); + trackedComponents.Add(component.name, ovrComponent); + + AddRenderParts(ovrComponent, component, componentObject.transform); + } +#endif + + private void AddRenderParts( + OvrAvatarComponent ovrComponent, + ovrAvatarComponent component, + Transform parent) + { + for (UInt32 renderPartIndex = 0; renderPartIndex < component.renderPartCount; renderPartIndex++) + { + GameObject renderPartObject = new GameObject(); + renderPartObject.name = GetRenderPartName(component, renderPartIndex); + + renderPartObject.transform.SetParent(parent); + renderPartObject.transform.localPosition = Vector2.zero; + renderPartObject.transform.localRotation = Quaternion.identity; + + IntPtr renderPart = GetRenderPart(component, renderPartIndex); + ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart); + OvrAvatarRenderComponent ovrRenderPart = null; + switch (type) + { + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS: + ovrRenderPart = AddSkinnedMeshRenderPBSComponent(renderPartObject, CAPI.ovrAvatarRenderPart_GetSkinnedMeshRenderPBS(renderPart)); + break; + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2: + ovrRenderPart = AddSkinnedMeshRenderPBSV2Component(renderPartObject, CAPI.ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2(renderPart)); + break; + default: + break;// throw new NotImplementedException(string.Format("Unsupported render part type: {0}", type.ToString())); + } + + if (ovrRenderPart != null) + { + ovrComponent.RenderParts.Add(ovrRenderPart); + RenderParts.Add(ovrRenderPart); + } + } + } + + private OvrAvatarSkinnedMeshRenderPBSComponent AddSkinnedMeshRenderPBSComponent(GameObject gameObject, ovrAvatarRenderPart_SkinnedMeshRenderPBS skinnedMeshRenderPBS) + { + OvrAvatarSkinnedMeshRenderPBSComponent skinnedMeshRenderer = gameObject.AddComponent<OvrAvatarSkinnedMeshRenderPBSComponent>(); + OvrAvatarAssetMesh meshAsset = (OvrAvatarAssetMesh)OvrAvatarSDKManager.Instance.GetAsset(skinnedMeshRenderPBS.meshAssetID); + SkinnedMeshRenderer renderer = meshAsset.CreateSkinnedMeshRendererOnObject(gameObject); + +#if UNITY_ANDROID + renderer.quality = SkinQuality.Bone2; +#else + renderer.quality = SkinQuality.Bone4; +#endif + renderer.updateWhenOffscreen = true; + skinnedMeshRenderer.mesh = renderer; + transform.GetChild(0).localPosition = Vector2.zero; + transform.GetChild(0).localRotation = Quaternion.identity; + transform.GetChild(0).GetComponentInChildren<OvrAvatarSkinnedMeshRenderPBSComponent>().gameObject.SetActive(false); + var shader = Shader.Find("OvrAvatar/AvatarSurfaceShaderPBS"); + renderer.sharedMaterial = CreateAvatarMaterial(gameObject.name + "_material", shader); + SetMaterialOpaque(renderer.sharedMaterial); + skinnedMeshRenderer.bones = renderer.bones; + + return skinnedMeshRenderer; + } + + private OvrAvatarSkinnedMeshPBSV2RenderComponent AddSkinnedMeshRenderPBSV2Component(GameObject gameObject, ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 skinnedMeshRenderPBSV2) + { + OvrAvatarSkinnedMeshPBSV2RenderComponent skinnedMeshRenderer = gameObject.AddComponent<OvrAvatarSkinnedMeshPBSV2RenderComponent>(); + OvrAvatarAssetMesh meshAsset = (OvrAvatarAssetMesh)OvrAvatarSDKManager.Instance.GetAsset(skinnedMeshRenderPBSV2.meshAssetID); + SkinnedMeshRenderer renderer = meshAsset.CreateSkinnedMeshRendererOnObject(gameObject); + +#if UNITY_ANDROID + renderer.quality = SkinQuality.Bone2; +#else + renderer.quality = SkinQuality.Bone4; +#endif + renderer.updateWhenOffscreen = true; + skinnedMeshRenderer.mesh = renderer; + transform.GetChild(0).localPosition = Vector2.zero; + transform.GetChild(0).localRotation = Quaternion.identity; + transform.GetChild(0).GetComponentInChildren<OvrAvatarSkinnedMeshPBSV2RenderComponent>().gameObject.SetActive(false); + var shader = Shader.Find("OvrAvatar/AvatarPBRV2Simple"); + renderer.sharedMaterial = CreateAvatarMaterial(gameObject.name + "_material", shader); + SetMaterialOpaque(renderer.sharedMaterial); + skinnedMeshRenderer.bones = renderer.bones; + + return skinnedMeshRenderer; + } + + private Material CreateAvatarMaterial(string name, Shader shader) + { + if (shader == null) + { + throw new Exception("No shader provided for avatar material."); + } + Material mat = new Material(shader); + mat.name = name; + return mat; + } + + private void SetMaterialOpaque(Material mat) + { + // Initialize shader to use geometry render queue with no blending + mat.SetOverrideTag("Queue", "Geometry"); + mat.SetOverrideTag("RenderType", "Opaque"); + mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + mat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + mat.DisableKeyword("_ALPHATEST_ON"); + mat.DisableKeyword("_ALPHABLEND_ON"); + mat.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + mat.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Geometry; + } + + private static string GetRenderPartName(ovrAvatarComponent component, uint renderPartIndex) + { + return component.name + "_renderPart_" + (int)renderPartIndex; + } + + static public IntPtr GetRenderPart(ovrAvatarComponent component, UInt32 renderPartIndex) + { + long offset = Marshal.SizeOf(typeof(IntPtr)) * renderPartIndex; + IntPtr marshalPtr = new IntPtr(component.renderParts.ToInt64() + offset); + return (IntPtr)Marshal.PtrToStructure(marshalPtr, typeof(IntPtr)); + } + +#if VIU_OCULUSVR_1_37_0_OR_NEWER + private void UpdateAvatarComponent(IntPtr nativeComponent) + { + ovrAvatarComponent nativeAvatarComponent = new ovrAvatarComponent(); + CAPI.ovrAvatarComponent_Get(nativeComponent, false, ref nativeAvatarComponent); + ConvertTransform(nativeAvatarComponent.transform, transform); + for (UInt32 renderPartIndex = 0; renderPartIndex < nativeAvatarComponent.renderPartCount; renderPartIndex++) + { + if (RenderParts.Count <= renderPartIndex) + { + break; + } + + OvrAvatarRenderComponent renderComponent = RenderParts[(int)renderPartIndex]; + IntPtr renderPart = OvrAvatar.GetRenderPart(nativeAvatarComponent, renderPartIndex); + ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart); + ovrAvatarTransform localTransform; + ovrAvatarVisibilityFlags visibilityMask; + var mesh = renderComponent.mesh; + var bones = renderComponent.bones; + switch (type) + { + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS: + visibilityMask = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetVisibilityMask(renderPart); + localTransform = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetTransform(renderPart); + if ((visibilityMask & ovrAvatarVisibilityFlags.FirstPerson) != 0) + { + renderComponent.gameObject.SetActive(true); + mesh.enabled = true; + } + + UpdateSkinnedMesh(localTransform, renderPart, bones); + + UInt64 albedoTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetAlbedoTextureAssetID(renderPart); + UInt64 surfaceTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetSurfaceTextureAssetID(renderPart); + mesh.sharedMaterial.SetTexture("_Albedo", OvrAvatarComponent.GetLoadedTexture(albedoTextureID)); + mesh.sharedMaterial.SetTexture("_Surface", OvrAvatarComponent.GetLoadedTexture(surfaceTextureID)); + break; + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2: + visibilityMask = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetVisibilityMask(renderPart); + localTransform = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetTransform(renderPart); + if ((visibilityMask & ovrAvatarVisibilityFlags.FirstPerson) != 0) + { + renderComponent.gameObject.SetActive(true); + mesh.enabled = true; + } + + UpdateSkinnedMesh(localTransform, renderPart, bones); + + ovrAvatarPBSMaterialState materialState = + CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetPBSMaterialState(renderPart); + Texture2D diffuseTexture = OvrAvatarComponent.GetLoadedTexture(materialState.albedoTextureID); + Texture2D normalTexture = OvrAvatarComponent.GetLoadedTexture(materialState.normalTextureID); + Texture2D metallicTexture = OvrAvatarComponent.GetLoadedTexture(materialState.metallicnessTextureID); + mesh.materials[0].SetTexture("_MainTex", diffuseTexture); + mesh.materials[0].SetTexture("_NormalMap", normalTexture); + mesh.materials[0].SetTexture("_RoughnessMap", metallicTexture); + break; + default: + break; + } + } + } +#elif VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER + private void UpdateAvatarComponent(ovrAvatarComponent component) + { + for (UInt32 renderPartIndex = 0; renderPartIndex < component.renderPartCount; renderPartIndex++) + { + if (RenderParts.Count <= renderPartIndex) + { + break; + } + + OvrAvatarRenderComponent renderComponent = RenderParts[(int)renderPartIndex]; + IntPtr renderPart = OvrAvatar.GetRenderPart(component, renderPartIndex); + ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart); + switch (type) + { + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS: + var mat = renderComponent.mesh.sharedMaterial; + var bones = renderComponent.bones; + ovrAvatarVisibilityFlags visibilityMask = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetVisibilityMask(renderPart); + ovrAvatarTransform localTransform = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetTransform(renderPart); + UpdateSkinnedMesh(localTransform, renderPart, bones); + + UInt64 albedoTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetAlbedoTextureAssetID(renderPart); + UInt64 surfaceTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetSurfaceTextureAssetID(renderPart); + mat.SetTexture("_Albedo", OvrAvatarComponent.GetLoadedTexture(albedoTextureID)); + mat.SetTexture("_Surface", OvrAvatarComponent.GetLoadedTexture(surfaceTextureID)); + break; + default: + break; + } + } + } +#endif + + private void UpdateSkinnedMesh(ovrAvatarTransform localTransform, IntPtr renderPart, Transform[] bones) + { + ConvertTransform(localTransform, transform); + ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart); + UInt64 dirtyJoints; + switch (type) + { + case ovrAvatarRenderPartType.SkinnedMeshRender: + dirtyJoints = CAPI.ovrAvatarSkinnedMeshRender_GetDirtyJoints(renderPart); + break; + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS: + dirtyJoints = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetDirtyJoints(renderPart); + break; + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2: + dirtyJoints = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetDirtyJoints(renderPart); + break; + default: + throw new Exception("Unhandled render part type: " + type); + } + + for (UInt32 i = 0; i < 64; i++) + { + UInt64 dirtyMask = (ulong)1 << (int)i; + // We need to make sure that we fully update the initial position of + // Skinned mesh renderers, then, thereafter, we can only update dirty joints + if ((firstSkinnedUpdate && i < bones.Length) || + (dirtyMask & dirtyJoints) != 0) + { + //This joint is dirty and needs to be updated + Transform targetBone = bones[i]; + ovrAvatarTransform transform; + switch (type) + { + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS: + transform = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetJointTransform(renderPart, i); + break; + case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2: + transform = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetJointTransform(renderPart, i); + break; + default: + throw new Exception("Unhandled render part type: " + type); + } + + ConvertTransform(transform, targetBone); + } + } + firstSkinnedUpdate = false; + } + + private void ConvertTransform(ovrAvatarTransform transform, Transform target) + { + Vector3 position = transform.position; + position.z = -position.z; + Quaternion orientation = transform.orientation; + orientation.x = -orientation.x; + orientation.y = -orientation.y; + target.localPosition = position; + target.localRotation = orientation; + target.localScale = transform.scale; + } +#endif + + public void SetDeviceIndex(uint index) + { + //Debug.Log(transform.parent.parent.name + " SetDeviceIndex " + index); + m_deviceIndex = index; +#if (VIU_OCULUSVR_1_32_0_OR_NEWER || VIU_OCULUSVR_1_36_0_OR_NEWER) && VIU_OCULUSVR_AVATAR + ovrController = this.GetComponent<OvrAvatarTouchController>(); +#endif +#if VIU_OCULUSVR && VIU_OCULUSVR_AVATAR + var headsetType = OVRPlugin.GetSystemHeadsetType(); + switch (headsetType) + { +#if !VIU_OCULUSVR_19_0_OR_NEWER + case OVRPlugin.SystemHeadset.GearVR_R320: + case OVRPlugin.SystemHeadset.GearVR_R321: + case OVRPlugin.SystemHeadset.GearVR_R322: + case OVRPlugin.SystemHeadset.GearVR_R323: + case OVRPlugin.SystemHeadset.GearVR_R324: + case OVRPlugin.SystemHeadset.GearVR_R325: + m_controllerType = ovrAvatarControllerType.Malibu; + break; + case OVRPlugin.SystemHeadset.Oculus_Go: + m_controllerType = ovrAvatarControllerType.Go; + break; +#endif +#if VIU_OCULUSVR_16_0_OR_NEWER + case OVRPlugin.SystemHeadset.Oculus_Link_Quest: +#endif + case OVRPlugin.SystemHeadset.Oculus_Quest: +#if VIU_OCULUSVR_1_37_0_OR_NEWER + case OVRPlugin.SystemHeadset.Rift_S: + m_controllerType = ovrAvatarControllerType.Quest; + break; +#endif + case OVRPlugin.SystemHeadset.Rift_DK1: + case OVRPlugin.SystemHeadset.Rift_DK2: + case OVRPlugin.SystemHeadset.Rift_CV1: + default: + m_controllerType = ovrAvatarControllerType.Touch; + break; + } +#endif + LoadPreferedModel(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9c5e50d94c8ba992d9e4716acbe0dc32aa8b17f2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OculusVRExtension/VIUOculusVRRenderModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d42871cd11ff1b84791ee885bc0bd8c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..0e4e1dde6a33cc15c46e7dbf84aa87fb874b5b81 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs @@ -0,0 +1,187 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE +using Valve.VR; +#endif + +[RequireComponent(typeof(InputField))] +public class OverlayKeyboardSample : MonoBehaviour + , ISelectHandler + , IDeselectHandler +{ + public bool minimalMode; + + public void OnSelect(BaseEventData eventData) + { + ShowKeyboard(this); + } + + public void OnDeselect(BaseEventData eventData) + { + HideKeyboard(); + } + +#if VIU_STEAMVR && UNITY_STANDALONE + + private static OverlayKeyboardSample activeKeyboard; + private static System.Text.StringBuilder strBuilder; + + private InputField textEntry; + private string text = ""; + + protected virtual void Start() + { + textEntry = GetComponent<InputField>(); + } + + protected virtual void OnDisable() + { + if (activeKeyboard == this) + { + HideKeyboard(); + } + } + + static OverlayKeyboardSample() + { +#if VIU_STEAMVR_1_2_1_OR_NEWER + SteamVR_Events.System(Valve.VR.EVREventType.VREvent_KeyboardCharInput).AddListener(OnKeyboardCharInput); + SteamVR_Events.System(Valve.VR.EVREventType.VREvent_KeyboardClosed).AddListener(OnKeyboardClosed); +#elif VIU_STEAMVR_1_2_0_OR_NEWER + SteamVR_Events.System("KeyboardCharInput").AddListener(OnKeyboardCharInput); + SteamVR_Events.System("KeyboardClosed").AddListener(OnKeyboardClosed); +#elif VIU_STEAMVR_1_1_1 + SteamVR_Utils.Event.Listen("KeyboardCharInput", OnKeyboardCharInputArgs); + SteamVR_Utils.Event.Listen("KeyboardClosed", OnKeyboardClosedArgs); +#endif + } + + public static void ShowKeyboard(OverlayKeyboardSample caller) + { + if (activeKeyboard != null) + { + HideKeyboard(); + } + + if (activeKeyboard == null) + { + var vr = SteamVR.instance; + if (vr != null) + { + caller.text = caller.textEntry.text; +#if VIU_STEAMVR_2_6_0_OR_NEWER + uint flag = 0; + if (caller.minimalMode) + { + flag = (uint)EKeyboardFlags.KeyboardFlag_Minimal; + } + vr.overlay.ShowKeyboard(0, 0, flag, "Description", 256, caller.text, 0); +#else + vr.overlay.ShowKeyboard(0, 0, "Description", 256, caller.text, caller.minimalMode, 0); +#endif + } + + activeKeyboard = caller; + } + } + + public static void HideKeyboard() + { + if (activeKeyboard != null) + { + var vr = SteamVR.instance; + if (vr != null) + { + vr.overlay.HideKeyboard(); + } + } + + activeKeyboard = null; + } +#if VIU_STEAMVR_1_1_1 + private static void OnKeyboardCharInputArgs(params object[] args) { OnKeyboardCharInput((Valve.VR.VREvent_t)args[0]); } + + private static void OnKeyboardClosedArgs(params object[] args) { OnKeyboardClosed((Valve.VR.VREvent_t)args[0]); } +#endif + private static void OnKeyboardCharInput(Valve.VR.VREvent_t arg) + { + if (activeKeyboard == null) { return; } + + var keyboard = arg.data.keyboard; + + var inputBytes = new byte[] + { + keyboard.cNewInput0, + keyboard.cNewInput1, + keyboard.cNewInput2, + keyboard.cNewInput3, + keyboard.cNewInput4, + keyboard.cNewInput5, + keyboard.cNewInput6, + keyboard.cNewInput7 + }; + + var len = 0; + for (; inputBytes[len] != 0 && len < 7; len++) ; + + var input = System.Text.Encoding.UTF8.GetString(inputBytes, 0, len); + + if (activeKeyboard.minimalMode) + { + if (input == "\b") + { + if (activeKeyboard.text.Length > 0) + { + activeKeyboard.text = activeKeyboard.text.Substring(0, activeKeyboard.text.Length - 1); + } + } + else if (input == "\x1b") + { + // Close the keyboard + HideKeyboard(); + } + else + { + activeKeyboard.text += input; + } + + activeKeyboard.textEntry.text = activeKeyboard.text; + } + else + { + var vr = SteamVR.instance; + if (vr != null) + { + if (strBuilder == null) { strBuilder = new System.Text.StringBuilder(1024); } + + vr.overlay.GetKeyboardText(strBuilder, 1024); + activeKeyboard.text = strBuilder.ToString(); + activeKeyboard.textEntry.text = activeKeyboard.text; + + strBuilder.Length = 0; + } + } + } + + private static void OnKeyboardClosed(Valve.VR.VREvent_t arg) + { + activeKeyboard = null; + } + +#else + + protected virtual void Start() + { + Debug.LogWarning("SteamVR plugin not found! install it to enable OverlayKeyboard!"); + } + + protected virtual void OnDisable() { } + + public static void ShowKeyboard(OverlayKeyboardSample caller) { } + + public static void HideKeyboard() { } +#endif +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..878cf8f4bdb21c2a9ca607c671a939c4bd1e520e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/OverlayKeyboardSample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cecce3f724b63824a858c964a8a84e1a +timeCreated: 1482750459 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs new file mode 100644 index 0000000000000000000000000000000000000000..4018a259b811331110ca82534f317f8e4dd22bd1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs @@ -0,0 +1,322 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + // This script creates and handles SteamVR_RenderModel using viveRole property or device index + [DisallowMultipleComponent] + [AddComponentMenu("VIU/Hooks/Render Model Hook", 10)] + public class RenderModelHook : MonoBehaviour, IViveRoleComponent + { + [AttributeUsage(AttributeTargets.Class)] + public class CreatorPriorityAttirbute : Attribute + { + public int priority { get; set; } + public CreatorPriorityAttirbute(int priority = 0) { this.priority = priority; } + } + + public abstract class RenderModelCreator + { + public abstract bool shouldActive { get; } + protected RenderModelHook hook { get; private set; } + + public void Initialize(RenderModelHook hook) { this.hook = hook; } + public abstract void UpdateRenderModel(); + public abstract void CleanUpRenderModel(); + } + + [CreatorPriorityAttirbute(1)] + public class DefaultRenderModelCreator : RenderModelCreator + { + private VRModuleDeviceModel m_loadedModelEnum = (VRModuleDeviceModel)(-1); + protected GameObject m_model; + + public override bool shouldActive { get { return true; } } + + public override void UpdateRenderModel() + { + var index = hook.GetModelDeviceIndex(); + + if (!VRModule.IsValidDeviceIndex(index)) + { + if (m_model != null) + { + m_model.SetActive(false); + } + } + else + { + var loadModelEnum = VRModuleDeviceModel.Unknown; + if (hook.m_overrideModel != OverrideModelEnum.DontOverride) + { + loadModelEnum = (VRModuleDeviceModel)hook.m_overrideModel; + } + else + { + loadModelEnum = VRModule.GetCurrentDeviceState(index).deviceModel; + } + + if (ChangeProp.Set(ref m_loadedModelEnum, loadModelEnum)) + { + CleanUpRenderModel(); + + var prefab = Resources.Load<GameObject>("Models/VIUModel" + m_loadedModelEnum.ToString()); + if (prefab != null) + { + m_model = Instantiate(prefab); + m_model.transform.SetParent(hook.transform, false); + m_model.gameObject.name = "VIUModel" + m_loadedModelEnum.ToString(); + + if (hook.m_overrideShader != null) + { + var renderer = m_model.GetComponentInChildren<Renderer>(); + if (renderer != null) + { + renderer.material.shader = hook.m_overrideShader; + } + } + } + } + + if (m_model != null) + { + m_model.SetActive(true); + } + } + } + + public override void CleanUpRenderModel() + { + if (m_model != null) + { + Destroy(m_model); + m_model = null; + } + } + } + + public enum Mode + { + Disable, + ViveRole, + DeivceIndex, + } + + public enum Index + { + None = -1, + Hmd, + Device1, + Device2, + Device3, + Device4, + Device5, + Device6, + Device7, + Device8, + Device9, + Device10, + Device11, + Device12, + Device13, + Device14, + Device15, + } + + public enum OverrideModelEnum + { + DontOverride = VRModuleDeviceModel.Unknown, + ViveController = VRModuleDeviceModel.ViveController, + ViveTracker = VRModuleDeviceModel.ViveTracker, + ViveBaseStation = VRModuleDeviceModel.ViveBaseStation, + OculusTouchLeft = VRModuleDeviceModel.OculusTouchLeft, + OculusTouchRight = VRModuleDeviceModel.OculusTouchRight, + OculusSensor = VRModuleDeviceModel.OculusSensor, + KnucklesLeft = VRModuleDeviceModel.KnucklesLeft, + KnucklesRight = VRModuleDeviceModel.KnucklesRight, + DaydreamController = VRModuleDeviceModel.DaydreamController, + ViveFocusFinch = VRModuleDeviceModel.ViveFocusFinch, + OculusGoController = VRModuleDeviceModel.OculusGoController, + OculusGearVrController = VRModuleDeviceModel.OculusGearVrController, + WMRControllerLeft = VRModuleDeviceModel.WMRControllerLeft, + WMRControllerRight = VRModuleDeviceModel.WMRControllerRight, + ViveCosmosControllerLeft = VRModuleDeviceModel.ViveCosmosControllerLeft, + ViveCosmosControllerRight = VRModuleDeviceModel.ViveCosmosControllerRight, + OculusQuestControllerLeft = VRModuleDeviceModel.OculusQuestControllerLeft, + OculusQuestControllerRight = VRModuleDeviceModel.OculusQuestControllerRight, + IndexHMD = VRModuleDeviceModel.IndexHMD, + IndexControllerLeft = VRModuleDeviceModel.IndexControllerLeft, + IndexControllerRight = VRModuleDeviceModel.IndexControllerRight, + } + + [SerializeField] + private Mode m_mode = Mode.ViveRole; + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.RightHand); + [SerializeField] + private Transform m_origin; + [SerializeField] + private Index m_deviceIndex = Index.Hmd; + [SerializeField] + private OverrideModelEnum m_overrideModel = OverrideModelEnum.DontOverride; + [SerializeField] + private Shader m_overrideShader = null; + + private static readonly Type[] s_creatorTypes; + private RenderModelCreator[] m_creators; + private int m_activeCreatorIndex = -1; + private int m_defaultCreatorIndex = -1; + private bool m_isQuiting; + + public ViveRoleProperty viveRole { get { return m_viveRole; } } + + public Transform origin { get { return m_origin; } set { m_origin = value; } } + + public bool applyTracking { get; set; } + + public OverrideModelEnum overrideModel { get { return m_overrideModel; } set { m_overrideModel = value; } } + + public Shader overrideShader { get { return m_overrideShader; } set { m_overrideShader = value; } } + + static RenderModelHook() + { + try + { + var creatorTypes = new List<Type>(); + foreach (var type in Assembly.GetAssembly(typeof(RenderModelCreator)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(RenderModelCreator)))) + { + creatorTypes.Add(type); + } + s_creatorTypes = creatorTypes.OrderBy(t => + { + foreach (var at in t.GetCustomAttributes(typeof(CreatorPriorityAttirbute), true)) + { + return ((CreatorPriorityAttirbute)at).priority; + } + return 0; + }).ToArray(); + } + catch (Exception e) + { + s_creatorTypes = new Type[0]; + Debug.LogError(e); + } + } + +#if UNITY_EDITOR + private void OnValidate() + { + if (isActiveAndEnabled && Application.isPlaying && VRModule.Active) + { + UpdateModel(); + } + } +#endif + private void Awake() + { + m_creators = new RenderModelCreator[s_creatorTypes.Length]; + for (int i = s_creatorTypes.Length - 1; i >= 0; --i) + { + m_creators[i] = (RenderModelCreator)Activator.CreateInstance(s_creatorTypes[i]); + m_creators[i].Initialize(this); + + if (s_creatorTypes[i] == typeof(DefaultRenderModelCreator)) + { + m_defaultCreatorIndex = i; + } + } + } + + protected virtual void OnEnable() + { + VRModule.onActiveModuleChanged += OnActiveModuleChanged; + m_viveRole.onDeviceIndexChanged += OnDeviceIndexChanged; + m_viveRole.onRoleChanged += UpdateModel; + + UpdateModel(); + } + + protected virtual void OnDisable() + { + VRModule.onActiveModuleChanged -= OnActiveModuleChanged; + m_viveRole.onDeviceIndexChanged -= OnDeviceIndexChanged; + m_viveRole.onRoleChanged -= UpdateModel; + + UpdateModel(); + } + + private void OnDeviceIndexChanged(uint deviceIndex) { UpdateModel(); } + + private void OnActiveModuleChanged(VRModuleActiveEnum module) { UpdateModel(); } + + private void OnApplicationQuit() { m_isQuiting = true; } + + public uint GetModelDeviceIndex() + { + if (!enabled) { return VRModule.INVALID_DEVICE_INDEX; } + + uint result; + switch (m_mode) + { + case Mode.ViveRole: + result = m_viveRole.GetDeviceIndex(); + break; + case Mode.DeivceIndex: + result = (uint)m_deviceIndex; + break; + case Mode.Disable: + default: + return VRModule.INVALID_DEVICE_INDEX; + } + + return result; + } + + private void UpdateModel() + { + if (m_isQuiting) { return; } + + var activeCreatorIndex = -1; + if (enabled) + { + if (m_overrideModel == OverrideModelEnum.DontOverride) + { + for (int i = 0, imax = m_creators.Length; i < imax; ++i) + { + if (m_creators[i].shouldActive) + { + activeCreatorIndex = i; + break; + } + } + } + else + { + activeCreatorIndex = m_defaultCreatorIndex; + } + } + + if (m_activeCreatorIndex != activeCreatorIndex) + { + // clean up model created from previous active creator + if (m_activeCreatorIndex >= 0) + { + m_creators[m_activeCreatorIndex].CleanUpRenderModel(); + } + m_activeCreatorIndex = activeCreatorIndex; + } + + if (m_activeCreatorIndex >= 0) + { + m_creators[m_activeCreatorIndex].UpdateRenderModel(); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fb85a381552de12f71d60c00467d0470ec540868 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6f62138db21b7ec439beba5c9b61c2d9 +timeCreated: 1489564743 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs new file mode 100644 index 0000000000000000000000000000000000000000..c9010ff7a9afa0d2ee99c17cf5e3417860d5ce68 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs @@ -0,0 +1,125 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Pointer3D; +using UnityEngine; +using UnityEngine.Serialization; + +public class ReticlePoser : MonoBehaviour +{ + public interface IMaterialChanger + { + Material reticleMaterial { get; } + } + + public Pointer3DRaycaster raycaster; + [FormerlySerializedAs("Target")] + public Transform reticleForDefaultRay; + public Transform reticleForCurvedRay; + public bool showOnHitOnly = true; + + public GameObject hitTarget; + public float hitDistance; + public Material defaultReticleMaterial; + public MeshRenderer[] reticleRenderer; + + public bool autoScaleReticle = false; + public int sizeInPixels = 50; + + private Material m_matFromChanger; +#if UNITY_EDITOR + protected virtual void Reset() + { + for (var tr = transform; raycaster == null && tr != null; tr = tr.parent) + { + raycaster = tr.GetComponentInChildren<Pointer3DRaycaster>(true); + } + + reticleRenderer = GetComponentsInChildren<MeshRenderer>(true); + } +#endif + protected virtual void LateUpdate() + { + var points = raycaster.BreakPoints; + var pointCount = points.Count; + var result = raycaster.FirstRaycastResult(); + + if ((showOnHitOnly && !result.isValid) || pointCount <= 1) + { + reticleForDefaultRay.gameObject.SetActive(false); + reticleForCurvedRay.gameObject.SetActive(false); + return; + } + + var isCurvedRay = raycaster.CurrentSegmentGenerator() != null; + + if (reticleForDefaultRay != null) { reticleForDefaultRay.gameObject.SetActive(!isCurvedRay); } + if (reticleForCurvedRay != null) { reticleForCurvedRay.gameObject.SetActive(isCurvedRay); } + + var targetReticle = isCurvedRay ? reticleForCurvedRay : reticleForDefaultRay; + if (result.isValid) + { + if (targetReticle != null) + { + targetReticle.position = result.worldPosition; + targetReticle.rotation = Quaternion.LookRotation(result.worldNormal, raycaster.transform.forward); + if (autoScaleReticle) + { + // Set the reticle size based on sizeInPixels, references: + // https://answers.unity.com/questions/268611/with-a-perspective-camera-distance-independent-siz.html + Vector3 a = Camera.main.WorldToScreenPoint(targetReticle.position); + Vector3 b = new Vector3(a.x, a.y + sizeInPixels, a.z); + Vector3 aa = Camera.main.ScreenToWorldPoint(a); + Vector3 bb = Camera.main.ScreenToWorldPoint(b); + targetReticle.localScale = Vector3.one * (aa - bb).magnitude; + } + } + + hitTarget = result.gameObject; + hitDistance = result.distance; + } + else + { + if (targetReticle != null) + { + targetReticle.position = points[pointCount - 1]; + targetReticle.rotation = Quaternion.LookRotation(points[pointCount - 1] - points[pointCount - 2], raycaster.transform.forward); + } + + hitTarget = null; + hitDistance = 0f; + } + + // Change reticle material according to IReticleMaterialChanger + var matChanger = hitTarget == null ? null : hitTarget.GetComponentInParent<IMaterialChanger>(); + var newMat = matChanger == null ? null : matChanger.reticleMaterial; + if (m_matFromChanger != newMat) + { + m_matFromChanger = newMat; + + if (newMat != null) + { + SetReticleMaterial(newMat); + } + else if (defaultReticleMaterial != null) + { + SetReticleMaterial(defaultReticleMaterial); + } + } + } + + private void SetReticleMaterial(Material mat) + { + if (reticleRenderer == null || reticleRenderer.Length == 0) { return; } + + foreach (MeshRenderer mr in reticleRenderer) + { + mr.material = mat; + } + } + + protected virtual void OnDisable() + { + reticleForDefaultRay.gameObject.SetActive(false); + reticleForCurvedRay.gameObject.SetActive(false); + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cf43670bc6a804ed926e268d5df6c016378d9a87 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/ReticlePoser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 56d295652c296b049959c933d5db7951 +timeCreated: 1476861113 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs new file mode 100644 index 0000000000000000000000000000000000000000..b76c97f4217adbcbaed19d99491d100553fd6db0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs @@ -0,0 +1,24 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [ExecuteInEditMode] + public class SteamVRCameraHook : MonoBehaviour + { + private void Awake() + { + Debug.LogWarning("SteamVRCameraHook is deprecated. Switch to VRCameraHook automatically."); + gameObject.AddComponent<VRCameraHook>(); + if (Application.isPlaying) + { + Destroy(this); + } + else + { + DestroyImmediate(this); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..83ce27a17a053c9db693ad449923d26128afc950 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRCameraHook.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bcf697fb9de885d47b4c990c8a58936a +timeCreated: 1521537950 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension.meta new file mode 100644 index 0000000000000000000000000000000000000000..60b49a70f0b29358869e8eb7dee6ab89aca26c54 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5fb8f04ff35142047a6735b76350f13b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..57d3fe92acf1848b74649914446d6481b014c582 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 944deec9325e4d148b31cc1f16621dd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..210519ef740fac41eadad5bd2ae2905d1078311b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5508bade13c14924997a8725b3cdfc34 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs new file mode 100644 index 0000000000000000000000000000000000000000..28ec5ff8acd1c14ec10c2e4c32190b4436f10bd1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs @@ -0,0 +1,228 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#if VIU_STEAMVR_2_0_0_OR_NEWER +using System; +using System.Collections.Generic; +using Valve.Newtonsoft.Json; + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + [Serializable] + public class VIUSteamVRActionFile : VIUSteamVRLoadJsonFileBase<VIUSteamVRActionFile> + { + public List<Action> actions = new List<Action>(); + public List<ActionSet> action_sets = new List<ActionSet>(); + public List<DefaultBinding> default_bindings = new List<DefaultBinding>(); + public List<Localization> localization = new List<Localization>(); + + [JsonIgnore] + private MergableDictionary<Action> m_actionTable; + [JsonIgnore] + private MergableDictionary<ActionSet> m_actionSetTable; + [JsonIgnore] + private MergableDictionary<DefaultBinding> m_defaultBindingTable; + [JsonIgnore] + private MergableDictionary<Localization> m_localizationTable; + [JsonIgnore] + private MergableDictionary<VIUSteamVRBindingFile> m_bindingFiles; + + protected override void OnAfterLoaded() + { + m_actionTable = actions.ToMergableDictionary(); + m_actionSetTable = action_sets.ToMergableDictionary(); + m_defaultBindingTable = default_bindings.ToMergableDictionary(); + m_localizationTable = localization.ToMergableDictionary(); + + m_actionTable.onNewItemWhenMerge += item => actions.Add(item); + m_actionSetTable.onNewItemWhenMerge += item => action_sets.Add(item); + m_defaultBindingTable.onNewItemWhenMerge += item => default_bindings.Add(item); + m_localizationTable.onNewItemWhenMerge += item => localization.Add(item); + + // load binding files + m_bindingFiles = new MergableDictionary<VIUSteamVRBindingFile>(); + m_bindingFiles.onNewItemWhenMerge += item => item.dirPath = dirPath; + foreach (var pair in m_defaultBindingTable) + { + var controllerType = pair.Key; + var bindingUrl = pair.Value.binding_url; + + VIUSteamVRBindingFile bindingFile; + if (VIUSteamVRBindingFile.TryLoad(dirPath, bindingUrl, out bindingFile)) + { + m_bindingFiles.Add(controllerType, bindingFile); + } + else + { + UnityEngine.Debug.LogWarning("Missing default bindings file for " + controllerType + ":" + System.IO.Path.Combine(dirPath, bindingUrl) + "!"); + } + } + } + + public bool IsMerged(VIUSteamVRActionFile dst) + { + if (!m_actionTable.IsMerged(dst.m_actionTable)) { return false; } + if (!m_actionSetTable.IsMerged(dst.m_actionSetTable)) { return false; } + if (!m_defaultBindingTable.IsMerged(dst.m_defaultBindingTable)) { return false; } + if (!m_localizationTable.IsMerged(dst.m_localizationTable)) { return false; } + if (!m_bindingFiles.IsMerged(dst.m_bindingFiles)) { return false; } + return true; + } + + public void Merge(VIUSteamVRActionFile dst) + { + m_actionTable.Merge(dst.m_actionTable); + m_actionSetTable.Merge(dst.m_actionSetTable); + m_defaultBindingTable.Merge(dst.m_defaultBindingTable); + m_localizationTable.Merge(dst.m_localizationTable); + m_bindingFiles.Merge(dst.m_bindingFiles); + } + + protected override void OnBeforeSave(string dirPash) + { + if (m_bindingFiles == null || m_bindingFiles.Count == 0) { return; } + foreach (var pair in m_bindingFiles) + { + var bindingFile = pair.Value; + bindingFile.Save(dirPash); + } + } + + [Serializable] + public class Action : IMergable<Action>, IStringKey + { + public string name; + public string type; + public string scope; + public string skeleton; + public string requirement; + + [JsonIgnore] + public string stringKey { get { return name; } } + + public bool IsMerged(Action obj) + { + if (name != obj.name) { return false; } + if (type != obj.type) { return false; } + if (scope != obj.scope) { return false; } + if (skeleton != obj.skeleton) { return false; } + if (requirement != obj.requirement) { return false; } + return true; + } + + public void Merge(Action obj) + { + type = obj.type; + scope = obj.scope; + skeleton = obj.skeleton; + requirement = obj.requirement; + } + + public Action Copy() + { + return new Action() + { + name = name, + type = type, + scope = scope, + skeleton = skeleton, + requirement = requirement, + }; + } + } + + [Serializable] + public class ActionSet : IMergable<ActionSet>, IStringKey + { + public string name; + public string usage; + + [JsonIgnore] + public string stringKey { get { return name; } } + + public bool IsMerged(ActionSet obj) + { + if (name != obj.name) { return false; } + if (usage != obj.usage) { return false; } + return true; + } + + public void Merge(ActionSet obj) + { + usage = obj.usage; + } + + public ActionSet Copy() + { + return new ActionSet() + { + name = name, + usage = usage, + }; + } + } + + [Serializable] + public class DefaultBinding : IMergable<DefaultBinding>, IStringKey + { + public string controller_type; + public string binding_url; + + [JsonIgnore] + public string stringKey { get { return controller_type; } } + + public bool IsMerged(DefaultBinding obj) + { + if (controller_type != obj.controller_type) { return false; } + return true; + } + + public void Merge(DefaultBinding obj) + { + // do nothing, don't override path, use old one + } + + public DefaultBinding Copy() + { + return new DefaultBinding() + { + controller_type = controller_type, + binding_url = binding_url, + }; + } + } + + [Serializable] + public class Localization : MergableDictionary, IMergable<Localization>, IStringKey + { + [JsonIgnore] + public string stringKey + { + get + { + string lang; + return TryGetValue("language_tag", out lang) ? lang : string.Empty; + } + } + + public Localization() : base() { } + + public Localization(Localization src) : base(src) { } + + public bool IsMerged(Localization obj) + { + return ((MergableDictionary)this).IsMerged(obj); + } + + Localization IMergable<Localization>.Copy() + { + return new Localization(this); + } + + public void Merge(Localization obj) + { + ((MergableDictionary)this).Merge(obj); + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ded384802f55b9808e4b570dff2e009c8518bd0e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRActionFile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7396a895f6aa9584998a6012e966b5c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs new file mode 100644 index 0000000000000000000000000000000000000000..a8ff1a32ce8acadd2cbe51203d7d3da607415346 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs @@ -0,0 +1,166 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#if VIU_STEAMVR_2_0_0_OR_NEWER +using System; + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + [Serializable] + public class VIUSteamVRBindingFile : VIUSteamVRLoadJsonFileBase<VIUSteamVRBindingFile>, IMergable<VIUSteamVRBindingFile> + { + public string app_key; + public string controller_type; + public string description; + public string name; + public MergableDictionary<ActionList> bindings = new MergableDictionary<ActionList>(); + + public bool IsMerged(VIUSteamVRBindingFile dst) + { + if (!bindings.IsMerged(dst.bindings)) { return false; } + return true; + } + + public void Merge(VIUSteamVRBindingFile dst) + { + bindings.Merge(dst.bindings); + } + + public VIUSteamVRBindingFile Copy() + { + return new VIUSteamVRBindingFile() + { + dirPath = dirPath, + fileName = fileName, + + app_key = app_key, + controller_type = controller_type, + description = description, + name = name, + bindings = bindings.Copy(), + }; + } + + [Serializable] + public class ActionList : IMergable<ActionList> + { + public OverridableList<Chords> chords = new OverridableList<Chords>(); + public OverridableList<Source> sources = new OverridableList<Source>(); + public OverridableList<StandardBinding> poses = new OverridableList<StandardBinding>(); + public OverridableList<StandardBinding> haptics = new OverridableList<StandardBinding>(); + public OverridableList<StandardBinding> skeleton = new OverridableList<StandardBinding>(); + + public bool IsMerged(ActionList obj) + { + if (!chords.IsMerged(obj.chords)) { return false; } + if (!sources.IsMerged(obj.sources)) { return false; } + if (!poses.IsMerged(obj.poses)) { return false; } + if (!haptics.IsMerged(obj.haptics)) { return false; } + if (!skeleton.IsMerged(obj.skeleton)) { return false; } + return true; + } + + public ActionList Copy() + { + return new ActionList() + { + chords = chords.Copy(), + poses = poses.Copy(), + haptics = haptics.Copy(), + sources = sources.Copy(), + skeleton = skeleton.Copy(), + }; + } + + public void Merge(ActionList obj) + { + chords.Merge(obj.chords); + sources.Merge(obj.sources); + poses.Merge(obj.poses); + haptics.Merge(obj.haptics); + skeleton.Merge(obj.skeleton); + } + + [Serializable] + public class Chords : IMergable<Chords> + { + public string output; + public OverridableDictionary<OverridableDictionary> inputs = new OverridableDictionary<OverridableDictionary>(); + + public bool IsMerged(Chords obj) + { + if (output != obj.output) { return false; } + if (!inputs.IsMerged(obj.inputs)) { return false; } + return true; + } + + public Chords Copy() + { + return new Chords() + { + output = output, + inputs = inputs.Copy(), + }; + } + + public void Merge(Chords obj) { throw new NotImplementedException(); } + } + + [Serializable] + public class Source : IMergable<Source> + { + public string path; + public string mode; + public OverridableDictionary parameters = new OverridableDictionary(); + public OverridableDictionary<OverridableDictionary> inputs = new OverridableDictionary<OverridableDictionary>(); + + public bool IsMerged(Source obj) + { + if (path != obj.path) { return false; } + if (mode != obj.mode) { return false; } + if (!parameters.IsMerged(obj.parameters)) { return false; } + if (!inputs.IsMerged(obj.inputs)) { return false; } + return true; + } + + public Source Copy() + { + return new Source() + { + path = path, + mode = mode, + parameters = parameters.Copy(), + inputs = inputs.Copy(), + }; + } + + public void Merge(Source obj) { throw new NotImplementedException(); } + } + + [Serializable] + public class StandardBinding : IMergable<StandardBinding> + { + public string output; + public string path; + + public bool IsMerged(StandardBinding obj) + { + if (output != obj.output) { return false; } + if (path != obj.path) { return false; } + return true; + } + + public StandardBinding Copy() + { + return new StandardBinding() + { + output = output, + path = path, + }; + } + + public void Merge(StandardBinding obj) { throw new NotImplementedException(); } + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0c8e7e3dbc63680aad405e6deeb07a3cfff5930d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRBindingFile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5645441d9f4d8b94980d01d300678bed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..e701c61ccae4b537982e7a768b2a80bc939e7176 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs @@ -0,0 +1,415 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#if VIU_STEAMVR_2_0_0_OR_NEWER +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +using Valve.Newtonsoft.Json; + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + [Serializable] + public class VIUSteamVRLoadJsonFileBase<T> where T : VIUSteamVRLoadJsonFileBase<T> + { + private static Dictionary<string, T> s_fileCache; + + [JsonIgnore] + public string dirPath { get; set; } + [JsonIgnore] + public string fileName { get; set; } + [JsonIgnore] + public string fullPath { get { return Path.Combine(dirPath, fileName); } } + [JsonIgnore] + public DateTime lastWriteTime { get; private set; } + + public static bool TryLoad(string dirPath, string fileName, out T file, bool force = false) + { + try + { + var fullPath = Path.Combine(dirPath, fileName); + if (!File.Exists(fullPath)) { file = null; return false; } + + var lastWriteTime = File.GetLastWriteTime(fullPath); + + // check cached file + if (!force && s_fileCache != null && s_fileCache.TryGetValue(fullPath, out file)) + { + if (file.lastWriteTime == lastWriteTime) + { + return true; + } + } + + file = JsonConvert.DeserializeObject<T>(File.ReadAllText(fullPath)); + file.dirPath = dirPath; + file.fileName = fileName; + file.lastWriteTime = lastWriteTime; + + if (s_fileCache == null) { s_fileCache = new Dictionary<string, T>() { { fullPath, file } }; } + else { s_fileCache[fullPath] = file; } + + file.OnAfterLoaded(); + return true; + } + catch (Exception e) + { + Debug.LogError(e); + if (s_fileCache != null) { s_fileCache.Clear(); } + file = null; + return false; + } + } + + protected virtual void OnAfterLoaded() { } + + public void Save() { Save(dirPath); } + + public void Save(string dirPath) + { + if (string.IsNullOrEmpty(dirPath)) + { + Debug.LogWarning("dirPath is empty"); + return; + } + + if (string.IsNullOrEmpty(fileName)) + { + Debug.LogWarning("fileName is empty"); + return; + } + + try + { + OnBeforeSave(dirPath); + + var json = JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); + File.WriteAllText(Path.Combine(dirPath, fileName), json); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + + protected virtual void OnBeforeSave(string dirPash) { } + } + + public interface IStringKey + { + string stringKey { get; } + } + + public interface IMergable<T> + { + bool IsMerged(T obj); + void Merge(T obj); + T Copy(); + } + + [Serializable] + public class MergableDictionary<T> : Dictionary<string, T>, IMergable<MergableDictionary<T>> where T : IMergable<T> + { + public event Action<T> onNewItemWhenMerge; + + public MergableDictionary() : base() { } + + public MergableDictionary(MergableDictionary<T> src) : base(src) { } + + public bool IsMerged(MergableDictionary<T> obj) + { + if (this == obj) { return true; } + + foreach (var pair in obj) + { + T srcV; + if (!TryGetValue(pair.Key, out srcV)) { return false; } + + if (!srcV.IsMerged(pair.Value)) { return false; } + } + + return true; + } + + public MergableDictionary<T> Copy() + { + return new MergableDictionary<T>(this); + } + + public void Merge(MergableDictionary<T> obj) + { + if (this == obj) { return; } + + foreach (var pair in obj) + { + T srcV; + if (!TryGetValue(pair.Key, out srcV)) + { + srcV = pair.Value.Copy(); + Add(pair.Key, srcV); + if (onNewItemWhenMerge != null) { onNewItemWhenMerge(srcV); } + } + else + { + srcV.Merge(pair.Value); + } + } + } + } + + [Serializable] + public class OverridableDictionary<T> : Dictionary<string, T>, IMergable<OverridableDictionary<T>> where T : IMergable<T> + { + public OverridableDictionary() : base() { } + + public OverridableDictionary(OverridableDictionary<T> src) : base(src) { } + + public bool IsMerged(OverridableDictionary<T> obj) + { + if (this == obj) { return true; } + if (Count != obj.Count) { return false; } + + foreach (var pair in obj) + { + T srcV; + if (!TryGetValue(pair.Key, out srcV)) { return false; } + + if (!srcV.IsMerged(pair.Value)) { return false; } + } + + return true; + } + + public OverridableDictionary<T> Copy() + { + return new OverridableDictionary<T>(this); + } + + public void Merge(OverridableDictionary<T> obj) + { + if (this == obj) { return; } + + Clear(); + foreach (var pair in obj) + { + Add(pair.Key, pair.Value.Copy()); + } + } + } + + [Serializable] + public class MergableList<T> : List<T>, IMergable<MergableList<T>> where T : IMergable<T> + { + private static List<bool> s_checkList; + + private void ResetCheckList() + { + if (s_checkList == null) + { + s_checkList = new List<bool>(); + } + else + { + s_checkList.Clear(); + } + + foreach (var item in this) { s_checkList.Add(false); } + } + + private bool FoundInCheckList(T item) + { + for (int i = 0, imax = s_checkList.Count; i < imax; ++i) + { + if (s_checkList[i]) { continue; } + + if (this[i].IsMerged(item)) + { + s_checkList[i] = true; + return true; + } + } + return false; + } + + public MergableList() : base() { } + + public MergableList(MergableList<T> src) : base(src) { } + + public bool IsMerged(MergableList<T> obj) + { + if (this == obj) { return true; } + + ResetCheckList(); + + foreach (var item in obj) + { + if (!FoundInCheckList(item)) { return false; } + } + + return true; + } + + public MergableList<T> Copy() + { + return new MergableList<T>(this); + } + + public void Merge(MergableList<T> obj) + { + if (this == obj) { return; } + + ResetCheckList(); + + foreach (var item in obj) + { + if (!FoundInCheckList(item)) { Add(item.Copy()); } + } + } + } + + [Serializable] + public class OverridableList<T> : MergableList<T>, IMergable<OverridableList<T>> where T : IMergable<T> + { + public OverridableList() : base() { } + + public OverridableList(OverridableList<T> src) : base(src) { } + + public bool IsMerged(OverridableList<T> obj) + { + if (this == obj) { return true; } + if (Count != obj.Count) { return false; } + return base.IsMerged(obj); + } + + public new OverridableList<T> Copy() + { + return new OverridableList<T>(this); + } + + public void Merge(OverridableList<T> obj) + { + if (this == obj) { return; } + + Clear(); + foreach (var item in obj) + { + Add(item.Copy()); + } + } + } + + [Serializable] + public class MergableDictionary : Dictionary<string, string>, IMergable<MergableDictionary> + { + public event Action<string> onNewItemWhenMerge; + + public MergableDictionary() : base() { } + + public MergableDictionary(MergableDictionary src) : base(src) { } + + public bool IsMerged(MergableDictionary obj) + { + if (this == obj) { return true; } + + foreach (var pair in obj) + { + string srcV; + if (!TryGetValue(pair.Key, out srcV)) { return false; } + + if (srcV != pair.Value) { return false; } + } + + return true; + } + + public MergableDictionary Copy() + { + return new MergableDictionary(this); + } + + public void Merge(MergableDictionary obj) + { + if (this == obj) { return; } + + foreach (var pair in obj) + { + string srcV; + if (!TryGetValue(pair.Key, out srcV)) + { + srcV = pair.Value; + Add(pair.Key, srcV); + if (onNewItemWhenMerge != null) { onNewItemWhenMerge(srcV); } + } + else + { + this[pair.Key] = pair.Value; + } + } + } + } + + [Serializable] + public class OverridableDictionary : Dictionary<string, string>, IMergable<OverridableDictionary> + { + public OverridableDictionary() : base() { } + + public OverridableDictionary(OverridableDictionary src) : base(src) { } + + public bool IsMerged(OverridableDictionary obj) + { + if (this == obj) { return true; } + if (Count != obj.Count) { return false; } + + foreach (var pair in obj) + { + string srcV; + if (!TryGetValue(pair.Key, out srcV)) { return false; } + + if (srcV != pair.Value) { return false; } + } + + return true; + } + + public OverridableDictionary Copy() + { + return new OverridableDictionary(this); + } + + public void Merge(OverridableDictionary obj) + { + if (this == obj) { return; } + + Clear(); + foreach (var pair in obj) + { + this[pair.Key] = pair.Value; + } + } + } + + public static class SerializeExtension + { + public static MergableDictionary<T> ToMergableDictionary<T>(this List<T> list) where T : IMergable<T>, IStringKey + { + var result = new MergableDictionary<T>(); + foreach (var item in list) + { + if (string.IsNullOrEmpty(item.stringKey)) + { + Debug.LogWarning("MergableDictionary key cannot be null"); + } + else if (result.ContainsKey(item.stringKey)) + { + Debug.LogWarning("Duplicate key(" + item.stringKey + ") found"); + } + else + { + result.Add(item.stringKey, item); + } + } + return result; + } + } +} +#endif \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..16ff12164c273172bf8e1cba8c5ecace4120429a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRLoadJsonFileBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26b018b07b2f1d34bb2d1f2518fa10a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..baa698f26469c22628a808e03e902023fd02c6d8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs @@ -0,0 +1,117 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Text; +using UnityEditor; +using UnityEngine; +#if VIU_STEAMVR +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + [CustomEditor(typeof(VIUSteamVRRenderModel)), CanEditMultipleObjects] + public class VIUSteamVRRenderModelEditr : Editor + { + private static GUIContent[] s_renderModelNames; + + private SerializedProperty m_scriptProp; + private SerializedProperty m_modelOverrideProp; + private SerializedProperty m_shaderOverrideProp; + private SerializedProperty m_updateDynamicallyProp; + + private int m_selectedModelIndex; + + protected virtual void OnEnable() + { + m_scriptProp = serializedObject.FindProperty("m_Script"); + m_modelOverrideProp = serializedObject.FindProperty("m_modelOverride"); + m_shaderOverrideProp = serializedObject.FindProperty("m_shaderOverride"); + m_updateDynamicallyProp = serializedObject.FindProperty("m_updateDynamically"); + + // Load render model names if necessary. + if (s_renderModelNames == null) + { + s_renderModelNames = LoadRenderModelNames(); + } + + // Update renderModelIndex based on current modelOverride value. + m_selectedModelIndex = 0; + var selectedModelName = m_modelOverrideProp.stringValue; + if (!string.IsNullOrEmpty(selectedModelName)) + { + for (int i = 1, imax = s_renderModelNames.Length; i < imax; i++) + { + if (selectedModelName == s_renderModelNames[i].text) + { + m_selectedModelIndex = i; + break; + } + } + } + } + + private static GUIContent[] LoadRenderModelNames() + { + var results = default(GUIContent[]); +#if VIU_STEAMVR + var needsShutdown = false; + var vrRenderModels = OpenVR.RenderModels; + if (vrRenderModels == null) + { + var error = EVRInitError.None; + if (!SteamVR.active && !SteamVR.usingNativeSupport) + { + OpenVR.Init(ref error, EVRApplicationType.VRApplication_Utility); + vrRenderModels = OpenVR.RenderModels; + needsShutdown = true; + } + } + + if (vrRenderModels != null) + { + var strBuilder = new StringBuilder(); + var count = vrRenderModels.GetRenderModelCount(); + results = new GUIContent[count + 1]; + results[0] = new GUIContent("None"); + + for (uint i = 0; i < count; i++) + { + var strLen = vrRenderModels.GetRenderModelName(i, strBuilder, 0); + if (strLen == 0) { continue; } + + strBuilder.EnsureCapacity((int)strLen); + vrRenderModels.GetRenderModelName(i, strBuilder, strLen); + results[i + 1] = new GUIContent(strBuilder.ToString()); + } + } + + if (needsShutdown) + { + OpenVR.Shutdown(); + } +#endif + return results == null ? new GUIContent[] { new GUIContent("None") } : results; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + GUI.enabled = false; + EditorGUILayout.PropertyField(m_scriptProp); + GUI.enabled = true; + + var selectedIndex = EditorGUILayout.Popup(new GUIContent("Model Override", VIUSteamVRRenderModel.MODEL_OVERRIDE_WARNNING), m_selectedModelIndex, s_renderModelNames); + if (selectedIndex != m_selectedModelIndex) + { + m_selectedModelIndex = selectedIndex; + m_modelOverrideProp.stringValue = selectedIndex == 0 ? string.Empty : s_renderModelNames[selectedIndex].text; + } + + EditorGUILayout.PropertyField(m_shaderOverrideProp); + EditorGUILayout.PropertyField(m_updateDynamicallyProp); + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1e54c5379f8e8bee3e14be98a9493eb30b6593d1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/Editor/VIUSteamVRRenderModelEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e021993f4995244a993c9ea9116761d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings.meta new file mode 100644 index 0000000000000000000000000000000000000000..023086939aeadf1b87d00fc2eeb770ed686687f6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8b05c9946c6cdf479952d366a19fccd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json new file mode 100644 index 0000000000000000000000000000000000000000..6f9ac7e1828d47c2c7e2cdee0feab499cad6a45e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json @@ -0,0 +1,353 @@ +{ + "actions": [ + { + "name": "/actions/htc_viu/in/viu_press_00", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_01", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_02", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_03", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_04", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_05", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_06", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_07", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_31", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_32", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_33", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_34", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_35", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_00", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_01", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_02", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_03", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_04", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_05", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_06", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_07", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_31", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_32", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_33", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_34", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_35", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/out/viu_vib_01", + "type": "vibration", + "requirement": "optional" + } + ], + "action_sets": [ + { + "name": "/actions/htc_viu", + "usage": "leftright" + } + ], + "default_bindings": [ + { + "controller_type": "vive_cosmos", + "binding_url": "bindings_vive_cosmos.json" + }, + { + "controller_type": "vive_cosmos_controller", + "binding_url": "bindings_vive_cosmos_controller.json" + }, + { + "controller_type": "vive_controller", + "binding_url": "bindings_vive_controller.json" + }, + { + "controller_type": "oculus_touch", + "binding_url": "bindings_oculus_touch.json" + }, + { + "controller_type": "knuckles", + "binding_url": "bindings_knuckles.json" + }, + { + "controller_type": "holographic_controller", + "binding_url": "bindings_holographic_controller.json" + }, + { + "controller_type": "holographic_hmd", + "binding_url": "bindings_holographic_hmd.json" + }, + { + "controller_type": "rift", + "binding_url": "bindings_rift.json" + }, + { + "controller_type": "knuckles_ev1", + "binding_url": "bindings_knuckles_ev1.json" + }, + { + "controller_type": "vive", + "binding_url": "bindings_vive.json" + }, + { + "controller_type": "vive_pro", + "binding_url": "bindings_vive_pro.json" + }, + { + "controller_type": "vive_tracker", + "binding_url": "bindings_vive_tracker.json" + }, + { + "controller_type": "vive_tracker_handed", + "binding_url": "bindings_vive_tracker_handed.json" + }, + { + "controller_type": "vive_tracker_left_foot", + "binding_url": "bindings_vive_tracker_left_foot.json" + }, + { + "controller_type": "vive_tracker_right_foot", + "binding_url": "bindings_vive_tracker_right_foot.json" + }, + { + "controller_type": "vive_tracker_left_shoulder", + "binding_url": "bindings_vive_tracker_left_shoulder.json" + }, + { + "controller_type": "vive_tracker_right_shoulder", + "binding_url": "bindings_vive_tracker_right_shoulder.json" + }, + { + "controller_type": "vive_tracker_waist", + "binding_url": "bindings_vive_tracker_waist.json" + }, + { + "controller_type": "vive_tracker_chest", + "binding_url": "bindings_vive_tracker_chest.json" + }, + { + "controller_type": "vive_tracker_camera", + "binding_url": "bindings_vive_tracker_camera.json" + }, + { + "controller_type": "vive_tracker_keyboard", + "binding_url": "bindings_vive_tracker_keyboard.json" + } + ], + "localization": [ + { + "language_tag": "en_US", + "/actions/htc_viu/in/viu_press_00": "Press00 (System)", + "/actions/htc_viu/in/viu_press_01": "Press01 (ApplicationMenu)", + "/actions/htc_viu/in/viu_press_02": "Press02 (Grip)", + "/actions/htc_viu/in/viu_press_03": "Press03 (DPadLeft)", + "/actions/htc_viu/in/viu_press_04": "Press04 (DPadUp)", + "/actions/htc_viu/in/viu_press_05": "Press05 (DPadRight)", + "/actions/htc_viu/in/viu_press_06": "Press06 (DPadDown)", + "/actions/htc_viu/in/viu_press_07": "Press07 (A)", + "/actions/htc_viu/in/viu_press_31": "Press31 (ProximitySensor)", + "/actions/htc_viu/in/viu_press_32": "Press32 (Touchpad)", + "/actions/htc_viu/in/viu_press_33": "Press33 (Trigger)", + "/actions/htc_viu/in/viu_press_34": "Press34 (CapSenseGrip)", + "/actions/htc_viu/in/viu_press_35": "Press35 (Bumper)", + "/actions/htc_viu/in/viu_touch_00": "Touch00 (System)", + "/actions/htc_viu/in/viu_touch_01": "Touch01 (ApplicationMenu)", + "/actions/htc_viu/in/viu_touch_02": "Touch02 (Grip)", + "/actions/htc_viu/in/viu_touch_03": "Touch03 (DPadLeft)", + "/actions/htc_viu/in/viu_touch_04": "Touch04 (DPadUp)", + "/actions/htc_viu/in/viu_touch_05": "Touch05 (DPadRight)", + "/actions/htc_viu/in/viu_touch_06": "Touch06 (DPadDown)", + "/actions/htc_viu/in/viu_touch_07": "Touch07 (A)", + "/actions/htc_viu/in/viu_touch_31": "Touch31 (ProximitySensor)", + "/actions/htc_viu/in/viu_touch_32": "Touch32 (Touchpad)", + "/actions/htc_viu/in/viu_touch_33": "Touch33 (Trigger)", + "/actions/htc_viu/in/viu_touch_34": "Touch34 (CapSenseGrip)", + "/actions/htc_viu/in/viu_touch_35": "Touch35 (Bumper)", + "/actions/htc_viu/in/viu_axis_0x": "Axis0 X (TouchpadX)", + "/actions/htc_viu/in/viu_axis_0y": "Axis0 Y (TouchpadY)", + "/actions/htc_viu/in/viu_axis_1x": "Axis1 X (Trigger)", + "/actions/htc_viu/in/viu_axis_1y": "Axis1 Y", + "/actions/htc_viu/in/viu_axis_2x": "Axis2 X (CapSenseGrip)", + "/actions/htc_viu/in/viu_axis_2y": "Axis2 Y", + "/actions/htc_viu/in/viu_axis_3x": "Axis3 X (IndexCurl)", + "/actions/htc_viu/in/viu_axis_3y": "Axis3 Y (MiddleCurl)", + "/actions/htc_viu/in/viu_axis_4x": "Axis4 X (RingCurl)", + "/actions/htc_viu/in/viu_axis_4y": "Axis4 Y (PinkyCurl)", + "/actions/htc_viu/in/viu_axis_0xy": "Axis0 X&Y (Touchpad)", + "/actions/htc_viu/in/viu_axis_1xy": "Axis1 X&Y", + "/actions/htc_viu/in/viu_axis_2xy": "Axis2 X&Y (Thumbstick)", + "/actions/htc_viu/in/viu_axis_3xy": "Axis3 X&Y", + "/actions/htc_viu/in/viu_axis_4xy": "Axis4 X&Y", + "/actions/htc_viu/out/viu_vib_01": "Vibration" + } + ] +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..a470f7a15119fb5ad992960a0db0ecca7b601a62 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/actions.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 05ca4e26fdf42724dacba2c263f97647 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..7b15410f70d7f9d0b9767445ccc1096c207a4463 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json @@ -0,0 +1,155 @@ +{ + "controller_type": "holographic_controller", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/application_menu" + }, + { + "inputs": { + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + } + }, + "mode": "joystick", + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + } + }, + "mode": "joystick", + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/right/input/grip" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..8c3bb7d74d5bad75456d60da7ee87f16d0f38adc --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_controller.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9138783eeba3be41bdbaa018dc7c856 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json new file mode 100644 index 0000000000000000000000000000000000000000..ba6e62906eff8550f8fdbe8e6d10545a565c003d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json @@ -0,0 +1,18 @@ +{ + "controller_type": "holographic_hmd", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..7d039df749bcbf889ebf24be621e876ffa3cda16 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_holographic_hmd.json.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 568ed493229001f46974af3fcc6f661e +timeCreated: 1544604280 +licenseType: Store +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json new file mode 100644 index 0000000000000000000000000000000000000000..a38e71986413a49230bc67eb9e375bf3eb644ee0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json @@ -0,0 +1,277 @@ +{ + "controller_type": "knuckles", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/right/input/system" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/left/input/system" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/b" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/b" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "parameters": { + "force_input": "force" + }, + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "parameters": { + "force_input": "force" + }, + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/right/input/a" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/left/input/a" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "joystick", + "path": "/user/hand/right/input/thumbstick" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "joystick", + "path": "/user/hand/left/input/thumbstick" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/index" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/index" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/middle" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/middle" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/ring" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/ring" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/pinky" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/pinky" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..861b95144a3c5456200e7605bc2c790d80ab914a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41cfbea620b19c04ba9723174e14549f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json new file mode 100644 index 0000000000000000000000000000000000000000..2c17566e02aee59422d62f48b6a458a05761b076 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json @@ -0,0 +1,229 @@ +{ + "controller_type": "knuckles_ev1", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/left/input/a" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/right/input/a" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/b" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/b" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/index" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/ring" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/pinky" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/finger/middle" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/ring" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/pinky" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/middle" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/finger/index" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..e275cac69c6dcc60117da8aadbaeacb89d4879b7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_knuckles_ev1.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01616f3a33adf5b4f84bb491b07c2214 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json new file mode 100644 index 0000000000000000000000000000000000000000..eb19d1c7d2c2bf3356e0b48d873ef1337e58fb92 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json @@ -0,0 +1,227 @@ +{ + "controller_type": "oculus_touch", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "joystick", + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/left/input/x" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/y" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "trigger", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "joystick", + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + }, + "mode": "button", + "path": "/user/hand/right/input/a" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/b" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_34" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_34" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_34" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_34" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..1e1cb6a4e8d3a2ef7ced612f14ca32c141f8fec3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_oculus_touch.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 355fee3a63ac5ff459016973f40e528e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json new file mode 100644 index 0000000000000000000000000000000000000000..e6ba0e66163bb57ef23287cb24f010881a57da99 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json @@ -0,0 +1,18 @@ +{ + "controller_type": "rift", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..1121556d42c2ba442fc9b4ab5fcbe42f09f9225b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_rift.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 29e4f13e0b006684d9ef8c6a98937a65 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json new file mode 100644 index 0000000000000000000000000000000000000000..39c440202967eddf63a7f03ecfde3549de1a36f3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json @@ -0,0 +1,18 @@ +{ + "controller_type": "vive", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..3fd8d6b29af6313c311da9e580a7ee0d0e8d6657 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bd0ed27250acc854cb197eb0bb5d5ffa +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..8dac3bbb325f8fb5fe4ab363a32489e4a481278d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json @@ -0,0 +1,152 @@ +{ + "controller_type": "vive_controller", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/application_menu" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode": "trackpad", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "button", + "parameters": { + "haptic_amplitude": "0" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..72e54ae6185fd75926ba51e3df7adea731d09633 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_controller.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1c91c9920a3427348aab88c310a6e0d5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json new file mode 100644 index 0000000000000000000000000000000000000000..56721314b3c7050fb419ab7ebb3536edb87786c3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json @@ -0,0 +1,18 @@ +{ + "controller_type": "vive_cosmos", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..aba84d3a9d60b156b7b824ab265004e28d6a81ab --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b84e1d550c4b35a4fb330b7fa4789c2c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..1213d04b2a428116b424ca228665e9ba473c5206 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json @@ -0,0 +1,187 @@ +{ + "controller_type": "vive_cosmos_controller", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_33" + }, + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_1x" + }, + "touch" : { + "output" : "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_32" + }, + "position" : { + "output" : "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch" : { + "output" : "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_02" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/grip" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_07" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/x" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_01" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/y" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_35" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/bumper" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/joystick_cap/raw_value" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger_cap/raw_value" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_33" + }, + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_1x" + }, + "touch" : { + "output" : "/actions/htc_viu/in/viu_touch_33" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_32" + }, + "position" : { + "output" : "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch" : { + "output" : "/actions/htc_viu/in/viu_touch_32" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_02" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/grip" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_07" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/a" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_01" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/b" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/htc_viu/in/viu_press_35" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/bumper" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_4x" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/joystick_cap/raw_value" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/htc_viu/in/viu_axis_4y" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger_cap/raw_value" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..5306038c3f4f65fe334be27e25fa53b0f6342011 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_cosmos_controller.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 330a6933b4cc3064396c9d709b2271db +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json new file mode 100644 index 0000000000000000000000000000000000000000..f2caec2b37442ce60b2486dca2c5e067c7b6edce --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json @@ -0,0 +1,18 @@ +{ + "controller_type": "vive_pro", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..4c38d0ddb1bf7cf2ae324fa74187136fbcd2740f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_pro.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e2f5201bb7a424246b89c3f2e571d5b6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json new file mode 100644 index 0000000000000000000000000000000000000000..6c71fc48af4dbd5c4097d741b7e5d66309c553f1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json @@ -0,0 +1,109 @@ +{ + "controller_type": "vive_tracker", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/left/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/right/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/hand/left/input/thumb" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/hand/right/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..db5bd0562c573d6b0ef469d0a6c6bfbb2dc9c168 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6bf52c82ecf8cd4bbd0e5b87ea95c0d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json new file mode 100644 index 0000000000000000000000000000000000000000..d330830aaeff72c9375e343462d10edb51c8b73e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_camera", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/camera/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/camera/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/camera/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/camera/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/camera/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/camera/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..b91d271ff12fe3fe43a065a15a00ac06522fb0b1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_camera.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a1254caadb877a54d896c61358e97909 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json new file mode 100644 index 0000000000000000000000000000000000000000..5245024d075fd9a336823188137fbf97050ff1d0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_chest", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/chest/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/chest/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/chest/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/chest/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/chest/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/chest/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..9c9eadc205533f85fcc6624881c07135916b8d67 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_chest.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fba9f1ffb8661534f92dbc5bd29cec78 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json new file mode 100644 index 0000000000000000000000000000000000000000..1edfc8423df4019464b1ea85acc26faf94a05fac --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json @@ -0,0 +1,109 @@ +{ + "controller_type": "vive_tracker_handed", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/left/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/hand/right/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/left/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/hand/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/hand/left/input/thumb" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/hand/right/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..9ca85d7edb4cf9bf05199443101be4c28e8c30a9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_handed.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 372339b8b8752754fbe1774e2fb42a40 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json new file mode 100644 index 0000000000000000000000000000000000000000..8d773185fb69e06e7ae309198f19e58aac7ca0eb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_keyboard", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/keyboard/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/keyboard/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/keyboard/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/keyboard/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/keyboard/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/keyboard/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..14376f72727a6cb4dbb57aed4323e9b7e85a6fca --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_keyboard.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 46915590eaf48c9448a9834b29227c66 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json new file mode 100644 index 0000000000000000000000000000000000000000..3fce33b6dda6fc6cad8ea0694d4f1a75941a378f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_left_foot", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/foot/left/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/foot/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/foot/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/foot/left/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/foot/left/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/foot/left/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..283dcb28ed063c9e45e80f2df0ee7f336200605d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_foot.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d47107b41e98733459b6f0bcd9a6cf2f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json new file mode 100644 index 0000000000000000000000000000000000000000..e448a9db884a29d4b058f0677c48fc16531b7912 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_left_shoulder", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/shoulder/left/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/shoulder/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/shoulder/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/shoulder/left/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/shoulder/left/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/shoulder/left/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..5db64a143e5181e247dfd98ad429ab01a9ec24f7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_left_shoulder.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c25b50258289bb64d97bb639c5fbb02e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json new file mode 100644 index 0000000000000000000000000000000000000000..72456b5d48ff7aa4a5d07a89fcaffbfbd93bcd1e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_right_foot", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/foot/right/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/foot/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/foot/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/foot/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/foot/right/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/foot/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..f726e2f1a2ab7b615f387a03e5f5955243f2f273 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_foot.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eef21256e7cf33c448eafcab958e48b4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json new file mode 100644 index 0000000000000000000000000000000000000000..b9008810e83c50a4d939beed4c4b62fc45f9d0e6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_right_shoulder", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/shoulder/right/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/shoulder/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/shoulder/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/shoulder/right/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/shoulder/right/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/shoulder/right/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..38f9fd25e61b38951c053cc246c06ba81993cf74 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_right_shoulder.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a794b595f8c3fb84e9c7fdc7d122e7a5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json new file mode 100644 index 0000000000000000000000000000000000000000..ba4e61a3c31b2ea66ee6de7c8720cf6af32435a8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json @@ -0,0 +1,60 @@ +{ + "controller_type": "vive_tracker_waist", + "bindings": { + "/actions/htc_viu": { + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + }, + "mode": "button", + "path": "/user/waist/input/power" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + }, + "mode": "button", + "path": "/user/waist/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + }, + "mode": "button", + "path": "/user/waist/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + }, + "mode": "button", + "path": "/user/waist/input/application_menu" + }, + { + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + }, + "mode": "button", + "path": "/user/waist/input/thumb" + } + ], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/waist/output/haptic" + } + ] + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..e82301d39f98617612a2574e88564145b52231ed --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/PartialInputBindings/bindings_vive_tracker_waist.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b39db7f54bfc9664fbbc5ed1848815ca +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..00b2406aec0a8aede74f4557db6ea52043e53b48 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs @@ -0,0 +1,368 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System.Collections.Generic; +using UnityEngine; +#if VIU_STEAMVR && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + // Only works in playing mode + public class VIUSteamVRRenderModel : MonoBehaviour + { + private struct ChildTransforms + { + public Transform root; + public Transform attach; + } + + // Name of the sub-object which represents the "local" coordinate space for each component. + public const string LOCAL_TRANSFORM_NAME = "attach"; + + public const string MODEL_OVERRIDE_WARNNING = "Model override is really only meant to be used in " + + "the scene view for lining things up. Use tracked device " + + "index instead to ensure the correct model is displayed for all users."; + + [Tooltip(MODEL_OVERRIDE_WARNNING)] + [SerializeField] + private string m_modelOverride; + + [Tooltip("Shader to apply to model.")] + [SerializeField] + private Shader m_shaderOverride; + + [Tooltip("Update transforms of components at runtime to reflect user action.")] + [SerializeField] + private bool m_updateDynamically = true; + + private uint m_deviceIndex = VRModule.INVALID_DEVICE_INDEX; + private MeshFilter m_meshFilter; + private MeshRenderer m_meshRenderer; + private IndexedTable<string, ChildTransforms> m_chilTransforms = new IndexedTable<string, ChildTransforms>(); + private IndexedTable<int, Material> m_materials = new IndexedTable<int, Material>(); + private HashSet<string> m_loadingRenderModels = new HashSet<string>(); + private bool m_isAppQuit; + + private string preferedModelName + { + get + { + if (!string.IsNullOrEmpty(m_modelOverride)) { return m_modelOverride; } +#if UNITY_EDITOR + if (!Application.isPlaying) + { + return string.Empty; + } + else +#endif + { + return VRModule.GetCurrentDeviceState(m_deviceIndex).renderModelName; + } + } + } + + private Shader preferedShader { get { return m_shaderOverride == null ? Shader.Find("Standard") : m_shaderOverride; } } + + public bool updateDynamically { get { return m_updateDynamically; } set { m_updateDynamically = value; } } + public bool isLoadingModel { get { return m_loadingRenderModels.Count > 0; } } + public string loadedModelName { get; private set; } + public bool isModelLoaded { get { return !string.IsNullOrEmpty(loadedModelName); } } + public Shader loadedShader { get; private set; } + + public string modelOverride + { + get + { + return m_modelOverride; + } + set + { + m_modelOverride = value; + LoadPreferedModel(); + } + } + + public Shader shaderOverride + { + get + { + return m_shaderOverride; + } + set + { + m_shaderOverride = value; + SetPreferedShader(); + } + } + +#if UNITY_EDITOR + private void OnValidate() + { + if (Application.isPlaying) + { + UnityEditor.EditorApplication.delayCall += () => + { + if (!m_isAppQuit && this != null && isActiveAndEnabled) + { + LoadPreferedModel(); + SetPreferedShader(); + } + }; + } + } +#endif + + private void Update() + { + if (m_updateDynamically) + { + UpdateComponents(); + } + } + + private void OnEnable() + { + LoadPreferedModel(); + } + + private void OnDestroy() + { + ClearModel(); + } + + private void OnApplicationQuit() + { + m_isAppQuit = true; + } + + public void ClearModel() + { + if (!isModelLoaded) { return; } + + if (m_meshRenderer != null) { Destroy(m_meshRenderer); } + if (m_meshFilter != null) { Destroy(m_meshFilter); } + + for (int i = 0, imax = m_chilTransforms.Count; i < imax; ++i) + { + var c = m_chilTransforms.GetValueByIndex(i); + if (c.root == null) { continue; } + Destroy(c.root.gameObject); + } + + m_chilTransforms.Clear(); + m_materials.Clear(); + loadedModelName = string.Empty; + loadedShader = null; + } + + private void SetPreferedShader() + { + SetShader(preferedShader); + } + + private void SetShader(Shader newShader) + { + if (loadedShader == newShader) { return; } + + loadedShader = newShader; + + if (m_materials == null) { return; } + + for (int i = 0, imax = m_materials.Count; i < imax; ++i) + { + var mat = m_materials.GetValueByIndex(i); + if (mat != null) + { + mat.shader = newShader; + } + } + } + + private void LoadPreferedModel() + { + LoadModel(preferedModelName); + } + + private void LoadModel(string renderModelName) + { + //Debug.Log(transform.parent.parent.name + " Try LoadModel " + renderModelName); +#if UNITY_EDITOR + if (!Application.isPlaying) + { + Debug.LogWarning("LoadModel failed! This function only works in playing mode"); + return; + } +#endif + if (string.IsNullOrEmpty(loadedModelName) && string.IsNullOrEmpty(renderModelName)) { return; } + + if (loadedModelName == renderModelName) { return; } + + if (m_loadingRenderModels.Contains(renderModelName)) { return; } + + ClearModel(); + + if (!m_isAppQuit && !string.IsNullOrEmpty(renderModelName)) + { + //Debug.Log(transform.parent.parent.name + " LoadModel " + renderModelName); + m_loadingRenderModels.Add(renderModelName); + VIUSteamVRRenderModelLoader.Load(renderModelName, OnLoadModelComplete); + } + } + + private void OnLoadModelComplete(string renderModelName) + { + m_loadingRenderModels.Remove(renderModelName); + + if (loadedModelName == renderModelName) { return; } + if (preferedModelName != renderModelName) { return; } + if (!isActiveAndEnabled) { return; } + //Debug.Log(transform.parent.parent.name + " OnLoadModelComplete " + renderModelName); + ClearModel(); + + VIUSteamVRRenderModelLoader.RenderModel renderModel; + if (!VIUSteamVRRenderModelLoader.renderModelsCache.TryGetValue(renderModelName, out renderModel)) { return; } + + if (loadedShader == null) { loadedShader = preferedShader; } + + if (renderModel.childCount == 0) + { + VIUSteamVRRenderModelLoader.Model model; + if (VIUSteamVRRenderModelLoader.modelsCache.TryGetValue(renderModelName, out model)) + { + Material material; + if (!m_materials.TryGetValue(model.textureID, out material)) + { + if (!renderModel.TryCreateMaterialForTexture(model.textureID, loadedShader, out material)) + { + material = new Material(loadedShader); + } + + m_materials.Add(model.textureID, material); + } + + m_meshFilter = gameObject.AddComponent<MeshFilter>(); + m_meshFilter.mesh = model.mesh; + m_meshRenderer = gameObject.AddComponent<MeshRenderer>(); + m_meshRenderer.sharedMaterial = material; + } + } + else + { + for (int i = 0, imax = renderModel.childCount; i < imax; ++i) + { + var childName = renderModel.childCompNames[i]; + var modelName = renderModel.childModelNames[i]; + if (string.IsNullOrEmpty(childName) || string.IsNullOrEmpty(modelName)) { continue; } + + if (!m_chilTransforms.ContainsKey(childName)) + { + var root = new GameObject(childName).transform; + + root.SetParent(transform, false); + root.gameObject.layer = gameObject.layer; + + VIUSteamVRRenderModelLoader.Model model; + if (VIUSteamVRRenderModelLoader.modelsCache.TryGetValue(modelName, out model)) + { + Material material; + if (!m_materials.TryGetValue(model.textureID, out material)) + { + if (!renderModel.TryCreateMaterialForTexture(model.textureID, loadedShader, out material)) + { + material = new Material(loadedShader); + } + + m_materials.Add(model.textureID, material); + } + + root.gameObject.AddComponent<MeshFilter>().mesh = model.mesh; + root.gameObject.AddComponent<MeshRenderer>().sharedMaterial = material; + } + + // Also create a child 'attach' object for attaching things. + var attach = new GameObject(LOCAL_TRANSFORM_NAME).transform; + attach.SetParent(root, false); + attach.gameObject.layer = gameObject.layer; + + m_chilTransforms.Add(childName, new ChildTransforms() + { + root = root, + attach = attach, + }); + } + } + } + + loadedModelName = renderModelName; + } + + private void UpdateComponents() + { +#if VIU_STEAMVR && UNITY_STANDALONE + if (!isModelLoaded) { return; } + + if (m_chilTransforms.Count == 0) { return; } + + var vrSystem = OpenVR.System; + if (vrSystem == null) { return; } + + var vrRenderModels = OpenVR.RenderModels; + if (vrRenderModels == null) { return; } + + for (int i = 0, imax = m_chilTransforms.Count; i < imax; ++i) + { + var name = m_chilTransforms.GetKeyByIndex(i); + + RenderModel_ComponentState_t state; + if (!TryGetComponentState(vrSystem, vrRenderModels, name, out state)) { continue; } + + var comp = m_chilTransforms.GetValueByIndex(i); + + var compPose = new SteamVR_Utils.RigidTransform(state.mTrackingToComponentRenderModel); + comp.root.localPosition = compPose.pos; + comp.root.localRotation = compPose.rot; + + var attachPose = new SteamVR_Utils.RigidTransform(state.mTrackingToComponentLocal); + comp.attach.position = transform.TransformPoint(attachPose.pos); + comp.attach.rotation = transform.rotation * attachPose.rot; + + var visible = (state.uProperties & (uint)EVRComponentProperty.IsVisible) != 0; + if (visible != comp.root.gameObject.activeSelf) + { + comp.root.gameObject.SetActive(visible); + } + } +#endif + } + +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE + private bool TryGetComponentState(CVRSystem vrSystem, CVRRenderModels vrRenderModels, string componentName, out RenderModel_ComponentState_t componentState) + { + componentState = default(RenderModel_ComponentState_t); + var modeState = default(RenderModel_ControllerMode_State_t); + return vrRenderModels.GetComponentStateForDevicePath(loadedModelName, componentName, SteamVRModule.GetInputSourceHandleForDevice(m_deviceIndex), ref modeState, ref componentState); + } +#elif VIU_STEAMVR && UNITY_STANDALONE + private static readonly uint s_sizeOfControllerStats = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VRControllerState_t)); + private bool TryGetComponentState(CVRSystem vrSystem, CVRRenderModels vrRenderModels, string componentName, out RenderModel_ComponentState_t componentState) + { + componentState = default(RenderModel_ComponentState_t); + var modeState = default(RenderModel_ControllerMode_State_t); + var controllerState = default(VRControllerState_t); + if (!vrSystem.GetControllerState(m_deviceIndex, ref controllerState, s_sizeOfControllerStats)) { return false; } + if (!vrRenderModels.GetComponentState(loadedModelName, componentName, ref controllerState, ref modeState, ref componentState)) { return false; } + return true; + } +#endif + + public void SetDeviceIndex(uint index) + { + //Debug.Log(transform.parent.parent.name + " SetDeviceIndex " + index); + m_deviceIndex = index; + LoadPreferedModel(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..163bc8d903862533a4fdf5151e8df981d14abff4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1948bdcd9101994fad6a52bc97f1747 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs new file mode 100644 index 0000000000000000000000000000000000000000..2c22e6218f41bda94a5cd058680b2901bea4610e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs @@ -0,0 +1,496 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using UnityEngine; +using UnityEngine.Rendering; +#if VIU_STEAMVR && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive.SteamVRExtension +{ + public static class VIUSteamVRRenderModelLoader + { + public class RenderModel + { + public string name; + public string[] childCompNames; + public string[] childModelNames; + public int childCount; + public Dictionary<int, Texture2D> textures; + + public bool TryCreateMaterialForTexture(int textureID, Shader shader, out Material material) + { + Texture2D texture; + if (textures != null && textures.TryGetValue(textureID, out texture)) + { + material = new Material(shader) + { + mainTexture = texture, + }; + return true; + } + else + { + material = default(Material); + return false; + } + } + } + + public class Model + { + public Mesh mesh; + public int textureID; + } + + private class LoadRenderModelJob + { + private struct PtrPack + { + public IntPtr model; + public IntPtr texture; + public IntPtr textureD3D11; + } + + private static int s_nextJobID; + private int m_jobID; + private int m_startFrame; + private string m_name; + private Action<string> m_callback; + private bool m_isDone; + private RenderModel m_unreadyRM; + private PtrPack m_loadedPtr; + private PtrPack[] m_loadedChildPtrs; + + public int jobID { get { return m_jobID; } } + + public LoadRenderModelJob(string name, Action<string> callback) + { + m_name = name; + m_callback = callback; + m_jobID = s_nextJobID++; + } + + private void DoComplete() + { + m_isDone = true; + if (m_callback != null) + { + m_callback(m_name); + m_callback = null; + } + } + +#if VIU_STEAMVR && UNITY_STANDALONE + private static readonly bool s_verbose = false; + // Should not do job after interrupted + public void InterruptAndComplete() + { + var vrRenderModels = OpenVR.RenderModels; + if (vrRenderModels == null) { DoComplete(); return; } + + if (m_loadedPtr.texture != IntPtr.Zero) { vrRenderModels.FreeTexture(m_loadedPtr.texture); } + if (m_loadedPtr.model != IntPtr.Zero) { vrRenderModels.FreeRenderModel(m_loadedPtr.model); } + + foreach (var ptrPack in m_loadedChildPtrs) + { + if (ptrPack.texture != IntPtr.Zero) { vrRenderModels.FreeTexture(ptrPack.texture); } + if (ptrPack.model != IntPtr.Zero) { vrRenderModels.FreeRenderModel(ptrPack.model); } + } + + DoComplete(); + } + + // return true if is done + public bool DoJob() + { + if (m_isDone) { return true; } + + if (!s_renderModelsCache.ContainsKey(m_name)) + { + var vrRenderModels = OpenVR.RenderModels; + if (vrRenderModels == null) { DoComplete(); return true; } + + if (m_unreadyRM == null) + { + var childCount = (int)vrRenderModels.GetComponentCount(m_name); + if (childCount > 0) + { + var childCompNames = new string[childCount]; + var childModelNames = new string[childCount]; + var strBuilder = new StringBuilder(16); + + for (int iChild = 0; iChild < childCount; ++iChild) + { + var strCap = vrRenderModels.GetComponentName(m_name, (uint)iChild, null, 0); + if (strCap == 0) { continue; } + strBuilder.Length = 0; + strBuilder.EnsureCapacity((int)strCap); + if (vrRenderModels.GetComponentName(m_name, (uint)iChild, strBuilder, strCap) == 0) { continue; } + childCompNames[iChild] = strBuilder.ToString(); + if (s_verbose) { Debug.Log("[" + m_jobID + "]+0 GetComponentName " + m_name + "[" + iChild + "]=" + childCompNames[iChild]); } + + strCap = vrRenderModels.GetComponentRenderModelName(m_name, childCompNames[iChild], null, 0); + if (strCap == 0) { continue; } + strBuilder.Length = 0; + strBuilder.EnsureCapacity((int)strCap); + if (vrRenderModels.GetComponentRenderModelName(m_name, childCompNames[iChild], strBuilder, strCap) == 0) { continue; } + childModelNames[iChild] = strBuilder.ToString(); + if (s_verbose) { Debug.Log("[" + m_jobID + "]+0 GetComponentRenderModelName " + m_name + "[" + childCompNames[iChild] + "]=" + System.IO.Path.GetFileName(childModelNames[iChild])); } + } + + m_unreadyRM = new RenderModel() + { + name = m_name, + childCompNames = childCompNames, + childModelNames = childModelNames, + childCount = childCount, + textures = new Dictionary<int, Texture2D>(), + }; + + m_loadedChildPtrs = new PtrPack[childCount]; + } + else + { + m_unreadyRM = new RenderModel() + { + name = m_name, + textures = new Dictionary<int, Texture2D>(), + }; + } + + m_startFrame = Time.frameCount; + } + + if (m_unreadyRM.childCount == 0) + { + if (!DoLoadModelJob(vrRenderModels, m_name, m_unreadyRM.textures, ref m_loadedPtr.model, ref m_loadedPtr.texture, ref m_loadedPtr.textureD3D11)) + { + return false; + } + + if (m_loadedPtr.texture != IntPtr.Zero) { vrRenderModels.FreeTexture(m_loadedPtr.texture); } + if (m_loadedPtr.model != IntPtr.Zero) { vrRenderModels.FreeRenderModel(m_loadedPtr.model); } + } + else + { + var loadChildModelsDone = true; + for (int i = 0, imax = m_unreadyRM.childCount; i < imax; ++i) + { + loadChildModelsDone = DoLoadModelJob(vrRenderModels, m_unreadyRM.childModelNames[i], m_unreadyRM.textures, ref m_loadedChildPtrs[i].model, ref m_loadedChildPtrs[i].texture, ref m_loadedChildPtrs[i].textureD3D11) && loadChildModelsDone; + } + + if (!loadChildModelsDone) { return false; } + + foreach (var ptrPack in m_loadedChildPtrs) + { + if (ptrPack.texture != IntPtr.Zero) { vrRenderModels.FreeTexture(ptrPack.texture); } + if (ptrPack.model != IntPtr.Zero) { vrRenderModels.FreeRenderModel(ptrPack.model); } + } + } + + s_renderModelsCache.Add(m_name, m_unreadyRM); + } + + DoComplete(); + return true; + } + + // return true if is done + private bool DoLoadModelJob(CVRRenderModels vrRenderModels, string modelName, Dictionary<int, Texture2D> texturesCache, ref IntPtr modelPtr, ref IntPtr texturePtr, ref IntPtr d3d11TexturePtr) + { + if (string.IsNullOrEmpty(modelName)) { return true; } + + EVRRenderModelError error; + Model model; + if (!s_modelsCache.TryGetValue(modelName, out model)) + { + switch (error = vrRenderModels.LoadRenderModel_Async(modelName, ref modelPtr)) + { + default: + Debug.LogError("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadRenderModel_Async failed! " + System.IO.Path.GetFileName(modelName) + " EVRRenderModelError=" + error); + return true; + case EVRRenderModelError.Loading: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadRenderModel_Async loading... " + System.IO.Path.GetFileName(modelName)); } + return false; + case EVRRenderModelError.None: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadRenderModel_Async succeed! " + System.IO.Path.GetFileName(modelName)); } + RenderModel_t modelData = MarshalRenderModel(modelPtr); + + var vertices = new Vector3[modelData.unVertexCount]; + var normals = new Vector3[modelData.unVertexCount]; + var uv = new Vector2[modelData.unVertexCount]; + + Type type = typeof(RenderModel_Vertex_t); + for (int iVert = 0; iVert < modelData.unVertexCount; iVert++) + { + var ptr = new IntPtr(modelData.rVertexData.ToInt64() + iVert * Marshal.SizeOf(type)); + var vert = (RenderModel_Vertex_t)Marshal.PtrToStructure(ptr, type); + + vertices[iVert] = new Vector3(vert.vPosition.v0, vert.vPosition.v1, -vert.vPosition.v2); + normals[iVert] = new Vector3(vert.vNormal.v0, vert.vNormal.v1, -vert.vNormal.v2); + uv[iVert] = new Vector2(vert.rfTextureCoord0, vert.rfTextureCoord1); + } + + var indexCount = (int)modelData.unTriangleCount * 3; + var indices = new short[indexCount]; + Marshal.Copy(modelData.rIndexData, indices, 0, indices.Length); + + var triangles = new int[indexCount]; + for (int iTri = 0; iTri < modelData.unTriangleCount; iTri++) + { + triangles[iTri * 3 + 0] = indices[iTri * 3 + 2]; + triangles[iTri * 3 + 1] = indices[iTri * 3 + 1]; + triangles[iTri * 3 + 2] = indices[iTri * 3 + 0]; + } + + model = new Model() + { + textureID = modelData.diffuseTextureId, + mesh = new Mesh() + { + hideFlags = HideFlags.HideAndDontSave, + vertices = vertices, + normals = normals, + uv = uv, + triangles = triangles, + }, + }; + + s_modelsCache.Add(modelName, model); + break; + } + } + + Texture2D texture; + if (!texturesCache.TryGetValue(model.textureID, out texture)) + { + switch (error = vrRenderModels.LoadTexture_Async(model.textureID, ref texturePtr)) + { + default: + Debug.LogError("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadTexture_Async failed! " + System.IO.Path.GetFileName(modelName) + "[" + model.textureID + "] EVRRenderModelError=" + error); + return true; + case EVRRenderModelError.Loading: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadTexture_Async loading... " + System.IO.Path.GetFileName(modelName) + "[" + model.textureID + "]"); } + return false; + case EVRRenderModelError.None: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadTexture_Async succeed! " + System.IO.Path.GetFileName(modelName) + "[" + model.textureID + "]"); } + var textureMap = MarshalRenderModelTextureMap(texturePtr); + texture = new Texture2D(textureMap.unWidth, textureMap.unHeight, TextureFormat.RGBA32, false); + + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11) + { + texture.Apply(); + d3d11TexturePtr = texture.GetNativeTexturePtr(); + } + else + { + var textureMapData = new byte[textureMap.unWidth * textureMap.unHeight * 4]; // RGBA + Marshal.Copy(textureMap.rubTextureMapData, textureMapData, 0, textureMapData.Length); + + var colors = new Color32[textureMap.unWidth * textureMap.unHeight]; + int iColor = 0; + for (int iHeight = 0; iHeight < textureMap.unHeight; iHeight++) + { + for (int iWidth = 0; iWidth < textureMap.unWidth; iWidth++) + { + var r = textureMapData[iColor++]; + var g = textureMapData[iColor++]; + var b = textureMapData[iColor++]; + var a = textureMapData[iColor++]; + colors[iHeight * textureMap.unWidth + iWidth] = new Color32(r, g, b, a); + } + } + + texture.SetPixels32(colors); + texture.Apply(); + } + + texturesCache.Add(model.textureID, texture); + break; + } + } + + if (d3d11TexturePtr != IntPtr.Zero) + { + while (true) + { + switch (error = vrRenderModels.LoadIntoTextureD3D11_Async(model.textureID, d3d11TexturePtr)) + { + default: + Debug.LogError("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadIntoTextureD3D11_Async failed! " + System.IO.Path.GetFileName(modelName) + " EVRRenderModelError=" + error); + d3d11TexturePtr = IntPtr.Zero; + return true; + case EVRRenderModelError.Loading: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadIntoTextureD3D11_Async loading... " + System.IO.Path.GetFileName(modelName) + "[" + model.textureID + "]"); } + break; + case EVRRenderModelError.None: + if (s_verbose) { Debug.Log("[" + m_jobID + "]+" + (Time.frameCount - m_startFrame) + " LoadIntoTextureD3D11_Async succeed! " + System.IO.Path.GetFileName(modelName)); } + d3d11TexturePtr = IntPtr.Zero; + return true; + } + // FIXME: LoadIntoTextureD3D11_Async blocks main thread? Crashes when not calling it in while loop +#if !UNITY_METRO + System.Threading.Thread.Sleep(1); +#endif + } + } + + return true; + } + + /// <summary> + /// Helper function to handle the inconvenient fact that the packing for RenderModel_t is + /// different on Linux/OSX (4) than it is on Windows (8) + /// </summary> + /// <param name="pRenderModel">native pointer to the RenderModel_t</param> + /// <returns></returns> + private static RenderModel_t MarshalRenderModel(IntPtr pRenderModel) + { + if ((Environment.OSVersion.Platform == PlatformID.MacOSX) || + (Environment.OSVersion.Platform == PlatformID.Unix)) + { + var packedModel = (RenderModel_t_Packed)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_t_Packed)); + var model = new RenderModel_t(); + packedModel.Unpack(ref model); + return model; + } + else + { + return (RenderModel_t)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_t)); + } + } + + /// <summary> + /// Helper function to handle the inconvenient fact that the packing for RenderModel_TextureMap_t is + /// different on Linux/OSX (4) than it is on Windows (8) + /// </summary> + /// <param name="pTextureMap">native pointer to the RenderModel_TextureMap_t</param> + /// <returns></returns> + private static RenderModel_TextureMap_t MarshalRenderModelTextureMap(IntPtr pTextureMap) + { + if ((Environment.OSVersion.Platform == PlatformID.MacOSX) || + (Environment.OSVersion.Platform == PlatformID.Unix)) + { + var packedModel = (RenderModel_TextureMap_t_Packed)Marshal.PtrToStructure(pTextureMap, typeof(RenderModel_TextureMap_t_Packed)); + var model = new RenderModel_TextureMap_t(); + packedModel.Unpack(ref model); + return model; + } + else + { + return (RenderModel_TextureMap_t)Marshal.PtrToStructure(pTextureMap, typeof(RenderModel_TextureMap_t)); + } + } +#else + public void InterruptAndComplete() + { + DoComplete(); + } + + public bool DoJob() + { + if (m_isDone) { return true; } + + DoComplete(); + return true; + } +#endif + } + + + private static Dictionary<string, RenderModel> s_renderModelsCache = new Dictionary<string, RenderModel>(); + private static Dictionary<string, Model> s_modelsCache = new Dictionary<string, Model>(); + + public static Dictionary<string, RenderModel> renderModelsCache { get { return s_renderModelsCache; } } + public static Dictionary<string, Model> modelsCache { get { return s_modelsCache; } } + + public static void ClearCache() + { + s_renderModelsCache.Clear(); + s_modelsCache.Clear(); + } + + // NOTICE: Avoid calling Load after applicaion quit, this function will create worker gameobject + public static void Load(string name, Action<string> onComplete) + { + WorkerBehaviour.EnqueueJob(new LoadRenderModelJob(name, onComplete)); + } + + #region Worker Behaviour + private class WorkerBehaviour : MonoBehaviour + { + private static WorkerBehaviour s_worker; + private static Queue<LoadRenderModelJob> s_jobQueue; + + private Coroutine m_coroutine; + + private bool isWorking + { + get { return m_coroutine != null; } + set + { + if (isWorking == value) { return; } + if (value) { m_coroutine = StartCoroutine(WorkingCoroutine()); } + else { StopCoroutine(m_coroutine); m_coroutine = null; } + } + } + + public static void EnqueueJob(LoadRenderModelJob job) + { + if (s_worker == null) + { + var workerObj = new GameObject(typeof(VIUSteamVRRenderModelLoader).Name + "." + typeof(WorkerBehaviour).Name) + { + hideFlags = HideFlags.HideAndDontSave, + }; + DontDestroyOnLoad(workerObj); + s_worker = workerObj.AddComponent<WorkerBehaviour>(); + } + + if (s_jobQueue == null) + { + s_jobQueue = new Queue<LoadRenderModelJob>(); + } + + s_jobQueue.Enqueue(job); + + s_worker.isWorking = true; + } + + private void OnDestroy() + { + isWorking = false; + + while (s_jobQueue.Count > 0) + { + s_jobQueue.Dequeue().InterruptAndComplete(); + } + } + + private IEnumerator WorkingCoroutine() + { + while (s_jobQueue.Count > 0) + { + if (s_jobQueue.Peek().DoJob()) + { + s_jobQueue.Dequeue(); + } + else + { + yield return null; + } + } + + isWorking = false; + } + } + #endregion + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0672ae9b99349776d8dc2a595d19f04e9abde8c8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/SteamVRExtension/VIUSteamVRRenderModelLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d4e377c0cb877c4aa40fbac96daab75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs new file mode 100644 index 0000000000000000000000000000000000000000..d254df508935071e52e8ee1114df3ff11ccc0ee3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs @@ -0,0 +1,279 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.Serialization; +using GrabberPool = HTC.UnityPlugin.Utility.ObjectPool<HTC.UnityPlugin.Vive.StickyGrabbable.Grabber>; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Object Grabber/Sticky Grabbable", 1)] + public class StickyGrabbable : GrabbableBase<StickyGrabbable.Grabber> + , IColliderEventPressDownHandler + { + public class Grabber : IGrabber + { + private static GrabberPool m_pool; + + public ColliderButtonEventData eventData { get; private set; } + + public RigidPose grabberOrigin + { + get + { + return new RigidPose(eventData.eventCaster.transform); + } + } + + public RigidPose grabOffset { get; set; } + + // NOTE: + // We can't make sure the excution order of OnColliderEventPressDown() and Update() + // Hence log grabFrame to avoid redundant release in Update() + // and redeayForRelease flag(remove grabber from m_eventGrabberSet one frame later) to avoid redundant grabbing in OnColliderEventPressDown() + public int grabFrame { get; set; } + public bool redeayForRelease { get; set; } + + public static Grabber Get(ColliderButtonEventData eventData) + { + if (m_pool == null) + { + m_pool = new GrabberPool(() => new Grabber()); + } + + var grabber = m_pool.Get(); + grabber.eventData = eventData; + grabber.redeayForRelease = false; + return grabber; + } + + public static void Release(Grabber grabber) + { + grabber.eventData = null; + m_pool.Release(grabber); + } + } + + [Serializable] + public class UnityEventGrabbable : UnityEvent<StickyGrabbable> { } + + private IndexedTable<ColliderButtonEventData, Grabber> m_eventGrabberSet; + + public bool alignPosition; + public bool alignRotation; + public Vector3 alignPositionOffset; + public Vector3 alignRotationOffset; + [Range(MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION)] + [FormerlySerializedAs("followingDuration")] + [SerializeField] + private float m_followingDuration = DEFAULT_FOLLOWING_DURATION; + [FormerlySerializedAs("overrideMaxAngularVelocity")] + [SerializeField] + private bool m_overrideMaxAngularVelocity = true; + [FormerlySerializedAs("unblockableGrab")] + [SerializeField] + private bool m_unblockableGrab = true; + [SerializeField] + [FlagsFromEnum(typeof(ControllerButton))] + private ulong m_primaryGrabButton = 0ul; + [SerializeField] + [FlagsFromEnum(typeof(ColliderButtonEventData.InputButton))] + private uint m_secondaryGrabButton = 1u << (int)ColliderButtonEventData.InputButton.Trigger; + [SerializeField] + [HideInInspector] + private ColliderButtonEventData.InputButton m_grabButton = ColliderButtonEventData.InputButton.Trigger; + [SerializeField] + private bool m_toggleToRelease = true; + [FormerlySerializedAs("m_multipleGrabbers")] + [SerializeField] + private bool m_allowMultipleGrabbers = false; + [FormerlySerializedAs("afterGrabbed")] + [SerializeField] + private UnityEventGrabbable m_afterGrabbed = new UnityEventGrabbable(); + [FormerlySerializedAs("beforeRelease")] + [SerializeField] + private UnityEventGrabbable m_beforeRelease = new UnityEventGrabbable(); + [FormerlySerializedAs("onDrop")] + [SerializeField] + private UnityEventGrabbable m_onDrop = new UnityEventGrabbable(); // change rigidbody drop velocity here + + public override float followingDuration { get { return m_followingDuration; } set { m_followingDuration = Mathf.Clamp(value, MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION); } } + + public override bool overrideMaxAngularVelocity { get { return m_overrideMaxAngularVelocity; } set { overrideMaxAngularVelocity = value; } } + + public bool unblockableGrab { get { return m_unblockableGrab; } set { m_unblockableGrab = value; } } + + public bool toggleToRelease { get { return m_toggleToRelease; } set { m_toggleToRelease = value; } } + + public UnityEventGrabbable afterGrabbed { get { return m_afterGrabbed; } } + + public UnityEventGrabbable beforeRelease { get { return m_beforeRelease; } } + + public UnityEventGrabbable onDrop { get { return m_onDrop; } } + + public ColliderButtonEventData grabbedEvent { get { return isGrabbed ? currentGrabber.eventData : null; } } + + public ulong primaryGrabButton { get { return m_primaryGrabButton; } set { m_primaryGrabButton = value; } } + + public uint secondaryGrabButton { get { return m_secondaryGrabButton; } set { m_secondaryGrabButton = value; } } + + [Obsolete("Use IsSecondaryGrabButtonOn and SetSecondaryGrabButton instead")] + public ColliderButtonEventData.InputButton grabButton + { + get + { + for (uint btn = 0u, btns = m_secondaryGrabButton; btns > 0u; btns >>= 1, ++btn) + { + if ((btns & 1u) > 0u) { return (ColliderButtonEventData.InputButton)btn; } + } + return ColliderButtonEventData.InputButton.None; + } + set { m_secondaryGrabButton = 1u << (int)value; } + } + + private bool moveByVelocity { get { return !unblockableGrab && grabRigidbody != null && !grabRigidbody.isKinematic; } } + + public bool IsPrimeryGrabButtonOn(ControllerButton btn) { return EnumUtils.GetFlag(m_primaryGrabButton, (int)btn); } + + public void SetPrimeryGrabButton(ControllerButton btn, bool isOn = true) { EnumUtils.SetFlag(ref m_primaryGrabButton, (int)btn, isOn); } + + public void ClearPrimeryGrabButton() { m_primaryGrabButton = 0ul; } + + public bool IsSecondaryGrabButtonOn(ColliderButtonEventData.InputButton btn) { return EnumUtils.GetFlag(m_secondaryGrabButton, (int)btn); } + + public void SetSecondaryGrabButton(ColliderButtonEventData.InputButton btn, bool isOn = true) { EnumUtils.SetFlag(ref m_secondaryGrabButton, (int)btn, isOn); } + + public void ClearSecondaryGrabButton() { m_secondaryGrabButton = 0u; } + + [Obsolete("Use grabRigidbody instead")] + public Rigidbody rigid { get { return grabRigidbody; } set { grabRigidbody = value; } } + +#if UNITY_EDITOR + protected virtual void OnValidate() { RestoreObsoleteGrabButton(); } +#endif + private void RestoreObsoleteGrabButton() + { + if (m_grabButton == ColliderButtonEventData.InputButton.Trigger) { return; } + ClearSecondaryGrabButton(); + SetSecondaryGrabButton(m_grabButton, true); + m_grabButton = ColliderButtonEventData.InputButton.Trigger; + } + + protected override void Awake() + { + base.Awake(); + + RestoreObsoleteGrabButton(); + + afterGrabberGrabbed += () => m_afterGrabbed.Invoke(this); + beforeGrabberReleased += () => m_beforeRelease.Invoke(this); + onGrabberDrop += () => m_onDrop.Invoke(this); + } + + protected virtual void OnDisable() + { + ClearGrabbers(true); + ClearEventGrabberSet(); + } + + private void ClearEventGrabberSet() + { + if (m_eventGrabberSet == null) { return; } + + for (int i = m_eventGrabberSet.Count - 1; i >= 0; --i) + { + Grabber.Release(m_eventGrabberSet.GetValueByIndex(i)); + } + + m_eventGrabberSet.Clear(); + } + + protected bool IsValidGrabButton(ColliderButtonEventData eventData) + { + if (m_primaryGrabButton > 0ul) + { + ViveColliderButtonEventData viveEventData; + if (eventData.TryGetViveButtonEventData(out viveEventData) && IsPrimeryGrabButtonOn(viveEventData.viveButton)) { return true; } + } + + return m_secondaryGrabButton > 0u && IsSecondaryGrabButtonOn(eventData.button); + } + + public virtual void OnColliderEventPressDown(ColliderButtonEventData eventData) + { + if (!IsValidGrabButton(eventData)) { return; } + + Grabber grabber; + if (m_eventGrabberSet == null || !m_eventGrabberSet.TryGetValue(eventData, out grabber)) + { + if (!m_allowMultipleGrabbers) + { + ClearGrabbers(false); + ClearEventGrabberSet(); + } + + grabber = Grabber.Get(eventData); + var offset = RigidPose.FromToPose(grabber.grabberOrigin, new RigidPose(transform)); + if (alignPosition) { offset.pos = alignPositionOffset; } + if (alignRotation) { offset.rot = Quaternion.Euler(alignRotationOffset); } + grabber.grabOffset = offset; + grabber.grabFrame = Time.frameCount; + + if (m_eventGrabberSet == null) { m_eventGrabberSet = new IndexedTable<ColliderButtonEventData, Grabber>(); } + m_eventGrabberSet.Add(eventData, grabber); + + AddGrabber(grabber); + } + else if (toggleToRelease) + { + RemoveGrabber(grabber); + m_eventGrabberSet.Remove(eventData); + Grabber.Release(grabber); + } + } + + protected virtual void FixedUpdate() + { + if (isGrabbed && moveByVelocity) + { + OnGrabRigidbody(); + } + } + + protected virtual void Update() + { + if (!isGrabbed) { return; } + + if (!moveByVelocity) + { + RecordLatestPosesForDrop(Time.time, 0.05f); + OnGrabTransform(); + } + + // check toggle release + if (toggleToRelease) + { + m_eventGrabberSet.RemoveAll((pair) => + { + var grabber = pair.Value; + if (!grabber.eventData.GetPressDown()) { return false; } + + if (grabber.grabFrame == Time.frameCount) { return false; } + + if (!grabber.redeayForRelease) + { + RemoveGrabber(grabber); + grabber.redeayForRelease = true; + return false; + } + + Grabber.Release(grabber); + return true; + }); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..14f5a642178cbb90e3099be7599cc1454bd7853b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/StickyGrabbable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d95cee40c33260044b37578281bc98a3 +timeCreated: 1521636571 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs new file mode 100644 index 0000000000000000000000000000000000000000..322db25c9aa35ae4a1a82d0bf01eada9953a173c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs @@ -0,0 +1,382 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.Pointer3D; +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; +using UnityEngine.Serialization; +#if VIU_STEAMVR_2_0_0_OR_NEWER && UNITY_STANDALONE +using Valve.VR; +#endif + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Teleportable", 3)] + public class Teleportable : MonoBehaviour + , ReticlePoser.IMaterialChanger + , IPointerDownHandler + , IPointerClickHandler + , IPointer3DPressExitHandler + { + public enum TeleportButton + { + None = -1, + MouseButtonLeft = PointerEventData.InputButton.Left, + MouseButtonRight = PointerEventData.InputButton.Right, + MouseButtonMiddle = PointerEventData.InputButton.Middle, + Trigger = PointerEventData.InputButton.Left, + Pad = PointerEventData.InputButton.Right, + Grip = PointerEventData.InputButton.Middle, + } + + public enum TriggeredTypeEnum + { + ButtonUp, + ButtonDown, + ButtonClick, + } + + [Serializable] + public class UnityEventTeleport : UnityEvent<Teleportable, RaycastResult, float> { } + public delegate void OnTeleportAction(Teleportable src, RaycastResult hitResult, float delay); + + /// <summary> + /// The actual transfrom that will be moved Ex. CameraRig + /// </summary> + public Transform target; + /// <summary> + /// The actual pivot point that want to be teleported to the pointed location Ex. CameraHead + /// </summary> + public Transform pivot; + public float fadeDuration = 0.3f; + [SerializeField] + [FlagsFromEnum(typeof(ControllerButton))] + private ulong primaryTeleportButton = 0ul; + [SerializeField] + [FlagsFromEnum(typeof(TeleportButton))] + private uint secondaryTeleportButton = 1u << (int)TeleportButton.MouseButtonRight; + [SerializeField] + [HideInInspector] + [FormerlySerializedAs("teleportButton")] + private TeleportButton _teleportButton = TeleportButton.Pad; + [SerializeField] + private TriggeredTypeEnum triggeredType; + [SerializeField] + private Material m_reticleMaterial; + [SerializeField] + private bool rotateToHitObjectFront; + [SerializeField] + [Tooltip("Otherwise, teleport to the world position of the hit result")] + [FormerlySerializedAs("_teleportToCenter")] + private bool teleportToHitObjectPivot; + [SerializeField] + [Tooltip("Use SteamVR_Fade solution (Only works when SteamVR Plugin v1 is installed)")] + private bool useSteamVRFade = true; + [SerializeField] + private UnityEventTeleport onBeforeTeleport = new UnityEventTeleport(); + [SerializeField] + private UnityEventTeleport onAfterTeleport = new UnityEventTeleport(); + + + private Quaternion additionalTeleportRotation = Quaternion.identity; + + public ulong PrimeryTeleportButton { get { return primaryTeleportButton; } set { primaryTeleportButton = value; } } + + public uint SecondaryTeleportButton { get { return secondaryTeleportButton; } set { secondaryTeleportButton = value; } } + + [Obsolete("Use IsSecondaryTeleportButtonOn and SetSecondaryTeleportButton instead")] + public TeleportButton teleportButton + { + get + { + for (uint btn = 0u, btns = secondaryTeleportButton; btns > 0u; btns >>= 1, ++btn) + { + if ((btns & 1u) > 0u) { return (TeleportButton)btn; } + } + return TeleportButton.None; + } + set { secondaryTeleportButton = 1u << (int)value; } + } + + public TriggeredTypeEnum TriggeredType { get { return triggeredType; } set { triggeredType = value; } } + + public Material reticleMaterial { get { return m_reticleMaterial; } set { m_reticleMaterial = value; } } + + public bool RotateToHitObjectFront { get { return rotateToHitObjectFront; } set { rotateToHitObjectFront = value; } } + + public bool TeleportToHitObjectPivot { get { return teleportToHitObjectPivot; } set { teleportToHitObjectPivot = value; } } + + public bool UseSteamVRFade { get { return useSteamVRFade; } set { useSteamVRFade = value; } } + + public virtual Quaternion AdditionalTeleportRotation { get { return additionalTeleportRotation; } set { additionalTeleportRotation = value; } } + + public event OnTeleportAction OnBeforeTeleport + { + add { onBeforeTeleport.AddListener(new UnityAction<Teleportable, RaycastResult, float>(value)); } + remove { onBeforeTeleport.RemoveListener(new UnityAction<Teleportable, RaycastResult, float>(value)); } + } + + public event OnTeleportAction OnAfterTeleport + { + add { onAfterTeleport.AddListener(new UnityAction<Teleportable, RaycastResult, float>(value)); } + remove { onAfterTeleport.RemoveListener(new UnityAction<Teleportable, RaycastResult, float>(value)); } + } + + public static event OnTeleportAction OnBeforeAnyTeleport; + public static event OnTeleportAction OnAfterAnyTeleport; + + public bool IsAborted { get { return abort; } } + + private bool abort; + private Coroutine teleportCoroutine; + + public bool IsPrimeryTeleportButtonOn(ControllerButton btn) { return EnumUtils.GetFlag(primaryTeleportButton, (int)btn); } + + public void SetPrimeryTeleportButton(ControllerButton btn, bool isOn = true) { EnumUtils.SetFlag(ref primaryTeleportButton, (int)btn, isOn); } + + public void ClearPrimeryTeleportButton() { primaryTeleportButton = 0ul; } + + public bool IsSecondaryTeleportButtonOn(TeleportButton btn) { return EnumUtils.GetFlag(secondaryTeleportButton, (int)btn); } + + public void SetSecondaryTeleportButton(TeleportButton btn, bool isOn = true) { EnumUtils.SetFlag(ref secondaryTeleportButton, (int)btn, isOn); } + + public void ClearSecondaryTeleportButton() { secondaryTeleportButton = 0u; } +#if UNITY_EDITOR + protected virtual void Reset() + { + FindTeleportPivotAndTarget(); + + var scriptDir = System.IO.Path.GetDirectoryName(UnityEditor.AssetDatabase.GetAssetPath(UnityEditor.MonoScript.FromMonoBehaviour(this))); + if (!string.IsNullOrEmpty(scriptDir)) + { + m_reticleMaterial = UnityEditor.AssetDatabase.LoadAssetAtPath<Material>(scriptDir.Replace("Scripts/Misc", "Materials/Reticle.mat")); + } + } + + protected virtual void OnValidate() { RestoreObsoleteTeleportButton(); } +#endif + private void RestoreObsoleteTeleportButton() + { + if (_teleportButton == TeleportButton.Pad) { return; } + ClearSecondaryTeleportButton(); + SetSecondaryTeleportButton(_teleportButton, true); + _teleportButton = TeleportButton.Pad; + } + + private void FindTeleportPivotAndTarget() + { + foreach (var cam in Camera.allCameras) + { + if (!cam.enabled) { continue; } +#if UNITY_5_4_OR_NEWER + // try find vr camera eye + if (cam.stereoTargetEye != StereoTargetEyeMask.Both) { continue; } +#endif + pivot = cam.transform; + target = cam.transform.root == null ? cam.transform : cam.transform.root; + } + } + + protected virtual void Awake() { RestoreObsoleteTeleportButton(); } + + public virtual void OnPointerDown(PointerEventData eventData) + { + if (triggeredType != TriggeredTypeEnum.ButtonDown) { return; } + + // skip if it was teleporting + if (teleportCoroutine != null) { return; } + + OnPointerTeleport(eventData); + } + + public virtual void OnPointerClick(PointerEventData eventData) + { + if (triggeredType != TriggeredTypeEnum.ButtonClick) { return; } + + // skip if it was teleporting + if (teleportCoroutine != null) { return; } + + OnPointerTeleport(eventData); + } + + // This event happens when pointer leaves this object OR the button is released + public virtual void OnPointer3DPressExit(Pointer3DEventData eventData) + { + if (triggeredType != TriggeredTypeEnum.ButtonUp) { return; } + + // skip if it was teleporting + if (teleportCoroutine != null) { return; } + + // skip if the pointer leaves this object but the button isn't released + if (eventData.GetPress()) { return; } + + OnPointerTeleport(eventData); + } + + protected virtual void OnPointerTeleport(PointerEventData eventData) + { + if (!IsValidTeleportButton(eventData)) { return; } + + var hitResult = eventData.pointerCurrentRaycast; + + // check if hit something + if (!hitResult.isValid) { return; } + + if (target == null || pivot == null) + { + FindTeleportPivotAndTarget(); + } + + var rotateHead = additionalTeleportRotation; + if (rotateToHitObjectFront && target != null && pivot != null) + { + var headRotFrontOnFloor = Quaternion.LookRotation(Vector3.ProjectOnPlane(pivot.forward, target.up), target.up); + rotateHead = Quaternion.Inverse(headRotFrontOnFloor) * hitResult.gameObject.transform.rotation * rotateHead; + } + + var headVector = target != null && pivot != null ? Vector3.ProjectOnPlane(pivot.position - target.position, target.up) : Vector3.zero; + var hitPos = teleportToHitObjectPivot ? hitResult.gameObject.transform.position : hitResult.worldPosition; + var targetPos = hitPos - (rotateHead * headVector); + var targetRot = target != null ? target.rotation * rotateHead : rotateHead; + + abort = false; + + if (useSteamVRFade && fadeDuration > 0f && !VRModule.isSteamVRPluginDetected) + { + Debug.LogWarning("Install SteamVR plugin and enable SteamVRModule support to enable fading"); + } + + var delay = Mathf.Max(0f, fadeDuration * 0.5f); + if (OnBeforeAnyTeleport != null) { OnBeforeAnyTeleport.Invoke(this, hitResult, delay); } + if (onBeforeTeleport != null) { onBeforeTeleport.Invoke(this, hitResult, delay); } + + if (abort) { return; } + + teleportCoroutine = StartCoroutine(StartTeleport(hitResult, targetPos, targetRot, delay)); + } + + protected bool IsValidTeleportButton(PointerEventData eventData) + { + if (primaryTeleportButton > 0ul) + { + VivePointerEventData viveEventData; + if (eventData.TryGetViveButtonEventData(out viveEventData) && IsPrimeryTeleportButtonOn(viveEventData.viveButton)) { return true; } + } + + return secondaryTeleportButton > 0u && IsSecondaryTeleportButtonOn((TeleportButton)eventData.button); + } +#if VIU_STEAMVR && UNITY_STANDALONE + private bool m_steamVRFadeInitialized; + private bool m_isSteamVRFading; + + public IEnumerator StartTeleport(RaycastResult hitResult, Vector3 position, Quaternion rotation, float delay) + { + if (useSteamVRFade && VRModule.activeModule == VRModuleActiveEnum.SteamVR && !Mathf.Approximately(delay, 0f)) + { + if (!m_steamVRFadeInitialized) + { + // add SteamVR_Fade to the last rendered stereo camera + var fadeScripts = FindObjectsOfType<SteamVR_Fade>(); + if (fadeScripts == null || fadeScripts.Length <= 0) + { + var topCam = SteamVR_Render.Top(); + if (topCam != null) + { + topCam.gameObject.AddComponent<SteamVR_Fade>(); + } + } + + m_steamVRFadeInitialized = true; + } + + m_isSteamVRFading = true; + SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), delay); + + yield return new WaitForSeconds(delay); + yield return new WaitForEndOfFrame(); // to avoid from rendering guideline in wrong position + + TeleportTarget(position, rotation); + + if (OnAfterAnyTeleport != null) { OnAfterAnyTeleport.Invoke(this, hitResult, delay); } + if (onAfterTeleport != null) { onAfterTeleport.Invoke(this, hitResult, delay); } + + SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), delay); + + yield return new WaitForSeconds(delay); + + m_isSteamVRFading = false; + } + else + { + if (delay > 0) { yield return new WaitForSeconds(delay); } + + yield return new WaitForEndOfFrame(); // to avoid from rendering guideline in wrong position + + TeleportTarget(position, rotation); + + if (OnAfterAnyTeleport != null) { OnAfterAnyTeleport.Invoke(this, hitResult, delay); } + if (onAfterTeleport != null) { onAfterTeleport.Invoke(this, hitResult, delay); } + + if (delay > 0) { yield return new WaitForSeconds(delay); } + } + + teleportCoroutine = null; + } + + public virtual void AbortTeleport() + { + abort = true; + + if (teleportCoroutine != null) + { + StopCoroutine(teleportCoroutine); + teleportCoroutine = null; + } + + if (m_isSteamVRFading) + { + m_isSteamVRFading = false; + SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), 0.001f); + } + } +#else + public IEnumerator StartTeleport(RaycastResult hitResult, Vector3 position, Quaternion rotation, float delay) + { + if (delay > 0) { yield return new WaitForSeconds(delay); } + + yield return new WaitForEndOfFrame(); // to avoid from rendering guideline in wrong position + + TeleportTarget(position, rotation); + + if (OnAfterAnyTeleport != null) { OnAfterAnyTeleport.Invoke(this, hitResult, delay); } + if (onAfterTeleport != null) { onAfterTeleport.Invoke(this, hitResult, delay); } + + if (delay > 0) { yield return new WaitForSeconds(delay); } + + teleportCoroutine = null; + } + + public virtual void AbortTeleport() + { + abort = true; + + if (teleportCoroutine != null) + { + StopCoroutine(teleportCoroutine); + teleportCoroutine = null; + } + } +#endif + protected void TeleportTarget(Vector3 position, Quaternion rotation) + { + if (target == null) { return; } + target.position = position; + target.rotation = rotation; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3ab6576e702675ffe7a8f218fbc8d973421cb907 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/Teleportable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4f753025abc16bb45bbc83939f863bfb +timeCreated: 1459339227 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs new file mode 100644 index 0000000000000000000000000000000000000000..7d48cfd0b9f2350a988521969c1e315b10093272 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs @@ -0,0 +1,94 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// This componenet hooks up custom VR camera required component + /// </summary> + [AddComponentMenu("VIU/Hooks/VR Camera Hook", 10)] + public class VRCameraHook : MonoBehaviour + { + [AttributeUsage(AttributeTargets.Class)] + public class CreatorPriorityAttirbute : Attribute + { + public int priority { get; set; } + public CreatorPriorityAttirbute(int priority = 0) { this.priority = priority; } + } + + public abstract class CameraCreator + { + public abstract bool shouldActive { get; } + public abstract void CreateCamera(VRCameraHook hook); + } + + private static readonly Type[] s_creatorTypes; + private CameraCreator[] m_creators; + + static VRCameraHook() + { + try + { + var creatorTypes = new List<Type>(); + foreach (var type in Assembly.GetAssembly(typeof(CameraCreator)).GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(CameraCreator)))) + { + creatorTypes.Add(type); + } + s_creatorTypes = creatorTypes.OrderBy(t => + { + foreach (var at in t.GetCustomAttributes(typeof(CreatorPriorityAttirbute), true)) + { + return ((CreatorPriorityAttirbute)at).priority; + } + return 0; + }).ToArray(); + } + catch (Exception e) + { + s_creatorTypes = new Type[0]; + Debug.LogError(e); + } + } + + private void Awake() + { + m_creators = new CameraCreator[s_creatorTypes.Length]; + for (int i = s_creatorTypes.Length - 1; i >= 0; --i) + { + m_creators[i] = (CameraCreator)Activator.CreateInstance(s_creatorTypes[i]); + } + + if (VRModule.activeModule == VRModuleActiveEnum.Uninitialized) + { + VRModule.onActiveModuleChanged += OnModuleActivated; + } + else + { + OnModuleActivated(VRModule.activeModule); + } + } + + private void OnModuleActivated(VRModuleActiveEnum activatedModule) + { + foreach (var creator in m_creators) + { + if (creator.shouldActive) + { + creator.CreateCamera(this); + break; + } + } + + if (activatedModule != VRModuleActiveEnum.Uninitialized) + { + VRModule.onActiveModuleChanged -= OnModuleActivated; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..23c0780711c2d27a452ef706cddf9163471eee74 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/VRCameraHook.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 326f9add24fafee418bdcd053a0324a0 +timeCreated: 1518492057 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..c7e06dc2eb09ca8ec182006463ed3f6dfca93519 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs @@ -0,0 +1,63 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const string DEFAULT_RESOURCE_PATH = "VIUSettings"; + public const string INDIVIDUAL_TOUCHPAD_JOYSTICK_VALUE_TOOLTIP = "Set touchpad and joystick value individually for different controller type. For example, Vive Controller will have touchpad value but no thumbstick value, Oculus Touch will have thumbstick value but no touchpad value."; + public const bool AUTO_CHECK_NEW_VIU_VERSION_DEFAULT_VALUE = true; + public const float VIRTUAL_DPAD_DEAD_ZONE_DEFAULT_VALUE = 0.25f; + public const bool INDIVIDUAL_TOUCHPAD_JOYSTICK_VALUE_DEFAULT_VALUE = false; + + [SerializeField] + private bool m_autoCheckNewVIUVersion = AUTO_CHECK_NEW_VIU_VERSION_DEFAULT_VALUE; + [SerializeField] + private float m_virtualDPadDeadZone = VIRTUAL_DPAD_DEAD_ZONE_DEFAULT_VALUE; + [SerializeField, Tooltip(INDIVIDUAL_TOUCHPAD_JOYSTICK_VALUE_TOOLTIP)] + private bool m_individualTouchpadJoystickValue = INDIVIDUAL_TOUCHPAD_JOYSTICK_VALUE_DEFAULT_VALUE; + + public static bool autoCheckNewVIUVersion { get { return Instance == null ? AUTO_CHECK_NEW_VIU_VERSION_DEFAULT_VALUE : s_instance.m_autoCheckNewVIUVersion; } set { if (Instance != null) { Instance.m_autoCheckNewVIUVersion = value; } } } + public static float virtualDPadDeadZone { get { return Instance == null ? VIRTUAL_DPAD_DEAD_ZONE_DEFAULT_VALUE : s_instance.m_virtualDPadDeadZone; } set { if (Instance != null) { Instance.m_virtualDPadDeadZone = value; } } } + public static bool individualTouchpadJoystickValue { get { return Instance == null ? INDIVIDUAL_TOUCHPAD_JOYSTICK_VALUE_DEFAULT_VALUE : s_instance.m_individualTouchpadJoystickValue; } set { if (Instance != null) { Instance.m_individualTouchpadJoystickValue = value; } } } + + private static VIUSettings s_instance = null; + + public static VIUSettings Instance + { + get + { + if (s_instance == null) + { + LoadFromResource(); + } + + return s_instance; + } + } + + public static void LoadFromResource(string path = null) + { + if (path == null) + { + path = DEFAULT_RESOURCE_PATH; + } + + if ((s_instance = Resources.Load<VIUSettings>(path)) == null) + { + s_instance = CreateInstance<VIUSettings>(); + s_instance.m_bindingInterfaceObjectSource = Resources.Load<GameObject>(BINDING_INTERFACE_PREFAB_DEFAULT_RESOURCE_PATH); + } + } + + private void OnDestroy() + { + if (s_instance == this) + { + s_instance = null; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ee0fe3c43078c206d4288cc82d9b52658a658895 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 71e10a6c8bc50f348a3bcd045dce48c3 +timeCreated: 1511950098 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials.meta new file mode 100644 index 0000000000000000000000000000000000000000..00cc2c6ac3c2b6aaff908b0f0403f3d46cfd1f98 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e92033f6b8df86d429fc75ffc146d5ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..79e25c404b191e4b1716dc423de58832d689e6df --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs @@ -0,0 +1,38 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const string BIND_UI_SWITCH_TOOLTIP = "Enable this option to open binding interface by pressing the switch key in play mode."; + + public const bool AUTO_LOAD_BINDING_CONFIG_ON_START_DEFAULT_VALUE = true; + public const string BINDING_CONFIG_FILE_PATH_DEFAULT_VALUE = "vive_role_bindings.cfg"; + public const bool ENABLE_BINDING_INTERFACE_SWITCH_DEFAULT_VALUE = true; + public const KeyCode BINDING_INTERFACE_SWITCH_KEY_DEFAULT_VALUE = KeyCode.B; + public const KeyCode BINDING_INTERFACE_SWITCH_KEY_MODIFIER_DEFAULT_VALUE = KeyCode.RightShift; + public const string BINDING_INTERFACE_PREFAB_DEFAULT_RESOURCE_PATH = "VIUBindingInterface"; + + [SerializeField] + private bool m_autoLoadBindingConfigOnStart = AUTO_LOAD_BINDING_CONFIG_ON_START_DEFAULT_VALUE; + [SerializeField] + private string m_bindingConfigFilePath = BINDING_CONFIG_FILE_PATH_DEFAULT_VALUE; + [SerializeField, Tooltip(BIND_UI_SWITCH_TOOLTIP)] + private bool m_enableBindingInterfaceSwitch = ENABLE_BINDING_INTERFACE_SWITCH_DEFAULT_VALUE; + [SerializeField] + private KeyCode m_bindingInterfaceSwitchKey = BINDING_INTERFACE_SWITCH_KEY_DEFAULT_VALUE; + [SerializeField] + private KeyCode m_bindingInterfaceSwitchKeyModifier = BINDING_INTERFACE_SWITCH_KEY_MODIFIER_DEFAULT_VALUE; + [SerializeField] + private GameObject m_bindingInterfaceObjectSource = null; + + public static bool autoLoadBindingConfigOnStart { get { return Instance == null ? AUTO_LOAD_BINDING_CONFIG_ON_START_DEFAULT_VALUE : s_instance.m_autoLoadBindingConfigOnStart; } set { if (Instance != null) { Instance.m_autoLoadBindingConfigOnStart = value; } } } + public static string bindingConfigFilePath { get { return Instance == null ? BINDING_CONFIG_FILE_PATH_DEFAULT_VALUE : s_instance.m_bindingConfigFilePath; } set { if (Instance != null) { Instance.m_bindingConfigFilePath = value; } } } + public static bool enableBindingInterfaceSwitch { get { return Instance == null ? ENABLE_BINDING_INTERFACE_SWITCH_DEFAULT_VALUE : s_instance.m_enableBindingInterfaceSwitch; } set { if (Instance != null) { Instance.m_enableBindingInterfaceSwitch = value; } } } + public static KeyCode bindingInterfaceSwitchKey { get { return Instance == null ? BINDING_INTERFACE_SWITCH_KEY_DEFAULT_VALUE : s_instance.m_bindingInterfaceSwitchKey; } set { if (Instance != null) { Instance.m_bindingInterfaceSwitchKey = value; } } } + public static KeyCode bindingInterfaceSwitchKeyModifier { get { return Instance == null ? BINDING_INTERFACE_SWITCH_KEY_DEFAULT_VALUE : s_instance.m_bindingInterfaceSwitchKeyModifier; } set { if (Instance != null) { Instance.m_bindingInterfaceSwitchKeyModifier = value; } } } + public static GameObject bindingInterfaceObjectSource { get { return Instance == null ? null : s_instance.m_bindingInterfaceObjectSource; } set { if (Instance != null) { Instance.m_bindingInterfaceObjectSource = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d23a1a71c140683efc36e28dcbd7f00ab9e6928f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/BindingUISettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c0ae3d73ff223ae43b16f69db83cc54b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..6cdc6e200ec09922ed1f26576de88485caf98c5e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs @@ -0,0 +1,20 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_GOOGLE_VR_MODULE_DEFAULT_VALUE = true; + public const bool DAYDREAM_SYNC_PAD_PRESS_TO_TRIGGER_DEFAULT_VALUE = true; + + [SerializeField] + private bool m_activateGoogleVRModule = ACTIVATE_GOOGLE_VR_MODULE_DEFAULT_VALUE; + [SerializeField] + private bool m_daydreamSyncPadPressToTrigger = DAYDREAM_SYNC_PAD_PRESS_TO_TRIGGER_DEFAULT_VALUE; + + public static bool activateGoogleVRModule { get { return Instance == null ? ACTIVATE_GOOGLE_VR_MODULE_DEFAULT_VALUE : s_instance.m_activateGoogleVRModule; } set { if (Instance != null) { Instance.m_activateGoogleVRModule = value; } } } + public static bool daydreamSyncPadPressToTrigger { get { return Instance == null ? DAYDREAM_SYNC_PAD_PRESS_TO_TRIGGER_DEFAULT_VALUE : s_instance.m_daydreamSyncPadPressToTrigger; } set { if (Instance != null) { Instance.m_daydreamSyncPadPressToTrigger = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9c9e131715ac6a57a454d980f7fb01ddf5cb19c1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/DaydreamSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ca1bcbe63347b449a1af131686f196b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..9f304ee594e9ae77c2f205f96fbee0ffb287550d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs @@ -0,0 +1,34 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const string EX_CAM_UI_SWITCH_TOOLTIP = "Enable this option to toggle quad view by pressing the switch key in play mode. (After the config file loaded successfully)"; + + public const bool AUTO_LOAD_EXTERNAL_CAMERA_CONFIG_ON_START_DEFAULT_VALUE = true; + public const string EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE = "externalcamera.cfg"; + public const bool ENABLE_EXTERNAL_CAMERA_SWITCH_DEFAULT_VALUE = true; + public const KeyCode EXTERNAL_CAMERA_SWITCH_KEY_DEFAULT_VALUE = KeyCode.M; + public const KeyCode EXTERNAL_CAMERA_SWITCH_KEY_MODIFIER_DEFAULT_VALUE = KeyCode.RightShift; + + [SerializeField] + private bool m_autoLoadExternalCameraConfigOnStart = AUTO_LOAD_EXTERNAL_CAMERA_CONFIG_ON_START_DEFAULT_VALUE; + [SerializeField] + private string m_externalCameraConfigFilePath = EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE; + [SerializeField, Tooltip(EX_CAM_UI_SWITCH_TOOLTIP)] + private bool m_enableExternalCameraSwitch = ENABLE_EXTERNAL_CAMERA_SWITCH_DEFAULT_VALUE; + [SerializeField] + private KeyCode m_externalCameraSwitchKey = EXTERNAL_CAMERA_SWITCH_KEY_DEFAULT_VALUE; + [SerializeField] + private KeyCode m_externalCameraSwitchKeyModifier = EXTERNAL_CAMERA_SWITCH_KEY_MODIFIER_DEFAULT_VALUE; + + public static bool autoLoadExternalCameraConfigOnStart { get { return Instance == null ? AUTO_LOAD_EXTERNAL_CAMERA_CONFIG_ON_START_DEFAULT_VALUE : s_instance.m_autoLoadExternalCameraConfigOnStart; } set { if (Instance != null) { Instance.m_autoLoadExternalCameraConfigOnStart = value; } } } + public static string externalCameraConfigFilePath { get { return Instance == null ? EXTERNAL_CAMERA_CONFIG_FILE_PATH_DEFAULT_VALUE : s_instance.m_externalCameraConfigFilePath; } set { if (Instance != null) { Instance.m_externalCameraConfigFilePath = value; } } } + public static bool enableExternalCameraSwitch { get { return Instance == null ? ENABLE_EXTERNAL_CAMERA_SWITCH_DEFAULT_VALUE : s_instance.m_enableExternalCameraSwitch; } set { if (Instance != null) { Instance.m_enableExternalCameraSwitch = value; } } } + public static KeyCode externalCameraSwitchKey { get { return Instance == null ? EXTERNAL_CAMERA_SWITCH_KEY_DEFAULT_VALUE : s_instance.m_externalCameraSwitchKey; } set { if (Instance != null) { Instance.m_externalCameraSwitchKey = value; } } } + public static KeyCode externalCameraSwitchKeyModifier { get { return Instance == null ? EXTERNAL_CAMERA_SWITCH_KEY_MODIFIER_DEFAULT_VALUE : s_instance.m_externalCameraSwitchKeyModifier; } set { if (Instance != null) { Instance.m_externalCameraSwitchKeyModifier = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..85bb4008d8caff6466764c0d84f662ae4fc72ff1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/ExternalCameraSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3af8081dcf19ca41b1fbabc1ade9660 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..648dab2baa33fad8582451dd3b66b27c53cd09a9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs @@ -0,0 +1,19 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_OCULUS_VR_MODULE_DEFAULT_VALUE = true; + + [SerializeField] + private bool m_activateOculusVRModule = ACTIVATE_OCULUS_VR_MODULE_DEFAULT_VALUE; + [SerializeField] + private string m_oculusVRAndroidManifestPath = string.Empty; + + public static bool activateOculusVRModule { get { return Instance == null ? ACTIVATE_OCULUS_VR_MODULE_DEFAULT_VALUE : s_instance.m_activateOculusVRModule; } set { if (Instance != null) { Instance.m_activateOculusVRModule = value; } } } + public static string oculusVRAndroidManifestPath { get { return Instance == null ? "" : s_instance.m_oculusVRAndroidManifestPath; } set { if (Instance != null) { Instance.m_oculusVRAndroidManifestPath = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..37c3828d34022dc0bd6611a2a62d22aec7b5bae8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OculusSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d03f3ee2248612d48bb6ff9d521e0055 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..dc54e8467420c2bf3f28229b370d86d881cfbcdd --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs @@ -0,0 +1,16 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_STEAM_VR_MODULE_DEFAULT_VALUE = true; + + [SerializeField] + private bool m_activateSteamVRModule = ACTIVATE_STEAM_VR_MODULE_DEFAULT_VALUE; + + public static bool activateSteamVRModule { get { return Instance == null ? ACTIVATE_STEAM_VR_MODULE_DEFAULT_VALUE : s_instance.m_activateSteamVRModule; } set { if (Instance != null) { Instance.m_activateSteamVRModule = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..bc236e360da4bad22f887d710517af7b16dd6909 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/OpenVRSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c004bf8934762145a4ba4e505db4103 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..3f8a6379cd217c1e6479f1c1436fea19418182b0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs @@ -0,0 +1,56 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using HTC.UnityPlugin.VRModuleManagement; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const string SIMULATE_TRACKPAD_TOUCH_TOOLTIP = "Hold Shift key and move the mouse to simulate trackpad touching event"; + public const string SIMULATOR_KEY_MOVE_SPEED_TOOLTIP = "W/A/S/D"; + public const string SIMULATOR_KEY_ROTATE_SPEED_TOOLTIP = "Arrow Up/Down/Left/Right"; + + public const bool ACTIVATE_SIMULATOR_MODULE_DEFAULT_VALUE = false; + public const bool SIMULATOR_AUTO_TRACK_MAIN_CAMERA_DEFAULT_VALUE = true; + public const bool ENABLE_SIMULATOR_KEYBOARD_MOUSE_CONTROL_DEFAULT_VALUE = true; + public const bool SIMULATE_TRACKPAD_TOUCH_DEFAULT_VALUE = true; + public const float SIMULATOR_KEY_MOVE_SPEED_DEFAULT_VALUE = 1.5f; + public const float SIMULATOR_MOUSE_ROTATE_SPEED_DEFAULT_VALUE = 90f; + public const float SIMULATOR_KEY_ROTATE_SPEED_DEFAULT_VALUE = 90f; + public const VRModuleDeviceModel SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE = VRModuleDeviceModel.ViveController; + public const VRModuleDeviceModel SIMULATOR_OTHER_MODEL_DEFAULT_VALUE = VRModuleDeviceModel.ViveTracker; + + [SerializeField] + private bool m_activateSimulatorModule = ACTIVATE_SIMULATOR_MODULE_DEFAULT_VALUE; + [SerializeField] + private bool m_simulatorAutoTrackMainCamera = SIMULATOR_AUTO_TRACK_MAIN_CAMERA_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATE_TRACKPAD_TOUCH_TOOLTIP)] + private bool m_simulateTrackpadTouch = SIMULATE_TRACKPAD_TOUCH_DEFAULT_VALUE; + [SerializeField] + private bool m_enableSimulatorKeyboardMouseControl = ENABLE_SIMULATOR_KEYBOARD_MOUSE_CONTROL_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATOR_KEY_MOVE_SPEED_TOOLTIP)] + private float m_simulatorKeyMoveSpeed = SIMULATOR_KEY_MOVE_SPEED_DEFAULT_VALUE; + [SerializeField] + private float m_simulatorMouseRotateSpeed = SIMULATOR_MOUSE_ROTATE_SPEED_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATOR_KEY_MOVE_SPEED_TOOLTIP)] + private float m_simulatorKeyRotateSpeed = SIMULATOR_KEY_ROTATE_SPEED_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATOR_KEY_MOVE_SPEED_TOOLTIP)] + private VRModuleDeviceModel m_simulatorLeftControllerModel = SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATOR_KEY_MOVE_SPEED_TOOLTIP)] + private VRModuleDeviceModel m_simulatorRightControllerModel = SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE; + [SerializeField, Tooltip(SIMULATOR_KEY_MOVE_SPEED_TOOLTIP)] + private VRModuleDeviceModel m_simulatorOtherModel = SIMULATOR_OTHER_MODEL_DEFAULT_VALUE; + + public static bool activateSimulatorModule { get { return Instance == null ? ACTIVATE_SIMULATOR_MODULE_DEFAULT_VALUE : s_instance.m_activateSimulatorModule; } set { if (Instance != null) { Instance.m_activateSimulatorModule = value; } } } + public static bool enableSimulatorKeyboardMouseControl { get { return Instance == null ? ENABLE_SIMULATOR_KEYBOARD_MOUSE_CONTROL_DEFAULT_VALUE : s_instance.m_enableSimulatorKeyboardMouseControl; } set { if (Instance != null) { Instance.m_enableSimulatorKeyboardMouseControl = value; } } } + public static bool simulatorAutoTrackMainCamera { get { return Instance == null ? SIMULATOR_AUTO_TRACK_MAIN_CAMERA_DEFAULT_VALUE : s_instance.m_simulatorAutoTrackMainCamera; } set { if (Instance != null) { Instance.m_simulatorAutoTrackMainCamera = value; } } } + public static bool simulateTrackpadTouch { get { return Instance == null ? SIMULATE_TRACKPAD_TOUCH_DEFAULT_VALUE : s_instance.m_simulateTrackpadTouch; } set { if (Instance != null) { Instance.m_simulateTrackpadTouch = value; } } } + public static float simulatorKeyMoveSpeed { get { return Instance == null ? SIMULATOR_KEY_MOVE_SPEED_DEFAULT_VALUE : s_instance.m_simulatorKeyMoveSpeed; } set { if (Instance != null) { Instance.m_simulatorKeyMoveSpeed = value; } } } + public static float simulatorMouseRotateSpeed { get { return Instance == null ? SIMULATOR_MOUSE_ROTATE_SPEED_DEFAULT_VALUE : s_instance.m_simulatorMouseRotateSpeed; } set { if (Instance != null) { Instance.m_simulatorMouseRotateSpeed = value; } } } + public static float simulatorKeyRotateSpeed { get { return Instance == null ? SIMULATOR_KEY_ROTATE_SPEED_DEFAULT_VALUE : s_instance.m_simulatorKeyRotateSpeed; } set { if (Instance != null) { Instance.m_simulatorKeyRotateSpeed = value; } } } + public static VRModuleDeviceModel simulatorLeftControllerModel { get { return Instance == null ? SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE : s_instance.m_simulatorLeftControllerModel; } set { if (Instance != null) { Instance.m_simulatorLeftControllerModel = value; } } } + public static VRModuleDeviceModel simulatorRightControllerModel { get { return Instance == null ? SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE : s_instance.m_simulatorRightControllerModel; } set { if (Instance != null) { Instance.m_simulatorRightControllerModel = value; } } } + public static VRModuleDeviceModel simulatorOtherModel { get { return Instance == null ? SIMULATOR_CONTROLLER_MODEL_DEFAULT_VALUE : s_instance.m_simulatorOtherModel; } set { if (Instance != null) { Instance.m_simulatorOtherModel = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6b3af0cc0ab8c411828440f51a3336053c084ec3 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/SimulatorSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0584f1c4c2fadeb48b7f102b40ee8ca2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..03e84020c483b1161af57d335f83e4de167d6aeb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs @@ -0,0 +1,16 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_UNITY_NATIVE_VR_MODULE_DEFAULT_VALUE = true; + + [SerializeField] + private bool m_activateUnityNativeVRModule = ACTIVATE_UNITY_NATIVE_VR_MODULE_DEFAULT_VALUE; + + public static bool activateUnityNativeVRModule { get { return Instance == null ? ACTIVATE_UNITY_NATIVE_VR_MODULE_DEFAULT_VALUE : s_instance.m_activateUnityNativeVRModule; } set { if (Instance != null) { Instance.m_activateUnityNativeVRModule = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..64cbb6c5d5d3ba658458ae84e28d9f21fea770b1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityNativeVRSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73c352c235905084aa5998d0f06ced4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..d5753b8ffbf1ea02a172c7ee0e7f09e6d598a67f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs @@ -0,0 +1,29 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_UNITY_XR_MODULE_DEFAULT_VALUE = true; + + [SerializeField] + private bool m_activateUnityXRModule = ACTIVATE_UNITY_XR_MODULE_DEFAULT_VALUE; + + public static bool activateUnityXRModule + { + get + { + return Instance == null ? ACTIVATE_UNITY_XR_MODULE_DEFAULT_VALUE : s_instance.m_activateUnityXRModule; + } + set + { + if (Instance != null) + { + Instance.m_activateUnityXRModule = value; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..72b82e2f66cf14be26422560ccd89712dfa6c866 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/UnityXRSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b6c0b272ed0591f4cbfcc029be830232 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs new file mode 100644 index 0000000000000000000000000000000000000000..a9a7723b6d0ef5c4919de7b10f644bfff12922b8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs @@ -0,0 +1,47 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public partial class VIUSettings : ScriptableObject + { + public const bool ACTIVATE_WAVE_VR_MODULE_DEFAULT_VALUE = true; + public const bool SIMULATE_WAVE_VR_6DOF_CONTROLLER_DEFAULT_VALUE = false; + public const bool WAVE_VR_ADD_VIRTUAL_ARM_TO_3DOF_CONTROLLER = true; + public static readonly Vector3 WAVE_VR_VIRTUAL_NECK_POSITION_DEFAULT_VALUE = new Vector3(0.0f, -0.15f, 0.0f); + public static readonly Vector3 WAVE_VR_VIRTUAL_ELBOW_REST_POSITION_DEFAULT_VALUE = new Vector3(0.195f, -0.5f, 0.005f); + public static readonly Vector3 WAVE_VR_VIRTUAL_ARM_EXTENSION_OFFSET_DEFAULT_VALUE = new Vector3(-0.13f, 0.14f, 0.08f); + public static readonly Vector3 WAVE_VR_VIRTUAL_WRIST_REST_POSITION_DEFAULT_VALUE = new Vector3(0.0f, 0.0f, 0.35f); + public static readonly Vector3 WAVE_VR_VIRTUAL_HAND_REST_POSITION_DEFAULT_VALUE = new Vector3(0.0f, 0.0f, 0.05f); + + [SerializeField] + private bool m_activateWaveVRModule = ACTIVATE_WAVE_VR_MODULE_DEFAULT_VALUE; + [SerializeField] + private bool m_simulateWaveVR6DoFController = SIMULATE_WAVE_VR_6DOF_CONTROLLER_DEFAULT_VALUE; + [SerializeField] + private bool m_waveVRAddVirtualArmTo3DoFController = WAVE_VR_ADD_VIRTUAL_ARM_TO_3DOF_CONTROLLER; + [SerializeField] + private Vector3 m_waveVRVirtualNeckPosition = WAVE_VR_VIRTUAL_NECK_POSITION_DEFAULT_VALUE; + [SerializeField] + private Vector3 m_waveVRVirtualElbowRestPosition = WAVE_VR_VIRTUAL_ELBOW_REST_POSITION_DEFAULT_VALUE; + [SerializeField] + private Vector3 m_waveVRVirtualArmExtensionOffset = WAVE_VR_VIRTUAL_ARM_EXTENSION_OFFSET_DEFAULT_VALUE; + [SerializeField] + private Vector3 m_waveVRVirtualWristRestPosition = WAVE_VR_VIRTUAL_WRIST_REST_POSITION_DEFAULT_VALUE; + [SerializeField] + private Vector3 m_waveVRVirtualHandRestPosition = WAVE_VR_VIRTUAL_HAND_REST_POSITION_DEFAULT_VALUE; + [SerializeField] + private string m_waveVRAndroidManifestPath = string.Empty; + + public static bool activateWaveVRModule { get { return Instance == null ? ACTIVATE_WAVE_VR_MODULE_DEFAULT_VALUE : s_instance.m_activateWaveVRModule; } set { if (Instance != null) { Instance.m_activateWaveVRModule = value; } } } + public static bool simulateWaveVR6DofController { get { return Instance == null ? SIMULATE_WAVE_VR_6DOF_CONTROLLER_DEFAULT_VALUE : s_instance.m_simulateWaveVR6DoFController; } set { if (Instance != null) { Instance.m_simulateWaveVR6DoFController = value; } } } + public static bool waveVRAddVirtualArmTo3DoFController { get { return Instance == null ? WAVE_VR_ADD_VIRTUAL_ARM_TO_3DOF_CONTROLLER : s_instance.m_waveVRAddVirtualArmTo3DoFController; } set { if (Instance != null) { Instance.m_waveVRAddVirtualArmTo3DoFController = value; } } } + public static Vector3 waveVRVirtualNeckPosition { get { return Instance == null ? WAVE_VR_VIRTUAL_NECK_POSITION_DEFAULT_VALUE : s_instance.m_waveVRVirtualNeckPosition; } set { if (Instance != null) { Instance.m_waveVRVirtualNeckPosition = value; } } } + public static Vector3 waveVRVirtualElbowRestPosition { get { return Instance == null ? WAVE_VR_VIRTUAL_ELBOW_REST_POSITION_DEFAULT_VALUE : s_instance.m_waveVRVirtualElbowRestPosition; } set { if (Instance != null) { Instance.m_waveVRVirtualElbowRestPosition = value; } } } + public static Vector3 waveVRVirtualArmExtensionOffset { get { return Instance == null ? WAVE_VR_VIRTUAL_ARM_EXTENSION_OFFSET_DEFAULT_VALUE : s_instance.m_waveVRVirtualArmExtensionOffset; } set { if (Instance != null) { Instance.m_waveVRVirtualArmExtensionOffset = value; } } } + public static Vector3 waveVRVirtualWristRestPosition { get { return Instance == null ? WAVE_VR_VIRTUAL_WRIST_REST_POSITION_DEFAULT_VALUE : s_instance.m_waveVRVirtualWristRestPosition; } set { if (Instance != null) { Instance.m_waveVRVirtualWristRestPosition = value; } } } + public static Vector3 waveVRVirtualHandRestPosition { get { return Instance == null ? WAVE_VR_VIRTUAL_HAND_REST_POSITION_DEFAULT_VALUE : s_instance.m_waveVRVirtualHandRestPosition; } set { if (Instance != null) { Instance.m_waveVRVirtualHandRestPosition = value; } } } + public static string waveVRAndroidManifestPath { get { return Instance == null ? string.Empty : s_instance.m_waveVRAndroidManifestPath; } set { if (Instance != null) { Instance.m_waveVRAndroidManifestPath = value; } } } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4082033e330859541e0fb7226f86e31446f09aec --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUSettingsPartials/WaveVRSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9383b6d77973fd64cb81667b40063bb1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs new file mode 100644 index 0000000000000000000000000000000000000000..d9addd12995d7ee5d1b155840146e8ca228e7839 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs @@ -0,0 +1,11 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System; + +namespace HTC.UnityPlugin.Vive +{ + public static class VIUVersion + { + public static readonly Version current = new Version("1.12.2.0"); + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..bda0ed15fff96debfc991b9705381c01d8742af6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VIUVersion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4b2f32102a5f2364a911a4855320f8f8 +timeCreated: 1502444518 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent.meta new file mode 100644 index 0000000000000000000000000000000000000000..149185df8e5aa6891caaec3d02905f4ed3f249e9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3a75531590c794c468c5eba956d1628d +folderAsset: yes +timeCreated: 1477657139 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..21edf0d043fa40f6e78274ff070f04575d561cb7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs @@ -0,0 +1,75 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.ColliderEvent; +using HTC.UnityPlugin.Utility; +using UnityEngine; +using UnityEngine.Serialization; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Object Grabber/Vive Collider Event Caster (Grabber)", 2)] + public class ViveColliderEventCaster : ColliderEventCaster, IViveRoleComponent + { + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.RightHand); + [SerializeField] + [CustomOrderedEnum] + private ControllerButton m_buttonTrigger = ControllerButton.Trigger; + [SerializeField] + [CustomOrderedEnum] + private ControllerButton m_buttonPadOrStick = ControllerButton.Pad; + [SerializeField] + [CustomOrderedEnum] + private ControllerButton m_buttonGripOrHandTrigger = ControllerButton.Grip; + [SerializeField] + [CustomOrderedEnum] + private ControllerButton m_buttonFunctionKey = ControllerButton.Menu; + [SerializeField] + [FormerlySerializedAs("m_buttonEvents")] + [FlagsFromEnum(typeof(ControllerButton))] + private ulong m_additionalButtons = 0ul; + [SerializeField] + private ScrollType m_scrollType = ScrollType.Auto; + [SerializeField] + private Vector2 m_scrollDeltaScale = new Vector2(1f, -1f); + + public ViveRoleProperty viveRole { get { return m_viveRole; } } + public ScrollType scrollType { get { return m_scrollType; } set { m_scrollType = value; } } + public Vector2 scrollDeltaScale { get { return m_scrollDeltaScale; } set { m_scrollDeltaScale = value; } } +#if UNITY_EDITOR + protected virtual void OnValidate() + { + FilterOutAssignedButton(); + } +#endif + protected void FilterOutAssignedButton() + { + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_buttonTrigger, false); + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_buttonPadOrStick, false); + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_buttonFunctionKey, false); + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_buttonGripOrHandTrigger, false); + } + + protected virtual void Start() + { + buttonEventDataList.Add(new ViveColliderButtonEventData(this, m_buttonTrigger, ColliderButtonEventData.InputButton.Trigger)); + if (m_buttonPadOrStick != ControllerButton.None) { buttonEventDataList.Add(new ViveColliderButtonEventData(this, m_buttonPadOrStick, ColliderButtonEventData.InputButton.PadOrStick)); } + if (m_buttonPadOrStick != ControllerButton.None) { buttonEventDataList.Add(new ViveColliderButtonEventData(this, m_buttonFunctionKey, ColliderButtonEventData.InputButton.FunctionKey)); } + if (m_buttonPadOrStick != ControllerButton.None) { buttonEventDataList.Add(new ViveColliderButtonEventData(this, m_buttonGripOrHandTrigger, ColliderButtonEventData.InputButton.GripOrHandTrigger)); } + + FilterOutAssignedButton(); + + var eventBtn = ColliderButtonEventData.InputButton.GripOrHandTrigger + 1; + var addBtns = m_additionalButtons; + for (ControllerButton btn = 0; addBtns > 0u; ++btn, addBtns >>= 1) + { + if ((addBtns & 1u) == 0u) { continue; } + + buttonEventDataList.Add(new ViveColliderButtonEventData(this, btn, eventBtn++)); + } + + axisEventDataList.Add(new ViveColliderPadAxisEventData(this)); + axisEventDataList.Add(new ViveColliderTriggerAxisEventData(this)); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..914e19042bacf07db7f5a649db919f87b124cbc6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventCaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1ef2272bf13df804f93135bad41885ae +timeCreated: 1521636571 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs new file mode 100644 index 0000000000000000000000000000000000000000..b2cf25e53146d5b51c1b10190e010d2ae624f60f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs @@ -0,0 +1,195 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.ColliderEvent; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public static class ViveColliderEventDataExtension + { + public static bool IsViveButton(this ColliderButtonEventData eventData, HandRole hand) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + return (eventData as ViveColliderButtonEventData).viveRole.IsRole(hand); + } + + public static bool IsViveButtonEx<TRole>(this ColliderButtonEventData eventData, TRole role) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + return (eventData as ViveColliderButtonEventData).viveRole.IsRole(role); + } + + public static bool IsViveButton(this ColliderButtonEventData eventData, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + return (eventData as ViveColliderButtonEventData).viveButton == button; + } + + public static bool IsViveButton(this ColliderButtonEventData eventData, HandRole hand, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + var viveEvent = eventData as ViveColliderButtonEventData; + return viveEvent.viveRole.IsRole(hand) && viveEvent.viveButton == button; + } + + public static bool IsViveButtonEx<TRole>(this ColliderButtonEventData eventData, TRole role, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + var viveEvent = eventData as ViveColliderButtonEventData; + return viveEvent.viveRole.IsRole(role) && viveEvent.viveButton == button; + } + + public static bool TryGetViveButtonEventData(this ColliderButtonEventData eventData, out ViveColliderButtonEventData viveEventData) + { + viveEventData = null; + + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderButtonEventData)) { return false; } + + viveEventData = eventData as ViveColliderButtonEventData; + return true; + } + + public static bool IsViveTriggerAxis(this ColliderAxisEventData eventData) + { + if (eventData == null) { return false; } + + return eventData is ViveColliderTriggerAxisEventData; + } + + public static bool IsViveTriggerAxis(this ColliderAxisEventData eventData, HandRole hand) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderTriggerAxisEventData)) { return false; } + + return (eventData as ViveColliderTriggerAxisEventData).viveRole.IsRole(hand); + } + + public static bool IsViveTriggerAxisEx<TRole>(this ColliderAxisEventData eventData, TRole role) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderTriggerAxisEventData)) { return false; } + + return (eventData as ViveColliderTriggerAxisEventData).viveRole.IsRole(role); + } + + public static bool TryGetViveTriggerAxisEventData(this ColliderAxisEventData eventData, out ViveColliderTriggerAxisEventData viveEventData) + { + viveEventData = null; + + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderTriggerAxisEventData)) { return false; } + + viveEventData = eventData as ViveColliderTriggerAxisEventData; + return true; + } + + public static bool IsVivePadAxis(this ColliderAxisEventData eventData) + { + if (eventData == null) { return false; } + + return eventData is ViveColliderPadAxisEventData; + } + + public static bool IsVivePadAxis(this ColliderAxisEventData eventData, HandRole hand) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderPadAxisEventData)) { return false; } + + return (eventData as ViveColliderTriggerAxisEventData).viveRole.IsRole(hand); + } + + public static bool IsVivePadAxisEx<TRole>(this ColliderAxisEventData eventData, TRole role) + { + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderPadAxisEventData)) { return false; } + + return (eventData as ViveColliderTriggerAxisEventData).viveRole.IsRole(role); + } + + public static bool TryGetVivePadAxisEventData(this ColliderAxisEventData eventData, out ViveColliderPadAxisEventData viveEventData) + { + viveEventData = null; + + if (eventData == null) { return false; } + + if (!(eventData is ViveColliderPadAxisEventData)) { return false; } + + viveEventData = eventData as ViveColliderPadAxisEventData; + return true; + } + } + + public class ViveColliderButtonEventData : ColliderButtonEventData + { + public ViveColliderEventCaster viveEventCaster { get; private set; } + public ControllerButton viveButton { get; private set; } + + public ViveRoleProperty viveRole { get { return viveEventCaster.viveRole; } } + + public ViveColliderButtonEventData(ViveColliderEventCaster eventCaster, ControllerButton viveButton, InputButton button) : base(eventCaster, button) + { + this.viveEventCaster = eventCaster; + this.viveButton = viveButton; + } + + public override bool GetPress() { return ViveInput.GetPressEx(viveRole.roleType, viveRole.roleValue, viveButton); } + + public override bool GetPressDown() { return ViveInput.GetPressDownEx(viveRole.roleType, viveRole.roleValue, viveButton); } + + public override bool GetPressUp() { return ViveInput.GetPressUpEx(viveRole.roleType, viveRole.roleValue, viveButton); } + } + + public class ViveColliderTriggerAxisEventData : ColliderAxisEventData + { + public ViveColliderEventCaster viveEventCaster { get; private set; } + public ViveRoleProperty viveRole { get { return viveEventCaster.viveRole; } } + + public ViveColliderTriggerAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D1, InputAxis.Trigger1D) + { + viveEventCaster = eventCaster; + } + + public override Vector4 GetDelta() + { + return new Vector4(ViveInput.GetTriggerValueEx(viveRole.roleType, viveRole.roleValue, false) - ViveInput.GetTriggerValueEx(viveRole.roleType, viveRole.roleValue, true), 0f); + } + } + + public class ViveColliderPadAxisEventData : ColliderAxisEventData + { + public ViveColliderEventCaster viveEventCaster { get; private set; } + public ViveRoleProperty viveRole { get { return viveEventCaster.viveRole; } } + + public ViveColliderPadAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D2, InputAxis.Scroll2D) + { + viveEventCaster = eventCaster; + } + + public override Vector4 GetDelta() + { + return ViveInput.GetScrollDelta(viveRole, viveEventCaster.scrollType, viveEventCaster.scrollDeltaScale); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2914e9222eef083f0150d6a98a94824c4580e4a0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveColliderEvent/ViveColliderEventData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3d56742afa1365641b45ecd15d6153a2 +timeCreated: 1477657192 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput.meta new file mode 100644 index 0000000000000000000000000000000000000000..a47466295dc0be2cff294dad1856d7449a8d1b80 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1d794a621032c424db4ff33092b7c1e9 +folderAsset: yes +timeCreated: 1457064102 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs new file mode 100644 index 0000000000000000000000000000000000000000..60bad255f74dc56ef5832604e619cc08331c6a03 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs @@ -0,0 +1,660 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + // Data structure for storing buttons status. + public partial class ViveInput : SingletonBehaviour<ViveInput> + { + public delegate void RoleEventListener<TRole>(TRole role, ControllerButton button, ButtonEventType eventType); + public delegate void RoleValueEventListener(Type roleType, int roleValue, ControllerButton button, ButtonEventType eventType); + + private interface ICtrlState + { + bool Update(); // return true if frame skipped + void AddListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click); + void RemoveListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click); + void AddListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click); + void RemoveListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click); + bool GetPress(ControllerButton button, bool usePrevState = false); + bool GetPressDown(ControllerButton button); + bool GetPressUp(ControllerButton button); + float LastPressDownTime(ControllerButton button); + int ClickCount(ControllerButton button); + float GetAxis(ControllerAxis axis, bool usePrevState = false); + Vector2 GetPadAxis(bool usePrevState = false); + Vector2 GetPadPressVector(); + Vector2 GetPadTouchVector(); + Vector2 GetScrollDelta(ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY); + ulong PreviousButtonPressed { get; } + ulong CurrentButtonPressed { get; } + } + + private class CtrlState : ICtrlState + { + public virtual bool Update() { return true; } // return true if frame skipped + public virtual void AddListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void RemoveListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void AddListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void RemoveListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual bool GetPress(ControllerButton button, bool usePrevState = false) { return false; } + public virtual bool GetPressDown(ControllerButton button) { return false; } + public virtual bool GetPressUp(ControllerButton button) { return false; } + public virtual float LastPressDownTime(ControllerButton button) { return 0f; } + public virtual int ClickCount(ControllerButton button) { return 0; } + public virtual float GetAxis(ControllerAxis axis, bool usePrevState = false) { return 0f; } + public virtual Vector2 GetPadAxis(bool usePrevState = false) { return Vector2.zero; } + public virtual Vector2 GetPadPressVector() { return Vector2.zero; } + public virtual Vector2 GetPadTouchVector() { return Vector2.zero; } + public virtual Vector2 GetScrollDelta(ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) { return Vector2.zero; } + public virtual ulong PreviousButtonPressed { get { return 0ul; } } + public virtual ulong CurrentButtonPressed { get { return 0ul; } } + } + + private sealed class RCtrlState : CtrlState + { + public readonly ViveRole.IMap m_map; + public readonly int m_roleValue; + public readonly Type m_roleEnumType; + + private int updatedFrameCount = -1; + private uint prevDeviceIndex; + + private ulong prevButtonPressed; + private ulong currButtonPressed; + private VRModuleInput2DType currentInput2DType; + + private readonly float[] prevAxisValue = new float[CONTROLLER_AXIS_COUNT]; + private readonly float[] currAxisValue = new float[CONTROLLER_AXIS_COUNT]; + + private readonly float[] lastPressDownTime = new float[CONTROLLER_BUTTON_COUNT]; + private readonly int[] clickCount = new int[CONTROLLER_BUTTON_COUNT]; + + private Action[][] listeners; + private RoleValueEventListener[][] typeListeners; + + private Vector2 padDownAxis; + private Vector2 padTouchDownAxis; + + private const float hairDelta = 0.1f; // amount trigger must be pulled or released to change state + private float hairTriggerLimit; + + public override ulong PreviousButtonPressed { get { return prevButtonPressed; } } + + public override ulong CurrentButtonPressed { get { return currButtonPressed; } } + + public RCtrlState(Type roleEnumType, int roleValue) + { + m_map = ViveRole.GetMap(roleEnumType); + m_roleValue = roleValue; + m_roleEnumType = roleEnumType; + } + + // return true if frame skipped + public override bool Update() + { + if (!ChangeProp.Set(ref updatedFrameCount, Time.frameCount)) { return true; } + + var deviceIndex = m_map.GetMappedDeviceByRoleValue(m_roleValue); + + // treat this frame as updated if both prevDeviceIndex and currentDeviceIndex are invalid + if (!VRModule.IsValidDeviceIndex(prevDeviceIndex) && !VRModule.IsValidDeviceIndex(deviceIndex)) { return false; } + + // get device state + var currState = VRModule.GetCurrentDeviceState(deviceIndex); + + // copy to previous states and reset current state + prevDeviceIndex = deviceIndex; + + prevButtonPressed = currButtonPressed; + currButtonPressed = 0; + currentInput2DType = currState.input2DType; + + for (int i = CONTROLLER_AXIS_COUNT - 1; i >= 0; --i) + { + prevAxisValue[i] = currAxisValue[i]; + currAxisValue[i] = 0f; + } + + // update button states + bool padPress, padTouch; + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.System, currState.GetButtonPress(VRModuleRawButton.System)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Menu, currState.GetButtonPress(VRModuleRawButton.ApplicationMenu)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.MenuTouch, currState.GetButtonTouch(VRModuleRawButton.ApplicationMenu)); + //EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Trigger, currState.GetButtonPress(VRModuleRawButton.Trigger)); + //EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.TriggerTouch, currState.GetButtonTouch(VRModuleRawButton.Trigger)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Pad, padPress = currState.GetButtonPress(VRModuleRawButton.Touchpad)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.PadTouch, padTouch = currState.GetButtonTouch(VRModuleRawButton.Touchpad)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Grip, currState.GetButtonPress(VRModuleRawButton.Grip)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.GripTouch, currState.GetButtonTouch(VRModuleRawButton.Grip)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.CapSenseGrip, currState.GetButtonPress(VRModuleRawButton.CapSenseGrip)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.CapSenseGripTouch, currState.GetButtonTouch(VRModuleRawButton.CapSenseGrip)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.ProximitySensor, currState.GetButtonPress(VRModuleRawButton.ProximitySensor)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.AKey, currState.GetButtonPress(VRModuleRawButton.A)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.AKeyTouch, currState.GetButtonTouch(VRModuleRawButton.A)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Bumper, currState.GetButtonPress(VRModuleRawButton.Bumper)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.BumperTouch, currState.GetButtonTouch(VRModuleRawButton.Bumper)); + + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Axis4, currState.GetButtonPress(VRModuleRawButton.Axis4)); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Axis4Touch, currState.GetButtonTouch(VRModuleRawButton.Axis4)); + + // update axis values + float currTriggerValue; + currAxisValue[(int)ControllerAxis.PadX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.PadY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + currAxisValue[(int)ControllerAxis.Trigger] = currTriggerValue = currState.GetAxisValue(VRModuleRawAxis.Trigger); + currAxisValue[(int)ControllerAxis.CapSenseGrip] = currState.GetAxisValue(VRModuleRawAxis.CapSenseGrip); + currAxisValue[(int)ControllerAxis.IndexCurl] = currState.GetAxisValue(VRModuleRawAxis.IndexCurl); + currAxisValue[(int)ControllerAxis.MiddleCurl] = currState.GetAxisValue(VRModuleRawAxis.MiddleCurl); + currAxisValue[(int)ControllerAxis.RingCurl] = currState.GetAxisValue(VRModuleRawAxis.RingCurl); + currAxisValue[(int)ControllerAxis.PinkyCurl] = currState.GetAxisValue(VRModuleRawAxis.PinkyCurl); + + switch (currentInput2DType) + { + case VRModuleInput2DType.Unknown: + case VRModuleInput2DType.TrackpadOnly: + currAxisValue[(int)ControllerAxis.PadX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.PadY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + if (!VIUSettings.individualTouchpadJoystickValue) + { + currAxisValue[(int)ControllerAxis.JoystickX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.JoystickY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + } + break; + case VRModuleInput2DType.JoystickOnly: + currAxisValue[(int)ControllerAxis.JoystickX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.JoystickY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + if (!VIUSettings.individualTouchpadJoystickValue) + { + currAxisValue[(int)ControllerAxis.PadX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.PadY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + } + break; + case VRModuleInput2DType.Both: + currAxisValue[(int)ControllerAxis.PadX] = currState.GetAxisValue(VRModuleRawAxis.TouchpadX); + currAxisValue[(int)ControllerAxis.PadY] = currState.GetAxisValue(VRModuleRawAxis.TouchpadY); + currAxisValue[(int)ControllerAxis.JoystickX] = currState.GetAxisValue(VRModuleRawAxis.JoystickX); + currAxisValue[(int)ControllerAxis.JoystickY] = currState.GetAxisValue(VRModuleRawAxis.JoystickY); + break; + } + + if (padPress || padTouch) + { + // update d-pad + var axis = new Vector2(currAxisValue[(int)ControllerAxis.PadX], currAxisValue[(int)ControllerAxis.PadY]); + var deadZone = VIUSettings.virtualDPadDeadZone; + + if (axis.sqrMagnitude >= deadZone * deadZone) + { + var right = Vector2.Angle(Vector2.right, axis) < 45f; + var up = Vector2.Angle(Vector2.up, axis) < 45f; + var left = Vector2.Angle(Vector2.left, axis) < 45f; + var down = Vector2.Angle(Vector2.down, axis) < 45f; + + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadRight, padPress && right); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUp, padPress && up); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLeft, padPress && left); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadDown, padPress && down); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadRightTouch, padTouch && right); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUpTouch, padTouch && up); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLeftTouch, padTouch && left); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadDownTouch, padTouch && down); + + var upperRight = axis.x > 0f && axis.y > 0f; + var upperLeft = axis.x < 0f && axis.y > 0f; + var lowerLeft = axis.x < 0f && axis.y < 0f; + var lowerRight = axis.x > 0f && axis.y < 0f; + + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUpperRight, padPress && upperRight); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUpperLeft, padPress && upperLeft); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLowerLeft, padPress && lowerLeft); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLowerRight, padPress && lowerRight); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUpperRightTouch, padTouch && upperRight); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadUpperLeftTouch, padTouch && upperLeft); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLowerLeftTouch, padTouch && lowerLeft); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadLowerRightTouch, padTouch && lowerRight); + } + else + { + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadCenter, padPress); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.DPadCenterTouch, padTouch); + } + } + + // update hair trigger + var prevTriggerPressed = GetPress(ControllerButton.Trigger, true); + var currTriggerPressed = prevTriggerPressed ? currTriggerValue >= 0.45f : currTriggerValue >= 0.55f; + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.Trigger, currTriggerPressed); + + var prevTriggerTouch = GetPress(ControllerButton.TriggerTouch, true); + var currTriggerTouch = currState.GetButtonTouch(VRModuleRawButton.Trigger) || (prevTriggerTouch ? currTriggerValue >= 0.25f : currTriggerValue >= 0.20f); + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.TriggerTouch, currTriggerTouch); + + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.FullTrigger, currTriggerValue >= 0.99f); + + if (EnumUtils.GetFlag(prevButtonPressed, (int)ControllerButton.HairTrigger)) + { + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.HairTrigger, currTriggerValue >= (hairTriggerLimit - hairDelta) && currTriggerValue > 0.0f); + } + else + { + EnumUtils.SetFlag(ref currButtonPressed, (int)ControllerButton.HairTrigger, currTriggerValue > (hairTriggerLimit + hairDelta) || currTriggerValue >= 1.0f); + } + + if (EnumUtils.GetFlag(currButtonPressed, (int)ControllerButton.HairTrigger)) + { + hairTriggerLimit = Mathf.Max(hairTriggerLimit, currTriggerValue); + } + else + { + hairTriggerLimit = Mathf.Min(hairTriggerLimit, currTriggerValue); + } + + // record pad down axis values + if (GetPressDown(ControllerButton.Pad)) + { + padDownAxis = new Vector2(currAxisValue[(int)ControllerAxis.PadX], currAxisValue[(int)ControllerAxis.PadY]); + } + + if (GetPressDown(ControllerButton.PadTouch)) + { + padTouchDownAxis = new Vector2(currAxisValue[(int)ControllerAxis.PadX], currAxisValue[(int)ControllerAxis.PadY]); + } + + // record press down time and click count + var timeNow = Time.unscaledTime; + for (int button = 0; button < CONTROLLER_BUTTON_COUNT; ++button) + { + if (GetPressDown((ControllerButton)button)) + { + if (timeNow - lastPressDownTime[button] < clickInterval) + { + ++clickCount[button]; + } + else + { + clickCount[button] = 1; + } + + lastPressDownTime[button] = timeNow; + } + } + + // invoke event listeners + for (ControllerButton button = 0; button < (ControllerButton)CONTROLLER_BUTTON_COUNT; ++button) + { + if (GetPress(button)) + { + if (GetPressDown(button)) + { + // PressDown event + TryInvokeListener(button, ButtonEventType.Down); + TryInvokeTypeListener(button, ButtonEventType.Down); + } + + // Press event + TryInvokeListener(button, ButtonEventType.Press); + TryInvokeTypeListener(button, ButtonEventType.Press); + } + else if (GetPressUp(button)) + { + // PressUp event + TryInvokeListener(button, ButtonEventType.Up); + TryInvokeTypeListener(button, ButtonEventType.Up); + + if (timeNow - lastPressDownTime[(int)button] < clickInterval) + { + // Click event + TryInvokeListener(button, ButtonEventType.Click); + TryInvokeTypeListener(button, ButtonEventType.Click); + } + } + } + + return false; + } + + private void TryInvokeListener(ControllerButton button, ButtonEventType type) + { + if (listeners == null) { return; } + if (listeners[(int)button] == null) { return; } + if (listeners[(int)button][(int)type] == null) { return; } + listeners[(int)button][(int)type].Invoke(); + } + + public override void AddListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) + { + if (listeners == null) { listeners = new Action[CONTROLLER_BUTTON_COUNT][]; } + if (listeners[(int)button] == null) { listeners[(int)button] = new Action[BUTTON_EVENT_COUNT]; } + if (listeners[(int)button][(int)type] == null) + { + listeners[(int)button][(int)type] = listener; + } + else + { + listeners[(int)button][(int)type] += listener; + } + } + + public override void RemoveListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) + { + if (listeners == null) { return; } + if (listeners[(int)button] == null) { return; } + if (listeners[(int)button][(int)type] == null) { return; } + listeners[(int)button][(int)type] -= listener; + } + + private void TryInvokeTypeListener(ControllerButton button, ButtonEventType type) + { + if (typeListeners == null) { return; } + if (typeListeners[(int)button] == null) { return; } + if (typeListeners[(int)button][(int)type] == null) { return; } + typeListeners[(int)button][(int)type].Invoke(m_roleEnumType, m_roleValue, button, type); + } + + public override void AddListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) + { + if (typeListeners == null) { typeListeners = new RoleValueEventListener[CONTROLLER_BUTTON_COUNT][]; } + if (typeListeners[(int)button] == null) { typeListeners[(int)button] = new RoleValueEventListener[BUTTON_EVENT_COUNT]; } + if (typeListeners[(int)button][(int)type] == null) + { + typeListeners[(int)button][(int)type] = listener; + } + else + { + typeListeners[(int)button][(int)type] += listener; + } + } + + public override void RemoveListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) + { + if (typeListeners == null) { return; } + if (typeListeners[(int)button] == null) { return; } + if (typeListeners[(int)button][(int)type] == null) { return; } + typeListeners[(int)button][(int)type] -= listener; + } + + public override bool GetPress(ControllerButton button, bool usePrevState = false) + { + return IsValidButton(button) && EnumUtils.GetFlag(usePrevState ? prevButtonPressed : currButtonPressed, (int)button); + } + + public override bool GetPressDown(ControllerButton button) + { + return IsValidButton(button) && !EnumUtils.GetFlag(prevButtonPressed, (int)button) && EnumUtils.GetFlag(currButtonPressed, (int)button); + } + + public override bool GetPressUp(ControllerButton button) + { + return IsValidButton(button) && EnumUtils.GetFlag(prevButtonPressed, (int)button) && !EnumUtils.GetFlag(currButtonPressed, (int)button); + } + + public override float LastPressDownTime(ControllerButton button) + { + return IsValidButton(button) ? lastPressDownTime[(int)button] : 0f; + } + + public override int ClickCount(ControllerButton button) + { + return IsValidButton(button) ? clickCount[(int)button] : 0; + } + + public override float GetAxis(ControllerAxis axis, bool usePrevState = false) + { + if (IsValidAxis(axis)) + { + return usePrevState ? prevAxisValue[(int)axis] : currAxisValue[(int)axis]; + } + else + { + return 0f; + } + } + + public override Vector2 GetPadAxis(bool usePrevState = false) + { + if (usePrevState) + { + return new Vector2(prevAxisValue[(int)ControllerAxis.PadX], prevAxisValue[(int)ControllerAxis.PadY]); + } + else + { + return new Vector2(currAxisValue[(int)ControllerAxis.PadX], currAxisValue[(int)ControllerAxis.PadY]); + } + } + + public override Vector2 GetPadPressVector() + { + return GetPress(ControllerButton.Pad) ? (GetPadAxis() - padDownAxis) : Vector2.zero; + } + + public override Vector2 GetPadTouchVector() + { + return GetPress(ControllerButton.PadTouch) ? (GetPadAxis() - padTouchDownAxis) : Vector2.zero; + } + + public override Vector2 GetScrollDelta(ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) + { + if (scrollType == ScrollType.None) { return Vector2.zero; } + + // consider scroll mode depends on whitch device platform useed + // OpenVR: finger dragging on the trackpad to scroll, drag faster to scroll faster + // Oculus: leaning the thumbstick to scroll, lean larger angle to scroll faster + ScrollType mode; + if (scrollType == ScrollType.Auto) + { + switch (currentInput2DType) + { + case VRModuleInput2DType.TouchpadOnly: + mode = ScrollType.Trackpad; + break; + case VRModuleInput2DType.ThumbstickOnly: + mode = ScrollType.Thumbstick; + break; + case VRModuleInput2DType.Unknown: + case VRModuleInput2DType.Both: + var padValue = Vector2.SqrMagnitude(new Vector2(GetAxis(ControllerAxis.PadX), GetAxis(ControllerAxis.PadY))); + var stickValue = Vector2.SqrMagnitude(new Vector2(GetAxis(ControllerAxis.JoystickX), GetAxis(ControllerAxis.JoystickY))); + if (padValue > stickValue) + { + xAxis = ControllerAxis.PadX; + yAxis = ControllerAxis.PadY; + mode = ScrollType.Trackpad; + } + else + { + xAxis = ControllerAxis.JoystickX; + yAxis = ControllerAxis.JoystickY; + mode = ScrollType.Thumbstick; + } + break; + default: + return Vector2.zero; + } + } + else + { + mode = scrollType; + } + + Vector2 scrollDelta; + switch (mode) + { + case ScrollType.Trackpad: + { + var prevX = GetAxis(xAxis, true); + var prevY = GetAxis(yAxis, true); + var currX = GetAxis(xAxis, false); + var currY = GetAxis(yAxis, false); + + // filter out invalid axis values + // assume that valid axis value is never zero + // note: don't know why sometimes even trackpad touched (GetKey(Trackpad)==true), GetAxis(Trackpad) still get zero values + if ((prevX == 0f && prevY == 0f) || (currX == 0f && currY == 0f)) + { + return Vector2.zero; + } + else + { + scrollDelta = new Vector2(prevX - currX, prevY - currY) * 50f; + } + + break; + } + case ScrollType.Thumbstick: + { + var currX = GetAxis(xAxis, false); + var currY = GetAxis(yAxis, false); + + scrollDelta = new Vector2(-currX, -currY) * 5f; + + break; + } + default: + return Vector2.zero; + } + + return Vector2.Scale(scrollDelta, scale); + } + } + + private interface ICtrlState<TRole> : ICtrlState + { + void AddListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click); + void RemoveListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click); + } + + private class GCtrlState<TRole> : ICtrlState<TRole> + { + public virtual bool Update() { return true; } // return true if frame skipped + public virtual void AddListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void RemoveListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void AddListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void RemoveListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual bool GetPress(ControllerButton button, bool usePrevState = false) { return false; } + public virtual bool GetPressDown(ControllerButton button) { return false; } + public virtual bool GetPressUp(ControllerButton button) { return false; } + public virtual float LastPressDownTime(ControllerButton button) { return 0f; } + public virtual int ClickCount(ControllerButton button) { return 0; } + public virtual float GetAxis(ControllerAxis axis, bool usePrevState = false) { return 0f; } + public virtual Vector2 GetPadAxis(bool usePrevState = false) { return Vector2.zero; } + public virtual Vector2 GetPadPressVector() { return Vector2.zero; } + public virtual Vector2 GetPadTouchVector() { return Vector2.zero; } + public virtual Vector2 GetScrollDelta(ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) { return Vector2.zero; } + public virtual ulong PreviousButtonPressed { get { return 0ul; } } + public virtual ulong CurrentButtonPressed { get { return 0ul; } } + + public virtual void AddListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click) { } + public virtual void RemoveListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click) { } + + protected virtual void InvokeEvent(ControllerButton button) { } + protected virtual void TryInvokeListener(ControllerButton button, ButtonEventType type) { } + } + + private sealed class RGCtrolState<TRole> : GCtrlState<TRole> + { + public readonly static GCtrlState<TRole> s_defaultState = new GCtrlState<TRole>(); + public static RGCtrolState<TRole>[] s_roleStates; + + private readonly ICtrlState m_state; + private readonly TRole m_role; + + private RoleEventListener<TRole>[][] listeners; + + public override ulong PreviousButtonPressed { get { return m_state.PreviousButtonPressed; } } + + public override ulong CurrentButtonPressed { get { return m_state.CurrentButtonPressed; } } + + public RGCtrolState(TRole role) + { + var info = ViveRoleEnum.GetInfo<TRole>(); + m_state = GetState(typeof(TRole), info.ToRoleValue(role)); + m_role = role; + } + + // return true if frame skipped + public override bool Update() + { + if (m_state.Update()) { return true; } + + var timeNow = Time.unscaledTime; + for (ControllerButton button = 0; button < (ControllerButton)CONTROLLER_BUTTON_COUNT; ++button) + { + if (GetPress(button)) + { + if (GetPressDown(button)) + { + // PressDown event + TryInvokeListener(button, ButtonEventType.Down); + } + + // Press event + TryInvokeListener(button, ButtonEventType.Press); + } + else if (GetPressUp(button)) + { + // PressUp event + TryInvokeListener(button, ButtonEventType.Up); + + if (timeNow - m_state.LastPressDownTime(button) < clickInterval) + { + // Click event + TryInvokeListener(button, ButtonEventType.Click); + } + } + } + + return false; + } + + public override void AddListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { m_state.AddListener(button, listener, type); } + public override void RemoveListener(ControllerButton button, Action listener, ButtonEventType type = ButtonEventType.Click) { m_state.RemoveListener(button, listener, type); } + public override void AddListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { m_state.AddListener(button, listener, type); } + public override void RemoveListener(ControllerButton button, RoleValueEventListener listener, ButtonEventType type = ButtonEventType.Click) { m_state.RemoveListener(button, listener, type); } + public override bool GetPress(ControllerButton button, bool usePrevState = false) { return m_state.GetPress(button, usePrevState); } + public override bool GetPressDown(ControllerButton button) { return m_state.GetPressDown(button); } + public override bool GetPressUp(ControllerButton button) { return m_state.GetPressUp(button); } + public override float LastPressDownTime(ControllerButton button) { return m_state.LastPressDownTime(button); } + public override int ClickCount(ControllerButton button) { return m_state.ClickCount(button); } + public override float GetAxis(ControllerAxis axis, bool usePrevState = false) { return m_state.GetAxis(axis, usePrevState); } + public override Vector2 GetPadAxis(bool usePrevState = false) { return m_state.GetPadAxis(usePrevState); } + public override Vector2 GetPadPressVector() { return m_state.GetPadPressVector(); } + public override Vector2 GetPadTouchVector() { return m_state.GetPadTouchVector(); } + public override Vector2 GetScrollDelta(ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) { return m_state.GetScrollDelta(scrollType, scale, xAxis, yAxis); } + + protected override void TryInvokeListener(ControllerButton button, ButtonEventType type) + { + if (listeners == null) { return; } + if (listeners[(int)button] == null) { return; } + if (listeners[(int)button][(int)type] == null) { return; } + listeners[(int)button][(int)type].Invoke(m_role, button, type); + } + + public override void AddListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click) + { + if (listeners == null) { listeners = new RoleEventListener<TRole>[CONTROLLER_BUTTON_COUNT][]; } + if (listeners[(int)button] == null) { listeners[(int)button] = new RoleEventListener<TRole>[BUTTON_EVENT_COUNT]; } + if (listeners[(int)button][(int)type] == null) + { + listeners[(int)button][(int)type] = listener; + } + else + { + listeners[(int)button][(int)type] += listener; + } + } + + public override void RemoveListener(ControllerButton button, RoleEventListener<TRole> listener, ButtonEventType type = ButtonEventType.Click) + { + if (listeners == null) { return; } + if (listeners[(int)button] == null) { return; } + if (listeners[(int)button][(int)type] == null) { return; } + listeners[(int)button][(int)type] -= listener; + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..51cee78f86be6fc5e090418a3f69c2b112df788c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ControllerState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: db1ddb2a6686e9b4ca73911ae17152f9 +timeCreated: 1457498182 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..d533b891d0bc1de27ad8ff89c1f822bca4fcedcf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c851bc71e63f5f741ac5cccecb3645c1 +folderAsset: yes +timeCreated: 1497940645 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..c1abc419fb70bf345fe459c6c00be377bba75d6e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs @@ -0,0 +1,157 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [CustomPropertyDrawer(typeof(ControllerButtonMask))] + public class ControllerButtonMaskDrawer : PropertyDrawer + { + private static GUIStyle s_popup; + private static GUIContent s_tempContent; + private static List<bool> s_displayedMask; + private static EnumUtils.EnumDisplayInfo s_enumInfo = EnumUtils.GetDisplayInfo(typeof(ControllerButton)); + + private bool m_foldoutOpen = false; + + static ControllerButtonMaskDrawer() + { + s_popup = new GUIStyle(EditorStyles.popup); + s_tempContent = new GUIContent(); + s_displayedMask = new List<bool>(); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + if (!m_foldoutOpen || s_enumInfo == null) + { + return EditorGUIUtility.singleLineHeight; + } + else + { + return EditorGUIUtility.singleLineHeight * (s_enumInfo.displayedMaskNames.Length + 2); + } + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + position = EditorGUI.PrefixLabel(position, new GUIContent(property.displayName)); + + // get display mask value + s_displayedMask.Clear(); + var maskProperty = property.FindPropertyRelative("raw"); + var enumDisplayLength = s_enumInfo.displayedMaskLength; + var realMask = (ulong)maskProperty.longValue; + var firstSelected = string.Empty; + for (int i = 0; i < enumDisplayLength; ++i) + { + if (EnumUtils.GetFlag(realMask, s_enumInfo.displayedMaskValues[i])) + { + s_displayedMask.Add(true); + if (string.IsNullOrEmpty(firstSelected)) { firstSelected = s_enumInfo.displayedMaskNames[i]; } + } + else + { + s_displayedMask.Add(false); + } + } + + var flagsCount = 0; + for (var i = 0; i < EnumUtils.ULONG_MASK_FIELD_LENGTH; ++i) + { + if (EnumUtils.GetFlag(realMask, i)) { ++flagsCount; } + } + + if (EditorGUI.showMixedValue) + { + s_tempContent.text = " - "; + } + else if (flagsCount == 0) + { + s_tempContent.text = "None"; + } + else if (flagsCount == 1) + { + s_tempContent.text = firstSelected; + } + else if (flagsCount < enumDisplayLength) + { + s_tempContent.text = "Mixed..."; + } + else + { + s_tempContent.text = "All"; + } + + var controlPos = position; + controlPos.height = EditorGUIUtility.singleLineHeight; + var id = GUIUtility.GetControlID(FocusType.Passive, controlPos); + + switch (Event.current.GetTypeForControl(id)) + { + case EventType.MouseDown: + if (controlPos.Contains(Event.current.mousePosition)) + { + GUIUtility.hotControl = id; + GUIUtility.keyboardControl = id; + Event.current.Use(); + } + break; + case EventType.MouseUp: + if (GUIUtility.hotControl == id) + { + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + Event.current.Use(); + m_foldoutOpen = !m_foldoutOpen; + } + break; + case EventType.Repaint: + s_popup.Draw(position, s_tempContent, id, false); + break; + } + + if (m_foldoutOpen) + { + position.y += EditorGUIUtility.singleLineHeight; + + var halfWidth = position.width * 0.5f; + if (GUI.Button(new Rect(position.x, position.y, halfWidth - 1, EditorGUIUtility.singleLineHeight), "All")) + { + realMask = ~0ul; + //m_foldoutOpen = false; + } + + //Draw the None button + if (GUI.Button(new Rect(position.x + halfWidth + 1, position.y, halfWidth - 1, EditorGUIUtility.singleLineHeight), "None")) + { + realMask = 0ul; + //m_foldoutOpen = false; + } + + for (int i = 0; i < enumDisplayLength; ++i) + { + position.y += EditorGUIUtility.singleLineHeight; + var toggled = EditorGUI.ToggleLeft(new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight), s_enumInfo.displayedMaskNames[i], s_displayedMask[i]); + if (s_displayedMask[i] != toggled) + { + s_displayedMask[i] = toggled; + EnumUtils.SetFlag(ref realMask, s_enumInfo.displayedMaskValues[i], toggled); + //m_foldoutOpen = false; + } + } + + maskProperty.longValue = (long)realMask; + } + + property.serializedObject.ApplyModifiedProperties(); + + EditorGUI.EndProperty(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..76008a79235f4eb2fa9fd3c2332e409f5bb29204 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ControllerButtonMaskDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cff098012cf904e4785b16f2920968b6 +timeCreated: 1597650584 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..0b5cea68020bc9b547430b26c7fceda1fbb6aba5 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 543a4a8a918589546beb77e8ec9fb496 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..9df62fb6c9e2c001c680f622d967fac1eb7b4e54 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs @@ -0,0 +1,172 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(ViveInputVirtualButton))] + public class ViveInputVirtualButtonEditor : Editor + { + private SerializedProperty m_scriptProp; + private SerializedProperty m_activateProp; + private SerializedProperty m_logicGateProp; + private SerializedProperty m_inputsProp; + private SerializedProperty m_onPressProp; + private SerializedProperty m_onDownProp; + private SerializedProperty m_onUpProp; + private SerializedProperty m_onClickProp; + private SerializedProperty m_toggleGameObjProp; + private SerializedProperty m_toggleCompProp; + + private static GUIContent s_iconRemoveInput; + private static GUIContent s_iconAddInput; + + private static bool s_outputHandlersFoldoutState = true; + + static ViveInputVirtualButtonEditor() + { + // Have to create a copy since otherwise the tooltip will be overwritten. + //s_iconToolbarMinus = new GUIContent(EditorGUIUtility.IconContent("Toolbar Minus")); + s_iconRemoveInput = new GUIContent("-"); + s_iconRemoveInput.tooltip = "Remove this input"; + s_iconAddInput = new GUIContent("+"); + s_iconAddInput.tooltip = "Add an input"; + } + + protected virtual void OnEnable() + { + m_scriptProp = serializedObject.FindProperty("m_Script"); + m_logicGateProp = serializedObject.FindProperty("m_combineInputsOperator"); + m_inputsProp = serializedObject.FindProperty("m_inputs"); + m_onPressProp = serializedObject.FindProperty("m_onVirtualPress"); + m_onDownProp = serializedObject.FindProperty("m_onVirtualClick"); + m_onUpProp = serializedObject.FindProperty("m_onVirtualPressDown"); + m_onClickProp = serializedObject.FindProperty("m_onVirtualPressUp"); + m_toggleGameObjProp = serializedObject.FindProperty("m_toggleGameObjectOnVirtualClick"); + m_toggleCompProp = serializedObject.FindProperty("m_toggleComponentOnVirtualClick"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + var toBeRemovedEntry = -1; + var prevLabelWidth = EditorGUIUtility.labelWidth; + + GUI.enabled = false; + EditorGUILayout.PropertyField(m_scriptProp); + GUI.enabled = true; + + if (m_inputsProp.arraySize > 1) + { + EditorGUILayout.PropertyField(m_logicGateProp); + } + + EditorGUILayout.LabelField("Inputs"); + + EditorGUIUtility.labelWidth = 1f; + for (int i = 0, imax = m_inputsProp.arraySize; i < imax; ++i) + { + EditorGUILayout.BeginHorizontal(); + + var inputProp = m_inputsProp.GetArrayElementAtIndex(i); + var viveRoleProp = inputProp.FindPropertyRelative("viveRole"); + var buttonProp = inputProp.FindPropertyRelative("button"); + + EditorGUILayout.PropertyField(viveRoleProp); + EditorGUILayout.PropertyField(buttonProp); + + if (GUILayout.Button(s_iconRemoveInput, GUILayout.Height(13f), GUILayout.Width(20f))) + { + toBeRemovedEntry = i; + } + + EditorGUILayout.EndHorizontal(); + } + EditorGUIUtility.labelWidth = prevLabelWidth; + + if (toBeRemovedEntry > -1) + { + m_inputsProp.DeleteArrayElementAtIndex(toBeRemovedEntry); + toBeRemovedEntry = -1; + } + + if (GUILayout.Button(s_iconAddInput, GUILayout.Height(15f))) + { + m_inputsProp.arraySize += 1; + } + + EditorGUILayout.LabelField("Toggle GameObjects on Virtual Click"); + + EditorGUIUtility.labelWidth = 1f; + for (int i = 0, imax = m_toggleGameObjProp.arraySize; i < imax; ++i) + { + EditorGUILayout.BeginHorizontal(); + + EditorGUILayout.PropertyField(m_toggleGameObjProp.GetArrayElementAtIndex(i)); + + if (GUILayout.Button(s_iconRemoveInput, GUILayout.Height(13f), GUILayout.Width(20f))) + { + toBeRemovedEntry = i; + } + + EditorGUILayout.EndHorizontal(); + } + EditorGUIUtility.labelWidth = prevLabelWidth; + + if (toBeRemovedEntry > -1) + { + m_toggleGameObjProp.DeleteArrayElementAtIndex(toBeRemovedEntry); + toBeRemovedEntry = -1; + } + + if (GUILayout.Button(s_iconAddInput, GUILayout.Height(15f))) + { + m_toggleGameObjProp.arraySize += 1; + } + + EditorGUILayout.LabelField("Toggle Components on Virtual Click"); + + EditorGUIUtility.labelWidth = 1f; + for (int i = 0, imax = m_toggleCompProp.arraySize; i < imax; ++i) + { + EditorGUILayout.BeginHorizontal(); + + EditorGUILayout.PropertyField(m_toggleCompProp.GetArrayElementAtIndex(i)); + + if (GUILayout.Button(s_iconRemoveInput, GUILayout.Height(13f), GUILayout.Width(20f))) + { + toBeRemovedEntry = i; + } + + EditorGUILayout.EndHorizontal(); + } + EditorGUIUtility.labelWidth = prevLabelWidth; + + if (toBeRemovedEntry > -1) + { + m_toggleCompProp.DeleteArrayElementAtIndex(toBeRemovedEntry); + toBeRemovedEntry = -1; + } + + if (GUILayout.Button(s_iconAddInput, GUILayout.Height(15f))) + { + m_toggleCompProp.arraySize += 1; + } + + s_outputHandlersFoldoutState = EditorGUILayout.Foldout(s_outputHandlersFoldoutState, "Output Handlers"); + + if (s_outputHandlersFoldoutState) + { + EditorGUILayout.PropertyField(m_onPressProp); + EditorGUILayout.PropertyField(m_onDownProp); + EditorGUILayout.PropertyField(m_onUpProp); + EditorGUILayout.PropertyField(m_onClickProp); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5c23378dbe4ef0f71704ba5511be247fa5333b13 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/Editor/ViveInputVirtualButtonEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 101252612f45dab41bdf6dd5f4110d35 +timeCreated: 1498125299 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs new file mode 100644 index 0000000000000000000000000000000000000000..895e43aa8e7d31ad6b6cd2041c8619c91fc2bf75 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs @@ -0,0 +1,263 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive +{ + public enum ButtonEventType + { + /// <summary> + /// Button unpressed at last frame, pressed at this frame + /// </summary> + Down, + /// <summary> + /// Button pressed at this frame + /// </summary> + Press, + /// <summary> + /// Button pressed at last frame, unpressed at the frame + /// </summary> + Up, + /// <summary> + /// Button up at this frame, and last button down time is in certain interval + /// </summary> + Click, + } + + /// <summary> + /// Defines virtual buttons for Vive controller + /// </summary> + public enum ControllerButton + { + None = -1, + + // classic buttons + System = 14, + Menu = 4, // Cosmos(RightHandB, LeftHandY), Index(B) + MenuTouch = 7, // Cosmos(RightHandB, LeftHandY), Index(B) + Trigger = 0, // on:0.55 off:0.45 + TriggerTouch = 8, // on:0.25 off:0.20 + Pad = 1, + PadTouch = 3, + Grip = 2, + GripTouch = 9, + CapSenseGrip = 10, // on:1.00 off:0.90 // Knuckles, Oculus Touch only + CapSenseGripTouch = 11, // on:0.25 off:0.20 // Knuckles, Oculus Touch only + ProximitySensor = 15, + Bumper = 16, + BumperTouch = 17, + AKey = 12, // Knuckles(InnerFaceButton), Oculus Touch(RightHandA or LeftHandX pressed), Cosmos(RightHandA, LeftHandX), Index(A) + AKeyTouch = 13, // Knuckles(InnerFaceButton), Oculus Touch(RightHandA or LeftHandX touched), Cosmos(RightHandA, LeftHandX), Index(A) + + // button alias + BKey = Menu, + BkeyTouch = MenuTouch, + OuterFaceButton = Menu, // 7 + OuterFaceButtonTouch = MenuTouch, // 9 + InnerFaceButton = AKey, // 12 + InnerFaceButtonTouch = AKeyTouch, // 13 + + [HideInInspector] + Axis0 = Pad, + [HideInInspector] + Axis1 = Trigger, + [HideInInspector] + Axis2 = CapSenseGrip, + [HideInInspector] + Axis3 = Bumper, + [HideInInspector] + Axis4 = 18, + [HideInInspector] + Axis0Touch = PadTouch, + [HideInInspector] + Axis1Touch = TriggerTouch, + [HideInInspector] + Axis2Touch = CapSenseGripTouch, + [HideInInspector] + Axis3Touch = BumperTouch, + [HideInInspector] + Axis4Touch = 19, + + // virtual buttons + HairTrigger = 5, // Pressed if trigger button is pressing, unpressed if trigger button is releasing + FullTrigger = 6, // on:1.00 off:1.00 + + DPadLeft = 20, + DPadUp = 21, + DPadRight = 22, + DPadDown = 23, + + DPadLeftTouch = 24, + DPadUpTouch = 25, + DPadRightTouch = 26, + DPadDownTouch = 27, + + DPadUpperLeft = 28, + DPadUpperRight = 29, + DPadLowerRight = 30, + DPadLowerLeft = 31, + + DPadUpperLeftTouch = 32, + DPadUpperRightTouch = 33, + DPadLowerRightTouch = 34, + DPadLowerLeftTouch = 35, + + DPadCenter = 36, + DPadCenterTouch = 37, + } + + public enum ControllerAxis + { + None = -1, + PadX, + PadY, + Trigger, + CapSenseGrip, // Knuckles, Oculus Touch only + IndexCurl, // Knuckles only + MiddleCurl, // Knuckles only + RingCurl, // Knuckles only + PinkyCurl, // Knuckles only + JoystickCap = RingCurl, // Cosmos only + TriggerCap = PinkyCurl, // Cosmos only + + JoystickX, + JoystickY, + } + + public enum ScrollType + { + None = -1, + Auto, + Trackpad, + Thumbstick, + } + + public class RawControllerState + { + public readonly bool[] buttonPress = new bool[ViveInput.CONTROLLER_BUTTON_COUNT]; + public readonly float[] axisValue = new float[ViveInput.CONTROLLER_AXIS_COUNT]; + } + + /// <summary> + /// Singleton that manage and update controllers input + /// </summary> + public partial class ViveInput : SingletonBehaviour<ViveInput> + { + public static readonly int CONTROLLER_BUTTON_COUNT = EnumUtils.GetMaxValue(typeof(ControllerButton)) + 1; + public static readonly int CONTROLLER_AXIS_COUNT = EnumUtils.GetMaxValue(typeof(ControllerAxis)) + 1; + public static readonly int BUTTON_EVENT_COUNT = EnumUtils.GetMaxValue(typeof(ButtonEventType)) + 1; + + private static readonly CtrlState s_defaultState = new CtrlState(); + private static readonly IndexedTable<Type, ICtrlState[]> s_roleStateTable = new IndexedTable<Type, ICtrlState[]>(); + private static UnityAction s_onUpdate; + + [SerializeField] + private float m_clickInterval = 0.3f; + [SerializeField] + private bool m_dontDestroyOnLoad = false; + [SerializeField] + private UnityEvent m_onUpdate = new UnityEvent(); + + public static float clickInterval + { + get { return Instance.m_clickInterval; } + set { Instance.m_clickInterval = Mathf.Max(0f, value); } + } + + public static event UnityAction onUpdate { add { s_onUpdate += value; } remove { s_onUpdate -= value; } } + + static ViveInput() + { + SetDefaultInitGameObjectGetter(VRModule.GetInstanceGameObject); + } + +#if UNITY_EDITOR + private void OnValidate() + { + m_clickInterval = Mathf.Max(m_clickInterval, 0f); + } +#endif + + protected override void OnSingletonBehaviourInitialized() + { + if (m_dontDestroyOnLoad && transform.parent == null) + { + DontDestroyOnLoad(gameObject); + } + } + + private void Update() + { + if (!IsInstance) { return; } + + for (int i = 0, imax = s_roleStateTable.Count; i < imax; ++i) + { + var states = s_roleStateTable.GetValueByIndex(i); + if (states == null) { continue; } + + foreach (var state in states) + { + if (state == null) { continue; } + state.Update(); + } + } + + if (s_onUpdate != null) { s_onUpdate(); } + if (m_onUpdate != null) { m_onUpdate.Invoke(); } + } + + private static bool IsValidButton(ControllerButton button) { return button >= 0 && (int)button < CONTROLLER_BUTTON_COUNT; } + + private static bool IsValidAxis(ControllerAxis axis) { return axis >= 0 && (int)axis < CONTROLLER_BUTTON_COUNT; } + + private static ICtrlState GetState(Type roleType, int roleValue) + { + Initialize(); + var info = ViveRoleEnum.GetInfo(roleType); + + if (!info.IsValidRoleValue(roleValue)) { return s_defaultState; } + + ICtrlState[] stateList; + if (!s_roleStateTable.TryGetValue(roleType, out stateList) || stateList == null) + { + s_roleStateTable[roleType] = stateList = new ICtrlState[info.ValidRoleLength]; + } + + var roleOffset = info.RoleValueToRoleOffset(roleValue); + if (stateList[roleOffset] == null) + { + stateList[roleOffset] = new RCtrlState(roleType, roleValue); + } + + stateList[roleOffset].Update(); + return stateList[roleOffset]; + } + + private static ICtrlState<TRole> GetState<TRole>(TRole role) + { + Initialize(); + var info = ViveRoleEnum.GetInfo<TRole>(); + + if (!info.IsValidRole(role)) { return RGCtrolState<TRole>.s_defaultState; } + + if (RGCtrolState<TRole>.s_roleStates == null) + { + RGCtrolState<TRole>.s_roleStates = new RGCtrolState<TRole>[info.ValidRoleLength]; + } + + var roleOffset = info.RoleToRoleOffset(role); + if (RGCtrolState<TRole>.s_roleStates[roleOffset] == null) + { + RGCtrolState<TRole>.s_roleStates[roleOffset] = new RGCtrolState<TRole>(role); + s_roleStateTable[typeof(TRole)][roleOffset] = RGCtrolState<TRole>.s_roleStates[roleOffset]; + } + + RGCtrolState<TRole>.s_roleStates[roleOffset].Update(); + return RGCtrolState<TRole>.s_roleStates[roleOffset]; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fd9b3ab14cc32aca5947d3f04b447fec7b5ed401 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d411276c604086141ae1eff2b8bf37b8 +timeCreated: 1457577943 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs new file mode 100644 index 0000000000000000000000000000000000000000..af06eb8b303e52f7e9770c2ab5cadce2484e121f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs @@ -0,0 +1,142 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; + +namespace HTC.UnityPlugin.Vive +{ + [Serializable] + public struct ControllerButtonMask + { + public ulong raw; + + public ControllerButtonMask(ControllerButton button, params ControllerButton[] buttons) + { + raw = GetRawMask(button, buttons); + } + + public bool IsSet(ControllerButton button) { return button >= 0 ? (raw & (1ul << (int)button)) > 0ul : false; } + + public bool IsAnySet(ControllerButton button, params ControllerButton[] buttons) { var m = GetRawMask(button, buttons); return (raw & m) > 0ul; } + + public bool IsAllSet(ControllerButton button, params ControllerButton[] buttons) { var m = GetRawMask(button, buttons); return (raw & m) == m; } + + public void Set(ControllerButton button, params ControllerButton[] buttons) { raw |= GetRawMask(button, buttons); } + + public void Unset(ControllerButton button, params ControllerButton[] buttons) { raw &= ~GetRawMask(button, buttons); } + + public bool GetAnyPress(ulong pressed) { return (pressed & raw) > 0ul; } + + public bool GetAllPress(ulong pressed) { return (pressed & raw) == raw; } + + public static ulong GetRawMask(ControllerButton button, params ControllerButton[] buttons) + { + var value = button >= 0 ? 1ul << (int)button : 0ul; + if (buttons != null && buttons.Length > 0) { foreach (var b in buttons) { if (b >= 0) { value |= 1ul << (int)b; } } } + return value; + } + + public static ControllerButtonMask All { get { return new ControllerButtonMask() { raw = ~0ul }; } } + } + + public partial class ViveInput : SingletonBehaviour<ViveInput> + { + public static bool GetAnyPress<TRole>(TRole role, ControllerButtonMask mask, bool usePrevState = false) + { + return mask.GetAnyPress(usePrevState ? GetState(role).PreviousButtonPressed : GetState(role).CurrentButtonPressed); + } + + //public static bool GetAnyPressDown<TRole>(TRole role, ControllerButtonMask mask) + //{ + // var state = GetState(role); + // return !mask.GetAnyPress(state.PreviousButtonPressed) && mask.GetAnyPress(state.CurrentButtonPressed); + //} + + //public static bool GetAnyPressUp<TRole>(TRole role, ControllerButtonMask mask) + //{ + // var state = GetState(role); + // return mask.GetAllPress(state.PreviousButtonPressed) && !mask.GetAllPress(state.CurrentButtonPressed); + //} + + public static bool GetAllPress<TRole>(TRole role, ControllerButtonMask mask, bool usePrevState = false) + { + return mask.GetAllPress(usePrevState ? GetState(role).PreviousButtonPressed : GetState(role).CurrentButtonPressed); + } + + //public static bool GetAllPressDown<TRole>(TRole role, ControllerButtonMask mask) + //{ + // var state = GetState(role); + // return !mask.GetAllPress(state.PreviousButtonPressed) && mask.GetAllPress(state.CurrentButtonPressed); + //} + + //public static bool GetAllPressUp<TRole>(TRole role, ControllerButtonMask mask) + //{ + // var state = GetState(role); + // return mask.GetAnyPress(state.PreviousButtonPressed) && !mask.GetAnyPress(state.CurrentButtonPressed); + //} + + public static bool GetAnyPress(ViveRoleProperty role, ControllerButtonMask mask, bool usePrevState = false) + { + return GetAnyPress(role.roleType, role.roleValue, mask, usePrevState); + } + + //public static bool GetAnyPressDown(ViveRoleProperty role, ControllerButtonMask mask) + //{ + // return GetAnyPressDown(role.roleType, role.roleValue, mask); + //} + + //public static bool GetAnyPressUp(ViveRoleProperty role, ControllerButtonMask mask) + //{ + // return GetAnyPressUp(role.roleType, role.roleValue, mask); + //} + + public static bool GetAllPress(ViveRoleProperty role, ControllerButtonMask mask, bool usePrevState = false) + { + return GetAllPress(role.roleType, role.roleValue, mask, usePrevState); + } + + //public static bool GetAllPressDown(ViveRoleProperty role, ControllerButtonMask mask) + //{ + // return GetAllPressDown(role.roleType, role.roleValue, mask); + //} + + //public static bool GetAllPressUp(ViveRoleProperty role, ControllerButtonMask mask) + //{ + // return GetAllPressUp(role.roleType, role.roleValue, mask); + //} + + public static bool GetAnyPress(Type roleType, int roleValue, ControllerButtonMask mask, bool usePrevState = false) + { + return mask.GetAnyPress(usePrevState ? GetState(roleType, roleValue).PreviousButtonPressed : GetState(roleType, roleValue).CurrentButtonPressed); + } + + //public static bool GetAnyPressDown(Type roleType, int roleValue, ControllerButtonMask mask) + //{ + // var state = GetState(roleType, roleValue); + // return !mask.GetAnyPress(state.PreviousButtonPressed) && mask.GetAnyPress(state.CurrentButtonPressed); + //} + + //public static bool GetAnyPressUp(Type roleType, int roleValue, ControllerButtonMask mask) + //{ + // var state = GetState(roleType, roleValue); + // return mask.GetAllPress(state.PreviousButtonPressed) && !mask.GetAllPress(state.CurrentButtonPressed); + //} + + public static bool GetAllPress(Type roleType, int roleValue, ControllerButtonMask mask, bool usePrevState = false) + { + return mask.GetAllPress(usePrevState ? GetState(roleType, roleValue).PreviousButtonPressed : GetState(roleType, roleValue).CurrentButtonPressed); + } + + //public static bool GetAllPressDown(Type roleType, int roleValue, ControllerButtonMask mask) + //{ + // var state = GetState(roleType, roleValue); + // return !mask.GetAllPress(state.PreviousButtonPressed) && mask.GetAllPress(state.CurrentButtonPressed); + //} + + //public static bool GetAllPressUp(Type roleType, int roleValue, ControllerButtonMask mask) + //{ + // var state = GetState(roleType, roleValue); + // return mask.GetAnyPress(state.PreviousButtonPressed) && !mask.GetAnyPress(state.CurrentButtonPressed); + //} + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e635cb475dd651e1e3de72ca6d5e9837f9d40d8d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputButtonMask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 96b8a4405402c8a4e90d5418f476d25f +timeCreated: 1597633248 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs new file mode 100644 index 0000000000000000000000000000000000000000..bb0b161b17a61f9b39ee9bd6bcffd7f8a9438c0e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs @@ -0,0 +1,847 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// To provide static APIs to retrieve controller's button status + /// </summary> + [DisallowMultipleComponent] + public partial class ViveInput : SingletonBehaviour<ViveInput> + { + #region origin + /// <summary> + /// Returns true while the button on the controller identified by role is held down + /// </summary> + public static bool GetPress(HandRole role, ControllerButton button) + { + return GetPressEx(role, button); + } + + /// <summary> + /// Returns true during the frame the user pressed down the button on the controller identified by role + /// </summary> + public static bool GetPressDown(HandRole role, ControllerButton button) + { + return GetPressDownEx(role, button); + } + + /// <summary> + /// Returns true during the frame the user releases the button on the controller identified by role + /// </summary> + public static bool GetPressUp(HandRole role, ControllerButton button) + { + return GetPressUpEx(role, button); + } + + /// <summary> + /// Returns time of the last frame that user pressed down the button on the controller identified by role + /// </summary> + public static float LastPressDownTime(HandRole role, ControllerButton button) + { + return LastPressDownTimeEx(role, button); + } + + /// <summary> + /// Return amount of clicks in a row for the button on the controller identified by role + /// Set ViveInput.clickInterval to configure click interval + /// </summary> + public static int ClickCount(HandRole role, ControllerButton button) + { + return ClickCountEx(role, button); + } + + public static float GetAxis(HandRole role, ControllerAxis axis, bool usePrevState = false) + { + return GetAxisEx(role, axis, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the trigger button on the controller identified by role + /// </summary> + public static float GetTriggerValue(HandRole role, bool usePrevState = false) + { + return GetTriggerValueEx(role, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role + /// </summary> + public static Vector2 GetPadAxis(HandRole role, bool usePrevState = false) + { + return GetPadAxisEx(role, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role if pressed, + /// otherwise, returns Vector2.zero + /// </summary> + public static Vector2 GetPadPressAxis(HandRole role) + { + return GetPadPressAxisEx(role); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role if touched, + /// otherwise, returns Vector2.zero + /// </summary> + public static Vector2 GetPadTouchAxis(HandRole role) + { + return GetPadTouchAxisEx(role); + } + + public static Vector2 GetPadPressVector(HandRole role) + { + return GetPadPressVectorEx(role); + } + + public static Vector2 GetPadTouchVector(HandRole role) + { + return GetPadTouchVectorEx(role); + } + + public static Vector2 GetPadPressDelta(HandRole role) + { + return GetPadPressDeltaEx(role); + } + + public static Vector2 GetPadTouchDelta(HandRole role) + { + return GetPadTouchDeltaEx(role); + } + + public static Vector2 GetScrollDelta(HandRole role, ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) + { + return GetScrollDeltaEx(role, scrollType, scale, xAxis, yAxis); + } + + /// <summary> + /// Add press handler for the button on the controller identified by role + /// </summary> + public static void AddPress(HandRole role, ControllerButton button, Action callback) + { + AddListenerEx(role, button, ButtonEventType.Press, callback); + } + + /// <summary> + /// Add press down handler for the button on the controller identified by role + /// </summary> + public static void AddPressDown(HandRole role, ControllerButton button, Action callback) + { + AddListenerEx(role, button, ButtonEventType.Down, callback); + } + + /// <summary> + /// Add press up handler for the button on the controller identified by role + /// </summary> + public static void AddPressUp(HandRole role, ControllerButton button, Action callback) + { + AddListenerEx(role, button, ButtonEventType.Up, callback); + } + + /// <summary> + /// Add click handler for the button on the controller identified by role + /// Use ViveInput.ClickCount to get click count + /// </summary> + public static void AddClick(HandRole role, ControllerButton button, Action callback) + { + AddListenerEx(role, button, ButtonEventType.Click, callback); + } + + /// <summary> + /// Remove press handler for the button on the controller identified by role + /// </summary> + public static void RemovePress(HandRole role, ControllerButton button, Action callback) + { + RemoveListenerEx(role, button, ButtonEventType.Press, callback); + } + + /// <summary> + /// Remove press down handler for the button on the controller identified by role + /// </summary> + public static void RemovePressDown(HandRole role, ControllerButton button, Action callback) + { + RemoveListenerEx(role, button, ButtonEventType.Down, callback); + } + + /// <summary> + /// Remove press up handler for the button on the controller identified by role + /// </summary> + public static void RemovePressUp(HandRole role, ControllerButton button, Action callback) + { + RemoveListenerEx(role, button, ButtonEventType.Up, callback); + } + + /// <summary> + /// Remove click handler for the button on the controller identified by role + /// </summary> + public static void RemoveClick(HandRole role, ControllerButton button, Action callback) + { + RemoveListenerEx(role, button, ButtonEventType.Click, callback); + } + + /// <summary> + /// Trigger vibration of the controller identified by role + /// </summary> + public static void TriggerHapticPulse(HandRole role, ushort durationMicroSec = 500) + { + TriggerHapticPulseEx(role, durationMicroSec); + } + + /// <summary> + /// Trigger vibration of the controller identified by role + /// </summary> + public static void TriggerHapticVibration(HandRole role, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + TriggerHapticVibrationEx(role, durationSeconds, frequency, amplitude, startSecondsFromNow); + } + #endregion origin + + #region general role property + /// <summary> + /// Returns true while the button on the controller identified by role is held down + /// </summary> + public static bool GetPress(ViveRoleProperty role, ControllerButton button) + { + return GetPressEx(role.roleType, role.roleValue, button); + } + + /// <summary> + /// Returns true during the frame the user pressed down the button on the controller identified by role + /// </summary> + public static bool GetPressDown(ViveRoleProperty role, ControllerButton button) + { + return GetPressDownEx(role.roleType, role.roleValue, button); + } + + /// <summary> + /// Returns true during the frame the user releases the button on the controller identified by role + /// </summary> + public static bool GetPressUp(ViveRoleProperty role, ControllerButton button) + { + return GetPressUpEx(role.roleType, role.roleValue, button); + } + + /// <summary> + /// Returns time of the last frame that user pressed down the button on the controller identified by role + /// </summary> + public static float LastPressDownTime(ViveRoleProperty role, ControllerButton button) + { + return LastPressDownTimeEx(role.roleType, role.roleValue, button); + } + + /// <summary> + /// Return amount of clicks in a row for the button on the controller identified by role + /// Set ViveInput.clickInterval to configure click interval + /// </summary> + public static int ClickCount(ViveRoleProperty role, ControllerButton button) + { + return ClickCountEx(role.roleType, role.roleValue, button); + } + + public static float GetAxis(ViveRoleProperty role, ControllerAxis axis, bool usePrevState = false) + { + return GetAxisEx(role.roleType, role.roleValue, axis, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the trigger button on the controller identified by role + /// </summary> + public static float GetTriggerValue(ViveRoleProperty role, bool usePrevState = false) + { + return GetTriggerValueEx(role.roleType, role.roleValue, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role + /// </summary> + public static Vector2 GetPadAxis(ViveRoleProperty role, bool usePrevState = false) + { + return GetPadAxisEx(role.roleType, role.roleValue, usePrevState); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role if pressed, + /// otherwise, returns Vector2.zero + /// </summary> + public static Vector2 GetPadPressAxis(ViveRoleProperty role) + { + return GetPadPressAxisEx(role.roleType, role.roleValue); + } + + /// <summary> + /// Returns raw analog value of the touch pad on the controller identified by role if touched, + /// otherwise, returns Vector2.zero + /// </summary> + public static Vector2 GetPadTouchAxis(ViveRoleProperty role) + { + return GetPadTouchAxisEx(role.roleType, role.roleValue); + } + + public static Vector2 GetPadPressVector(ViveRoleProperty role) + { + return GetPadPressVectorEx(role.roleType, role.roleValue); + } + + public static Vector2 GetPadTouchVector(ViveRoleProperty role) + { + return GetPadTouchVectorEx(role.roleType, role.roleValue); + } + + public static Vector2 GetPadPressDelta(ViveRoleProperty role) + { + return GetPadPressDeltaEx(role.roleType, role.roleValue); + } + + public static Vector2 GetPadTouchDelta(ViveRoleProperty role) + { + return GetPadTouchDeltaEx(role.roleType, role.roleValue); + } + + public static Vector2 GetScrollDelta(ViveRoleProperty role, ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) + { + return GetScrollDeltaEx(role.roleType, role.roleValue, scrollType, scale, xAxis, yAxis); + } + + public static void AddListener(ViveRoleProperty role, ControllerButton button, ButtonEventType eventType, Action callback) + { + AddListenerEx(role.roleType, role.roleValue, button, eventType, callback); + } + + public static void RemoveListener(ViveRoleProperty role, ControllerButton button, ButtonEventType eventType, Action callback) + { + RemoveListenerEx(role.roleType, role.roleValue, button, eventType, callback); + } + + public static void AddListener(ViveRoleProperty role, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + AddListenerEx(role.roleType, role.roleValue, button, eventType, callback); + } + + public static void RemoveListener(ViveRoleProperty role, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + RemoveListenerEx(role.roleType, role.roleValue, button, eventType, callback); + } + + /// <summary> + /// Trigger vibration of the controller identified by role + /// </summary> + public static void TriggerHapticPulse(ViveRoleProperty role, ushort durationMicroSec = 500) + { + TriggerHapticPulseEx(role.roleType, role.roleValue, durationMicroSec); + } + + /// <summary> + /// Trigger vibration of the controller identified by role + /// </summary> + public static void TriggerHapticVibration(ViveRoleProperty role, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + TriggerHapticVibrationEx(role.roleType, role.roleValue, durationSeconds, frequency, amplitude, startSecondsFromNow); + } + #endregion + + #region extend generic role + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressEx<TRole>(TRole role, ControllerButton button) + { + return GetState(role).GetPress(button); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressDownEx<TRole>(TRole role, ControllerButton button) + { + return GetState(role).GetPressDown(button); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressUpEx<TRole>(TRole role, ControllerButton button) + { + return GetState(role).GetPressUp(button); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static float LastPressDownTimeEx<TRole>(TRole role, ControllerButton button) + { + return GetState(role).LastPressDownTime(button); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static int ClickCountEx<TRole>(TRole role, ControllerButton button) + { + return GetState(role).ClickCount(button); + } + + public static float GetAxisEx<TRole>(TRole role, ControllerAxis axis, bool usePrevState = false) + { + return GetState(role).GetAxis(axis, usePrevState); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static float GetTriggerValueEx<TRole>(TRole role, bool usePrevState = false) + { + return GetState(role).GetAxis(ControllerAxis.Trigger, usePrevState); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadAxisEx<TRole>(TRole role, bool usePrevState = false) + { + return GetState(role).GetPadAxis(usePrevState); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressAxisEx<TRole>(TRole role) + { + var handState = GetState(role); + return handState.GetPress(ControllerButton.Pad) ? handState.GetPadAxis() : Vector2.zero; + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchAxisEx<TRole>(TRole role) + { + var handState = GetState(role); + return handState.GetPress(ControllerButton.PadTouch) ? handState.GetPadAxis() : Vector2.zero; + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressVectorEx<TRole>(TRole role) + { + return GetState(role).GetPadPressVector(); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchVectorEx<TRole>(TRole role) + { + return GetState(role).GetPadTouchVector(); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressDeltaEx<TRole>(TRole role) + { + var handState = GetState(role); + if (handState.GetPress(ControllerButton.Pad) && !handState.GetPressDown(ControllerButton.Pad)) + { + return handState.GetPadAxis() - handState.GetPadAxis(true); + } + return Vector2.zero; + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchDeltaEx<TRole>(TRole role) + { + var handState = GetState(role); + if (handState.GetPress(ControllerButton.PadTouch) && !handState.GetPressDown(ControllerButton.PadTouch)) + { + return handState.GetPadAxis() - handState.GetPadAxis(true); + } + return Vector2.zero; + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetScrollDeltaEx<TRole>(TRole role, ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) + { + return GetState(role).GetScrollDelta(scrollType, scale, xAxis, yAxis); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void AddListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, Action callback) + { + GetState(role).AddListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void RemoveListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, Action callback) + { + GetState(role).RemoveListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void AddListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + GetState(role).AddListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void RemoveListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + GetState(role).RemoveListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void AddListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, RoleEventListener<TRole> callback) + { + GetState(role).AddListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void RemoveListenerEx<TRole>(TRole role, ControllerButton button, ButtonEventType eventType, RoleEventListener<TRole> callback) + { + GetState(role).RemoveListener(button, callback, eventType); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void TriggerHapticPulseEx<TRole>(TRole role, ushort durationMicroSec = 500) + { + VRModule.TriggerViveControllerHaptic(ViveRole.GetDeviceIndexEx(role), durationMicroSec); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void TriggerHapticVibrationEx<TRole>(TRole role, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + VRModule.TriggerHapticVibration(ViveRole.GetDeviceIndexEx(role), durationSeconds, frequency, amplitude, startSecondsFromNow); + } + #endregion extend generic + + #region extend property role type & value + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressEx(Type roleType, int roleValue, ControllerButton button) + { + return GetState(roleType, roleValue).GetPress(button); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressDownEx(Type roleType, int roleValue, ControllerButton button) + { + return GetState(roleType, roleValue).GetPressDown(button); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool GetPressUpEx(Type roleType, int roleValue, ControllerButton button) + { + return GetState(roleType, roleValue).GetPressUp(button); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static float LastPressDownTimeEx(Type roleType, int roleValue, ControllerButton button) + { + return GetState(roleType, roleValue).LastPressDownTime(button); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static int ClickCountEx(Type roleType, int roleValue, ControllerButton button) + { + return GetState(roleType, roleValue).ClickCount(button); + } + + public static float GetAxisEx(Type roleType, int roleValue, ControllerAxis axis, bool usePrevState = false) + { + return GetState(roleType, roleValue).GetAxis(axis, usePrevState); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static float GetTriggerValueEx(Type roleType, int roleValue, bool usePrevState = false) + { + return GetState(roleType, roleValue).GetAxis(ControllerAxis.Trigger, usePrevState); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadAxisEx(Type roleType, int roleValue, bool usePrevState = false) + { + return GetState(roleType, roleValue).GetPadAxis(usePrevState); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressAxisEx(Type roleType, int roleValue) + { + var handState = GetState(roleType, roleValue); + return handState.GetPress(ControllerButton.Pad) ? handState.GetPadAxis() : Vector2.zero; + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchAxisEx(Type roleType, int roleValue) + { + var handState = GetState(roleType, roleValue); + return handState.GetPress(ControllerButton.PadTouch) ? handState.GetPadAxis() : Vector2.zero; + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressVectorEx(Type roleType, int roleValue) + { + return GetState(roleType, roleValue).GetPadPressVector(); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchVectorEx(Type roleType, int roleValue) + { + return GetState(roleType, roleValue).GetPadTouchVector(); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadPressDeltaEx(Type roleType, int roleValue) + { + var handState = GetState(roleType, roleValue); + if (handState.GetPress(ControllerButton.Pad) && !handState.GetPressDown(ControllerButton.Pad)) + { + return handState.GetPadAxis() - handState.GetPadAxis(true); + } + return Vector2.zero; + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector2 GetPadTouchDeltaEx(Type roleType, int roleValue) + { + var handState = GetState(roleType, roleValue); + if (handState.GetPress(ControllerButton.PadTouch) && !handState.GetPressDown(ControllerButton.PadTouch)) + { + return handState.GetPadAxis() - handState.GetPadAxis(true); + } + return Vector2.zero; + } + + public static Vector2 GetScrollDeltaEx(Type roleType, int roleValue, ScrollType scrollType, Vector2 scale, ControllerAxis xAxis = ControllerAxis.PadX, ControllerAxis yAxis = ControllerAxis.PadY) + { + return GetState(roleType, roleValue).GetScrollDelta(scrollType, scale, xAxis, yAxis); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void AddListenerEx(Type roleType, int roleValue, ControllerButton button, ButtonEventType eventType, Action callback) + { + GetState(roleType, roleValue).AddListener(button, callback, eventType); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void RemoveListenerEx(Type roleType, int roleValue, ControllerButton button, ButtonEventType eventType, Action callback) + { + GetState(roleType, roleValue).RemoveListener(button, callback, eventType); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void AddListenerEx(Type roleType, int roleValue, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + GetState(roleType, roleValue).AddListener(button, callback, eventType); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void RemoveListenerEx(Type roleType, int roleValue, ControllerButton button, ButtonEventType eventType, RoleValueEventListener callback) + { + GetState(roleType, roleValue).RemoveListener(button, callback, eventType); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void TriggerHapticPulseEx(Type roleType, int roleValue, ushort durationMicroSec = 500) + { + VRModule.TriggerViveControllerHaptic(ViveRole.GetDeviceIndexEx(roleType, roleValue), durationMicroSec); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void TriggerHapticVibrationEx(Type roleType, int roleValue, float durationSeconds = 0.01f, float frequency = 85f, float amplitude = 0.125f, float startSecondsFromNow = 0f) + { + VRModule.TriggerHapticVibration(ViveRole.GetDeviceIndexEx(roleType, roleValue), durationSeconds, frequency, amplitude, startSecondsFromNow); + } + #endregion extend general + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4b2d3f4ff3a59db6773b516f986da6c8685379e2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputStatic.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d199422eb9dfb1498c1bd1b2b320bad +timeCreated: 1457925245 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs new file mode 100644 index 0000000000000000000000000000000000000000..43ea7f893469741471263cfc2426b8fa84eef88f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs @@ -0,0 +1,307 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive +{ + // Use this helper component to combine multiple Vive inputs into one virtual button + public class ViveInputVirtualButton : MonoBehaviour + { + public enum InputsOperatorEnum + { + Or, + And, + } + + [Serializable] + public class InputEntry + { + public ViveRoleProperty viveRole = ViveRoleProperty.New(HandRole.RightHand); + [CustomOrderedEnum] + public ControllerButton button = ControllerButton.Trigger; + } + + [Serializable] + public struct OutputEventArgs + { + public ViveInputVirtualButton senderObj; + public ButtonEventType eventType; + } + + [Serializable] + public class OutputEvent : UnityEvent<OutputEventArgs> { } + + [SerializeField] + private InputsOperatorEnum m_combineInputsOperator = InputsOperatorEnum.Or; + [SerializeField] + private List<InputEntry> m_inputs = new List<InputEntry>(); + [SerializeField] + private OutputEvent m_onVirtualPress = new OutputEvent(); + [SerializeField] + private OutputEvent m_onVirtualClick = new OutputEvent(); + [SerializeField] + private OutputEvent m_onVirtualPressDown = new OutputEvent(); + [SerializeField] + private OutputEvent m_onVirtualPressUp = new OutputEvent(); + [SerializeField] + private List<GameObject> m_toggleGameObjectOnVirtualClick = new List<GameObject>(); + [SerializeField] + private List<Behaviour> m_toggleComponentOnVirtualClick = new List<Behaviour>(); + + private bool m_isUpdating; + private int m_updatedFrameCount; + private bool m_prevPressState = false; + private bool m_currPressState = false; + private float m_lastPressDownTime = 0f; + private int m_clickCount = 0; + + [Obsolete("Use Behaviour.enable instead.")] + public bool active { get { return enabled; } set { enabled = value; } } + + public InputsOperatorEnum combineInputsOperator { get { return m_combineInputsOperator; } } + public List<InputEntry> inputs { get { return m_inputs; } } + public List<GameObject> toggleGameObjectOnVirtualClick { get { return m_toggleGameObjectOnVirtualClick; } } + public List<Behaviour> toggleComponentOnVirtualClick { get { return m_toggleComponentOnVirtualClick; } } + + public OutputEvent onPress { get { return m_onVirtualPress; } } + public OutputEvent onClick { get { return m_onVirtualClick; } } + public OutputEvent onPressDown { get { return m_onVirtualPressDown; } } + public OutputEvent onPressUp { get { return m_onVirtualPressUp; } } + + private bool isPress { get { return m_currPressState; } } + private bool isDown { get { return !m_prevPressState && m_currPressState; } } + private bool isUp { get { return m_prevPressState && !m_currPressState; } } + +#if UNITY_EDITOR + private void Reset() + { + m_inputs.Add(new InputEntry() + { + viveRole = ViveRoleProperty.New(HandRole.RightHand), + button = ControllerButton.Trigger, + }); + } +#endif + + private void UpdateState() + { + if (!ChangeProp.Set(ref m_updatedFrameCount, Time.frameCount)) { return; } + + m_prevPressState = m_currPressState; + m_currPressState = false; + + if (m_inputs.Count == 0) { return; } + + switch (m_combineInputsOperator) + { + case InputsOperatorEnum.Or: + + m_currPressState = false; + + for (int i = 0, imax = m_inputs.Count; i < imax; ++i) + { + if (ViveInput.GetPress(m_inputs[i].viveRole, m_inputs[i].button)) + { + m_currPressState = true; + break; + } + } + + break; + case InputsOperatorEnum.And: + + m_currPressState = true; + + for (int i = 0, imax = m_inputs.Count; i < imax; ++i) + { + if (!ViveInput.GetPress(m_inputs[i].viveRole, m_inputs[i].button)) + { + m_currPressState = false; + break; + } + } + + break; + } + } + + private void Update() + { + m_isUpdating = true; + + UpdateState(); + + var timeNow = Time.unscaledTime; + // handle events + if (isPress) + { + if (isDown) + { + // record click count + if (timeNow - m_lastPressDownTime < ViveInput.clickInterval) + { + ++m_clickCount; + } + else + { + m_clickCount = 1; + } + + // record press down time + m_lastPressDownTime = timeNow; + + // PressDown event + if (m_onVirtualPressDown != null) + { + m_onVirtualPressDown.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Down, + }); + } + } + + // Press event + if (m_onVirtualPress != null) + { + m_onVirtualPress.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Press, + }); + } + } + else if (isUp) + { + // PressUp event + if (m_onVirtualPressUp != null) + { + m_onVirtualPressUp.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Up, + }); + } + + if (timeNow - m_lastPressDownTime < ViveInput.clickInterval) + { + for (int i = m_toggleGameObjectOnVirtualClick.Count - 1; i >= 0; --i) + { + if (m_toggleGameObjectOnVirtualClick[i] != null) { m_toggleGameObjectOnVirtualClick[i].SetActive(!m_toggleGameObjectOnVirtualClick[i].activeSelf); } + } + + for (int i = m_toggleComponentOnVirtualClick.Count - 1; i >= 0; --i) + { + if (m_toggleComponentOnVirtualClick[i] != null) { m_toggleComponentOnVirtualClick[i].enabled = !m_toggleComponentOnVirtualClick[i].enabled; } + } + + // Click event + if (m_onVirtualClick != null) + { + m_onVirtualClick.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Click, + }); + } + } + } + + if (!isActiveAndEnabled) + { + InternalDisable(); + } + + m_isUpdating = false; + } + + private void OnDisable() + { + if (!m_isUpdating) + { + InternalDisable(); + } + } + + private void InternalDisable() + { + var timeNow = Time.unscaledTime; + + // clean up + m_prevPressState = m_currPressState; + m_currPressState = false; + + if (isUp) + { + // PressUp event + if (m_onVirtualPressUp != null) + { + m_onVirtualPressUp.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Up, + }); + } + + if (timeNow - m_lastPressDownTime < ViveInput.clickInterval) + { + for (int i = m_toggleGameObjectOnVirtualClick.Count - 1; i >= 0; --i) + { + if (m_toggleGameObjectOnVirtualClick[i] != null) { m_toggleGameObjectOnVirtualClick[i].SetActive(!m_toggleGameObjectOnVirtualClick[i].activeSelf); } + } + + for (int i = m_toggleComponentOnVirtualClick.Count - 1; i >= 0; --i) + { + if (m_toggleComponentOnVirtualClick[i] != null) { m_toggleComponentOnVirtualClick[i].enabled = !m_toggleComponentOnVirtualClick[i].enabled; } + } + + // Click event + if (m_onVirtualClick != null) + { + m_onVirtualClick.Invoke(new OutputEventArgs() + { + senderObj = this, + eventType = ButtonEventType.Click, + }); + } + } + } + + m_prevPressState = false; + } + + public bool GetVirtualPress() + { + UpdateState(); + return isPress; + } + + public bool GetVirtualPressDown() + { + UpdateState(); + return isDown; + } + + public bool GetVirtualPressUp() + { + UpdateState(); + return isUp; + } + + public int GetVirtualClickCount() + { + UpdateState(); + return m_clickCount; + } + + public float GetLastVirtualPressDownTime() + { + UpdateState(); + return m_lastPressDownTime; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8dbfeaf8a469f8c94841758cec77b9e61fe48be8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveInput/ViveInputVirtualButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 93ab9066e8186884da64ee239717c741 +timeCreated: 1498016225 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose.meta new file mode 100644 index 0000000000000000000000000000000000000000..d58b884346a99d8df890cea9b88289be8d2e69d2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fd91e8baf49477e4d861a58c22857ad9 +folderAsset: yes +timeCreated: 1457407334 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs new file mode 100644 index 0000000000000000000000000000000000000000..701986ffdf85d059c067ecf30fee74897528b769 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs @@ -0,0 +1,85 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public interface INewPoseListener + { + void BeforeNewPoses(); + void OnNewPoses(); + void AfterNewPoses(); + } + + /// <summary> + /// To manage all NewPoseListeners + /// </summary> + public partial class VivePose : SingletonBehaviour<VivePose> + { + private static IndexedSet<INewPoseListener> s_listeners = new IndexedSet<INewPoseListener>(); + + [SerializeField] + private bool m_dontDestroyOnLoad = false; + + static VivePose() + { + SetDefaultInitGameObjectGetter(VRModule.GetInstanceGameObject); + } + + protected override void OnSingletonBehaviourInitialized() + { + if (m_dontDestroyOnLoad && transform.parent == null) + { + DontDestroyOnLoad(gameObject); + } + + VRModule.onNewPoses += OnDeviceStateUpdated; + } + + protected override void OnDestroy() + { + if (IsInstance) + { + VRModule.onNewPoses -= OnDeviceStateUpdated; + } + + base.OnDestroy(); + } + + public static bool AddNewPosesListener(INewPoseListener listener) + { + Initialize(); + return s_listeners.AddUnique(listener); + } + + public static bool RemoveNewPosesListener(INewPoseListener listener) + { + return s_listeners.Remove(listener); + } + + private void OnDeviceStateUpdated() + { + var tempListeners = ListPool<INewPoseListener>.Get(); + tempListeners.AddRange(s_listeners); + + for (int i = tempListeners.Count - 1; i >= 0; --i) + { + tempListeners[i].BeforeNewPoses(); + } + + for (int i = tempListeners.Count - 1; i >= 0; --i) + { + tempListeners[i].OnNewPoses(); + } + + for (int i = tempListeners.Count - 1; i >= 0; --i) + { + tempListeners[i].AfterNewPoses(); + } + + ListPool<INewPoseListener>.Release(tempListeners); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cd45bb34f21c7ff03c5ac68b5876b8f4fbd6f7e8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePose.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9f5306be5e1185844905bb31df1d47b8 +timeCreated: 1465183118 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs new file mode 100644 index 0000000000000000000000000000000000000000..d54f4497bd89c6e26757576153796a69655b735f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs @@ -0,0 +1,471 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// To provide static APIs to retrieve devices' tracking status + /// </summary> + public partial class VivePose : SingletonBehaviour<VivePose> + { + #region origin + /// <summary> + /// Returns true if input focus captured by current process + /// Usually the process losses focus when player switch to deshboard by clicking Steam button + /// </summary> + public static bool HasFocus() { return VRModule.HasInputFocus(); } + + /// <summary> + /// Returns true if the process has focus and the device identified by role is connected / has tracking + /// </summary> + public static bool IsValid(HandRole role) + { + return IsValid(ViveRole.GetDeviceIndexEx(role)); + } + + /// <summary> + /// Returns true if the process has focus and the device identified by role is connected / has tracking + /// </summary> + public static bool IsValid(DeviceRole role) + { + return IsValid(ViveRole.GetDeviceIndexEx(role)); + } + + /// <summary> + /// Returns true if the device identified by role is connected. + /// </summary> + public static bool IsConnected(HandRole role) + { + return IsConnected(ViveRole.GetDeviceIndexEx(role)); + } + + /// <summary> + /// Returns true if the device identified by role is connected. + /// </summary> + public static bool IsConnected(DeviceRole role) + { + return IsConnected(ViveRole.GetDeviceIndexEx(role)); + } + + /// <summary> + /// Returns true if tracking data of the device identified by role has valid value. + /// </summary> + public static bool HasTracking(HandRole role) + { + return HasTracking(ViveRole.GetDeviceIndexEx(role)); + } + + /// <summary> + /// Returns true if tracking data of the device identified by role has valid value. + /// </summary> + public static bool HasTracking(DeviceRole role) + { + return HasTracking(ViveRole.GetDeviceIndexEx(role)); + } + + public static bool IsOutOfRange(HandRole role) { return IsOutOfRange(ViveRole.GetDeviceIndexEx(role)); } + public static bool IsOutOfRange(DeviceRole role) { return IsOutOfRange(ViveRole.GetDeviceIndexEx(role)); } + public static bool IsCalibrating(HandRole role) { return IsCalibrating(ViveRole.GetDeviceIndexEx(role)); } + public static bool IsCalibrating(DeviceRole role) { return IsCalibrating(ViveRole.GetDeviceIndexEx(role)); } + public static bool IsUninitialized(HandRole role) { return IsUninitialized(ViveRole.GetDeviceIndexEx(role)); } + public static bool IsUninitialized(DeviceRole role) { return IsUninitialized(ViveRole.GetDeviceIndexEx(role)); } + public static Vector3 GetVelocity(HandRole role, Transform origin = null) { return GetVelocity(ViveRole.GetDeviceIndexEx(role), origin); } + public static Vector3 GetVelocity(DeviceRole role, Transform origin = null) { return GetVelocity(ViveRole.GetDeviceIndexEx(role), origin); } + public static Vector3 GetAngularVelocity(HandRole role, Transform origin = null) { return GetAngularVelocity(ViveRole.GetDeviceIndexEx(role), origin); } + public static Vector3 GetAngularVelocity(DeviceRole role, Transform origin = null) { return GetAngularVelocity(ViveRole.GetDeviceIndexEx(role), origin); } + + /// <summary> + /// Returns tracking pose of the device identified by role + /// </summary> + public static RigidPose GetPose(HandRole role, Transform origin = null) + { + return GetPose(ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <summary> + /// Returns tracking pose of the device identified by role + /// </summary> + public static RigidPose GetPose(DeviceRole role, Transform origin = null) + { + return GetPose(ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <summary> + /// Set target pose to tracking pose of the device identified by role relative to the origin + /// </summary> + public static void SetPose(Transform target, HandRole role, Transform origin = null) + { + SetPose(target, ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <summary> + /// Set target pose to tracking pose of the device identified by role relative to the origin + /// </summary> + public static void SetPose(Transform target, DeviceRole role, Transform origin = null) + { + SetPose(target, ViveRole.GetDeviceIndexEx(role), origin); + } + #endregion origin + + #region general role property + /// <summary> + /// Returns true if the process has focus and the device identified by role is connected / has tracking + /// </summary> + public static bool IsValid(ViveRoleProperty role) + { + return IsValid(role.GetDeviceIndex()); + } + + /// <summary> + /// Returns true if the device identified by role is connected. + /// </summary> + public static bool IsConnected(ViveRoleProperty role) + { + return IsConnected(role.GetDeviceIndex()); + } + + /// <summary> + /// Returns true if tracking data of the device identified by role has valid value. + /// </summary> + public static bool HasTracking(ViveRoleProperty role) + { + return HasTracking(role.GetDeviceIndex()); + } + + public static bool IsOutOfRange(ViveRoleProperty role) { return IsOutOfRange(role.GetDeviceIndex()); } + public static bool IsCalibrating(ViveRoleProperty role) { return IsCalibrating(role.GetDeviceIndex()); } + public static bool IsUninitialized(ViveRoleProperty role) { return IsUninitialized(role.GetDeviceIndex()); } + public static Vector3 GetVelocity(ViveRoleProperty role, Transform origin = null) { return GetVelocity(role.GetDeviceIndex(), origin); } + public static Vector3 GetAngularVelocity(ViveRoleProperty role, Transform origin = null) { return GetAngularVelocity(role.GetDeviceIndex(), origin); } + + /// <summary> + /// Returns tracking pose of the device identified by role + /// </summary> + public static RigidPose GetPose(ViveRoleProperty role, Transform origin = null) + { + return GetPose(role.GetDeviceIndex(), origin); + } + + /// <summary> + /// Set target pose to tracking pose of the device identified by role relative to the origin + /// </summary> + public static void SetPose(Transform target, ViveRoleProperty role, Transform origin = null) + { + SetPose(target, role.GetDeviceIndex(), origin); + } + #endregion + + #region extend generic + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsValidEx<TRole>(TRole role) + { + return IsValid(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsConnectedEx<TRole>(TRole role) + { + return IsConnected(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool HasTrackingEx<TRole>(TRole role) + { + return HasTracking(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsOutOfRangeEx<TRole>(TRole role) + { + return IsOutOfRange(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsCalibratingEx<TRole>(TRole role) + { + return IsCalibrating(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsUninitializedEx<TRole>(TRole role) + { + return IsUninitialized(ViveRole.GetDeviceIndexEx(role)); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector3 GetVelocityEx<TRole>(TRole role, Transform origin = null) + { + return GetVelocity(ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector3 GetAngularVelocityEx<TRole>(TRole role, Transform origin = null) + { + return GetAngularVelocity(ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static RigidPose GetPoseEx<TRole>(TRole role, Transform origin = null) + { + return GetPose(ViveRole.GetDeviceIndexEx(role), origin); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void SetPoseEx<TRole>(Transform target, TRole role, Transform origin = null) + { + SetPose(target, ViveRole.GetDeviceIndexEx(role), origin); + } + #endregion extend generic + + #region extend property role type & value + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsValidEx(Type roleType, int roleValue) + { + return IsValid(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsConnectedEx(Type roleType, int roleValue) + { + return IsConnected(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool HasTrackingEx(Type roleType, int roleValue) + { + return HasTracking(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsOutOfRangeEx(Type roleType, int roleValue) + { + return IsOutOfRange(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsCalibratingEx(Type roleType, int roleValue) + { + return IsCalibrating(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static bool IsUninitializedEx(Type roleType, int roleValue) + { + return IsUninitialized(ViveRole.GetDeviceIndexEx(roleType, roleValue)); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector3 GetVelocityEx(Type roleType, int roleValue, Transform origin = null) + { + return GetVelocity(ViveRole.GetDeviceIndexEx(roleType, roleValue), origin); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static Vector3 GetAngularVelocityEx(Type roleType, int roleValue, Transform origin = null) + { + return GetAngularVelocity(ViveRole.GetDeviceIndexEx(roleType, roleValue), origin); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static RigidPose GetPoseEx(Type roleType, int roleValue, Transform origin = null) + { + return GetPose(ViveRole.GetDeviceIndexEx(roleType, roleValue), origin); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static void SetPoseEx(Transform target, Type roleType, int roleValue, Transform origin = null) + { + SetPose(target, ViveRole.GetDeviceIndexEx(roleType, roleValue), origin); + } + #endregion extend general + + #region base + public static bool IsValid(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isPoseValid && HasFocus(); + } + + public static bool IsConnected(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isConnected; + } + + public static bool HasTracking(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isPoseValid; + } + + public static bool IsOutOfRange(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isOutOfRange; + } + + public static bool IsCalibrating(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isCalibrating; + } + + public static bool IsUninitialized(uint deviceIndex) + { + return VRModule.GetCurrentDeviceState(deviceIndex).isUninitialized; + } + + public static Vector3 GetVelocity(uint deviceIndex, Transform origin = null) + { + if (!VRModule.IsValidDeviceIndex(deviceIndex)) + { + return Vector3.zero; + } + else if (origin == null) + { + return VRModule.GetCurrentDeviceState(deviceIndex).velocity; + } + else + { + return origin.TransformVector(VRModule.GetCurrentDeviceState(deviceIndex).velocity); + } + } + + public static Vector3 GetAngularVelocity(uint deviceIndex, Transform origin = null) + { + if (!VRModule.IsValidDeviceIndex(deviceIndex)) + { + return Vector3.zero; + } + else if (origin == null) + { + return VRModule.GetCurrentDeviceState(deviceIndex).angularVelocity; + } + else + { + return origin.TransformVector(VRModule.GetCurrentDeviceState(deviceIndex).angularVelocity); + } + } + + public static RigidPose GetPose(uint deviceIndex, Transform origin = null) + { + var devicePose = VRModule.GetCurrentDeviceState(deviceIndex).pose; + + if (origin == null) + { + return devicePose; + } + else + { + var rawPose = new RigidPose(origin) * devicePose; + rawPose.pos.Scale(origin.localScale); + return rawPose; + } + } + + public static void SetPose(Transform target, uint deviceIndex, Transform origin = null) + { + RigidPose.SetPose(target, GetPose(deviceIndex), origin); + } + #endregion base + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6ac0423370f72b9b8f82048b2a6818f636727c00 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseGet.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e5e4a91a1ea589946bbc26cc584c3e3d +timeCreated: 1465185123 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs new file mode 100644 index 0000000000000000000000000000000000000000..59dfac646bbfc2348840ea6215667bc279028368 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs @@ -0,0 +1,120 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.PoseTracker; +using HTC.UnityPlugin.Utility; +using System; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Device Tracker/Vive Pose Tracker (Transform)", 7)] + // Simple component to track Vive devices. + public class VivePoseTracker : BasePoseTracker, INewPoseListener, IViveRoleComponent + { + [Serializable] + public class UnityEventBool : UnityEvent<bool> { } + + private bool m_isValid; + + public Transform origin; + + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.RightHand); + + public UnityEventBool onIsValidChanged; + + [HideInInspector] + [Obsolete("Use VivePoseTracker.viveRole instead")] + public DeviceRole role = DeviceRole.Invalid; + + public ViveRoleProperty viveRole { get { return m_viveRole; } } + + public bool isPoseValid { get { return m_isValid; } } + + protected void SetIsValid(bool value, bool forceSet = false) + { + if (ChangeProp.Set(ref m_isValid, value) || forceSet) + { + if (onIsValidChanged != null) + { + onIsValidChanged.Invoke(value); + } + } + } + + protected virtual void Start() + { + SetIsValid(VivePose.IsValid(m_viveRole), true); + } +#if UNITY_EDITOR + protected virtual void OnValidate() + { + // change old DeviceRole value to viveRole value + var serializedObject = new UnityEditor.SerializedObject(this); + + var roleValueProp = serializedObject.FindProperty("role"); + var oldRoleValue = roleValueProp.intValue; + + if (oldRoleValue != (int)DeviceRole.Invalid) + { + Type newRoleType; + int newRoleValue; + + if (oldRoleValue == -1) + { + newRoleType = typeof(DeviceRole); + newRoleValue = (int)DeviceRole.Hmd; + } + else + { + newRoleType = typeof(HandRole); + newRoleValue = oldRoleValue; + } + + if (Application.isPlaying) + { + roleValueProp.intValue = (int)DeviceRole.Invalid; + m_viveRole.Set(newRoleType, newRoleValue); + } + else + { + roleValueProp.intValue = (int)DeviceRole.Invalid; + serializedObject.ApplyModifiedProperties(); + m_viveRole.Set(newRoleType, newRoleValue); + serializedObject.Update(); + } + } + serializedObject.Dispose(); + } +#endif + protected virtual void OnEnable() + { + VivePose.AddNewPosesListener(this); + } + + protected virtual void OnDisable() + { + VivePose.RemoveNewPosesListener(this); + + SetIsValid(false); + } + + public virtual void BeforeNewPoses() { } + + public virtual void OnNewPoses() + { + var deviceIndex = m_viveRole.GetDeviceIndex(); + var isValid = VivePose.IsValid(deviceIndex); + + if (isValid) + { + TrackPose(VivePose.GetPose(deviceIndex), origin); + } + + SetIsValid(isValid); + } + + public virtual void AfterNewPoses() { } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e28b2ccced46ed7164638ed094f599a9064a240c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/VivePoseTracker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8fdc450c311d1e94291658aa5ec57b9b +timeCreated: 1457064357 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs new file mode 100644 index 0000000000000000000000000000000000000000..213c536a1bae77677f21f28490301f895b2eefe4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs @@ -0,0 +1,87 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using UnityEngine; +using HTC.UnityPlugin.Utility; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/Device Tracker/Vive Rigid Pose Tracker (Rigidbody)", 8)] + [RequireComponent(typeof(Rigidbody))] + public class ViveRigidPoseTracker : VivePoseTracker + { + public const float MIN_FOLLOWING_DURATION = 0.02f; + public const float DEFAULT_FOLLOWING_DURATION = 0.04f; + public const float MAX_FOLLOWING_DURATION = 0.5f; + + private Rigidbody rigid; + private RigidPose targetPose; + private bool m_snap; + + [SerializeField] + private bool m_snapOnEnable = true; + [Range(MIN_FOLLOWING_DURATION, MAX_FOLLOWING_DURATION)] + public float followingDuration = DEFAULT_FOLLOWING_DURATION; + + public bool snapOnEnable { get { return m_snapOnEnable; } set { m_snapOnEnable = value; } } + + protected override void Start() + { + base.Start(); + rigid = GetComponent<Rigidbody>(); + rigid.useGravity = false; + } + + protected override void OnEnable() + { + base.OnEnable(); + if (m_snapOnEnable) { m_snap = true; } + } + + protected virtual void FixedUpdate() + { + if (isPoseValid) + { + RigidPose.SetRigidbodyVelocity(rigid, rigid.position, targetPose.pos, followingDuration); + RigidPose.SetRigidbodyAngularVelocity(rigid, rigid.rotation, targetPose.rot, followingDuration); + } + else + { + rigid.velocity = Vector3.zero; + rigid.angularVelocity = Vector3.zero; + } + } + + protected override void OnDisable() + { + rigid.velocity = Vector3.zero; + rigid.angularVelocity = Vector3.zero; + base.OnDisable(); + } + + public override void OnNewPoses() + { + var deviceIndex = viveRole.GetDeviceIndex(); + + // set targetPose to device pose + targetPose = VivePose.GetPose(deviceIndex) * new RigidPose(posOffset, Quaternion.Euler(rotOffset)); + ModifyPose(ref targetPose, origin); + + // transform to world space + var o = origin != null ? origin : transform.parent; + if (o != null) + { + targetPose = new RigidPose(o) * targetPose; + targetPose.pos.Scale(o.localScale); + } + + if (m_snap) + { + m_snap = false; + transform.position = targetPose.pos; + transform.rotation = targetPose.rot; + } + + SetIsValid(VivePose.IsValid(deviceIndex)); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b848334df58bbabb1c2c21ef51c58a94334dd123 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/VivePose/ViveRigidPoseTracker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 940d1e8e53ab15349af970bd722f06c2 +timeCreated: 1483618972 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster.meta new file mode 100644 index 0000000000000000000000000000000000000000..0455a4ee9bae5bd3d4f6da125e4d3ce9dadb5ceb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0db5db9d05f5481439aab3e229e0aa89 +folderAsset: yes +timeCreated: 1462243888 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs new file mode 100644 index 0000000000000000000000000000000000000000..1227c40a4c8c66d3d3499716e46cb1f739a4eeca --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs @@ -0,0 +1,93 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Pointer3D; +using System; +using UnityEngine.EventSystems; + +namespace HTC.UnityPlugin.Vive +{ + public static class VivePointerEventDataExtension + { + public static bool IsViveButton(this PointerEventData eventData, HandRole hand) + { + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + return (eventData as VivePointerEventData).viveRole.IsRole(hand); + } + + public static bool IsViveButtonEx<TRole>(this PointerEventData eventData, TRole role) + { + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + return (eventData as VivePointerEventData).viveRole.IsRole(role); + } + + public static bool IsViveButton(this PointerEventData eventData, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + var viveEvent = eventData as VivePointerEventData; + return viveEvent.viveButton == button; + } + + public static bool IsViveButton(this PointerEventData eventData, HandRole hand, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + var viveEvent = eventData as VivePointerEventData; + return viveEvent.viveRole.IsRole(hand) && viveEvent.viveButton == button; + } + + public static bool IsViveButtonEx<TRole>(this PointerEventData eventData, TRole role, ControllerButton button) + { + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + var viveEvent = eventData as VivePointerEventData; + return viveEvent.viveRole.IsRole(role) && viveEvent.viveButton == button; + } + + public static bool TryGetViveButtonEventData(this PointerEventData eventData, out VivePointerEventData viveEventData) + { + viveEventData = null; + + if (eventData == null) { return false; } + + if (!(eventData is VivePointerEventData)) { return false; } + + viveEventData = eventData as VivePointerEventData; + return true; + } + } + + // Custom PointerEventData implement for Vive controller. + public class VivePointerEventData : Pointer3DEventData + { + public ViveRaycaster viveRaycaster { get; private set; } + public ControllerButton viveButton { get; private set; } + + public ViveRoleProperty viveRole { get { return viveRaycaster.viveRole; } } + + public VivePointerEventData(ViveRaycaster ownerRaycaster, EventSystem eventSystem, ControllerButton viveButton, InputButton mouseButton) : base(ownerRaycaster, eventSystem) + { + this.viveRaycaster = ownerRaycaster; + this.viveButton = viveButton; + this.button = mouseButton; + } + + public override bool GetPress() { return ViveInput.GetPressEx(viveRole.roleType, viveRole.roleValue, viveButton); } + + public override bool GetPressDown() { return ViveInput.GetPressDownEx(viveRole.roleType, viveRole.roleValue, viveButton); } + + public override bool GetPressUp() { return ViveInput.GetPressUpEx(viveRole.roleType, viveRole.roleValue, viveButton); } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7d453be6a8bc71134b8d7cbf0a5d20bbe13f040e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/VivePointerEventData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 22483ebe86156a348b744a051dd69b6d +timeCreated: 1457927863 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs new file mode 100644 index 0000000000000000000000000000000000000000..ab2f22673421196675c0ded354fea78085e6497a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs @@ -0,0 +1,88 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Pointer3D; +using HTC.UnityPlugin.Utility; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.Serialization; + +namespace HTC.UnityPlugin.Vive +{ + [AddComponentMenu("VIU/UI Pointer/Vive Raycaster (VR Controller Input)", 4)] + // Customized Pointer3DRaycaster for Vive controllers. + public class ViveRaycaster : Pointer3DRaycaster, IViveRoleComponent + { + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.RightHand); + [SerializeField] + [FormerlySerializedAs("m_mouseBtnLeft")] + [CustomOrderedEnum] + private ControllerButton m_mouseButtonLeft = ControllerButton.Trigger; + [SerializeField] + [FormerlySerializedAs("m_mouseBtnMiddle")] + [CustomOrderedEnum] + private ControllerButton m_mouseButtonMiddle = ControllerButton.Grip; + [SerializeField] + [FormerlySerializedAs("m_mouseBtnRight")] + [CustomOrderedEnum] + private ControllerButton m_mouseButtonRight = ControllerButton.Pad; + [SerializeField] + [FormerlySerializedAs("m_buttonEvents")] + [FlagsFromEnum(typeof(ControllerButton))] + private ulong m_additionalButtons = 0ul; + [SerializeField] + private ScrollType m_scrollType = ScrollType.Auto; + [SerializeField] + private Vector2 m_scrollDeltaScale = new Vector2(1f, -1f); + + public ViveRoleProperty viveRole { get { return m_viveRole; } } + public ControllerButton mouseButtonLeft { get { return m_mouseButtonLeft; } } + public ControllerButton mouseButtonMiddle { get { return m_mouseButtonMiddle; } } + public ControllerButton mouseButtonRight { get { return m_mouseButtonRight; } } + public ulong additionalButtonMask { get { return m_additionalButtons; } } + public ScrollType scrollType { get { return m_scrollType; } set { m_scrollType = value; } } + public Vector2 scrollDeltaScale { get { return m_scrollDeltaScale; } set { m_scrollDeltaScale = value; } } + + public bool IsAdditionalButtonOn(ControllerButton btn) { return EnumUtils.GetFlag(m_additionalButtons, (int)btn); } +#if UNITY_EDITOR + protected override void OnValidate() + { + base.OnValidate(); + + FilterOutAssignedButton(); + } +#endif + protected void FilterOutAssignedButton() + { + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_mouseButtonLeft, false); + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_mouseButtonMiddle, false); + EnumUtils.SetFlag(ref m_additionalButtons, (int)m_mouseButtonRight, false); + } + + protected override void Start() + { + base.Start(); + + // ensure HoverEventData (buttonEventDataList[0]) exist + buttonEventDataList.Add(new VivePointerEventData(this, EventSystem.current, m_mouseButtonLeft, PointerEventData.InputButton.Left)); + if (m_mouseButtonRight != ControllerButton.None) { buttonEventDataList.Add(new VivePointerEventData(this, EventSystem.current, m_mouseButtonRight, PointerEventData.InputButton.Right)); } + if (m_mouseButtonMiddle != ControllerButton.None) { buttonEventDataList.Add(new VivePointerEventData(this, EventSystem.current, m_mouseButtonMiddle, PointerEventData.InputButton.Middle)); } + + FilterOutAssignedButton(); + + var mouseBtn = PointerEventData.InputButton.Middle + 1; + var addBtns = m_additionalButtons; + for (ControllerButton btn = 0; addBtns > 0u; ++btn, addBtns >>= 1) + { + if ((addBtns & 1u) == 0u) { continue; } + + buttonEventDataList.Add(new VivePointerEventData(this, EventSystem.current, btn, mouseBtn++)); + } + } + + public override Vector2 GetScrollDelta() + { + return ViveInput.GetScrollDelta(m_viveRole, m_scrollType, m_scrollDeltaScale); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b6171b19b1650d4414f4de068d5503681cf629bf --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRaycaster/ViveRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 174b153ed154e784a8bd7e3b391fe253 +timeCreated: 1459323858 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole.meta new file mode 100644 index 0000000000000000000000000000000000000000..fc8d51538d69d11e1d66f68dec1b70caf5d7d035 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d86bd10250945c04a8fba05aadf7d215 +folderAsset: yes +timeCreated: 1460970379 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface.meta new file mode 100644 index 0000000000000000000000000000000000000000..0c64913722a4e8dc447658abf79e987d26e06f99 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a7bf98e79dc309347ac22edccc305b36 +folderAsset: yes +timeCreated: 1502890277 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample.meta new file mode 100644 index 0000000000000000000000000000000000000000..39d0b0e9bd4eb8bfaa31359b8fada9e685f96996 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2cca5c3e3bbc5204ab13f6bd58510e9e +folderAsset: yes +timeCreated: 1502893597 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg new file mode 100644 index 0000000000000000000000000000000000000000..ba72aac1ee015dfd465fd41728147e2a514b3398 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg @@ -0,0 +1,48 @@ +{ + "apply_bindings_on_load": true, + "toggle_interface_key_code": "B", + "toggle_interface_modifier": "RightShift", + "interface_prefab": "VIUBindingInterface", + "roles": [ + { + "type": "HTC.UnityPlugin.Vive.BodyRole", + "bindings": [ + { + "device_sn": "LHR-FD165D41", + "device_model": 2, + "role_name": "LeftHand", + "role_value": 3 + }, + { + "device_sn": "LHR-FF33FD43", + "device_model": 2, + "role_name": "RightHand", + "role_value": 2 + }, + { + "device_sn": "LHR-00DCE3B7", + "device_model": 3, + "role_name": "LeftFoot", + "role_value": 5 + }, + { + "device_sn": "LHR-01DF3FA3", + "device_model": 3, + "role_name": "LeftFoot", + "role_value": 5 + } + ] + }, + { + "type": "HTC.UnityPlugin.Vive.HandRole", + "bindings": [ + { + "device_sn": "LHR-01DF3FA3", + "device_model": 3, + "role_name": "ExternalCamera", + "role_value": 2 + } + ] + } + ] +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg.meta new file mode 100644 index 0000000000000000000000000000000000000000..2283837077a0cbb5871fa9f6180b6df968dd1b7e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingConfigSample/vive_role_bindings.cfg.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89b0548c05b5bed468f3aa97c5974590 +timeCreated: 1502893622 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..0943636c16e8d18e163d2a9c825d37ea79418229 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs @@ -0,0 +1,95 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceConfigPanelController : MonoBehaviour + { + [SerializeField] + private bool m_closeExCamOnEnable = true; + [SerializeField] + private Text m_pathInfo; + [SerializeField] + private GameObject m_dirtySymble; + + private bool m_exCamTrunedOff; + + private void Awake() + { + if (EventSystem.current == null) + { + new GameObject("[EventSystem]", typeof(EventSystem)).AddComponent<StandaloneInputModule>(); + } + else if (EventSystem.current.GetComponent<StandaloneInputModule>() == null) + { + EventSystem.current.gameObject.AddComponent<StandaloneInputModule>(); + } + + m_pathInfo.text = "The changes will be stored in \"" + VIUSettings.bindingConfigFilePath + "\"."; + } + + private void OnDisable() + { + if (ExternalCameraHook.Active && !ExternalCameraHook.Instance.enabled && m_exCamTrunedOff) + { + ExternalCameraHook.Instance.enabled = true; + } + + m_exCamTrunedOff = false; + } + + private void Update() + { + if (m_closeExCamOnEnable && ExternalCameraHook.Active && ExternalCameraHook.Instance.enabled) + { + ExternalCameraHook.Instance.enabled = false; + m_exCamTrunedOff = true; + } + + if (Input.GetKeyDown(KeyCode.Escape)) + { + CloseBindingInterface(); + } + } + + public void SetDirty() + { + m_dirtySymble.SetActive(true); + } + + public void CloseBindingInterface() + { + ViveRoleBindingsHelper.DisableBindingInterface(); + } + + public void ReloadConfig() + { + ViveRoleBindingsHelper.LoadBindingConfigFromFile(VIUSettings.bindingConfigFilePath); + + // Unbind all applied bindings + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleType = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i); + var roleMap = ViveRole.GetMap(roleType); + + roleMap.UnbindAll(); + } + + ViveRoleBindingsHelper.ApplyBindingConfigToRoleMap(); + + m_dirtySymble.SetActive(false); + } + + public void SaveConfig() + { + ViveRoleBindingsHelper.LoadBindingConfigFromRoleMap(); + ViveRoleBindingsHelper.SaveBindingConfigToFile(VIUSettings.bindingConfigFilePath); + + m_dirtySymble.SetActive(false); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..98a40d18def0aa1b44fa9d91cd9d3d4254a43624 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceConfigPanelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78b94ded620fdd64ca175c8d9bad0ee6 +timeCreated: 1502477094 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..0df7fceb3f695c2c7ca91cf73dec7f464c1b5aae --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs @@ -0,0 +1,62 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceDeviceItem : MonoBehaviour + , IPointerEnterHandler + , IPointerExitHandler + { + [SerializeField] + private Image m_imageModel; + [SerializeField] + private Button m_button; + + public RectTransform rectTransform { get { return m_imageModel.rectTransform; } } + + public bool isDisplayed { get { return m_imageModel.enabled; } } + + public bool isBound { get; set; } + + public uint deviceIndex { get; set; } + + public event Action<string> onClick; + public event Action<uint> onEnter; + public event Action<uint> onExit; + + public void OnPointerEnter(PointerEventData eventData) + { + if (onEnter != null) { onEnter(deviceIndex); } + } + + public void OnPointerExit(PointerEventData eventData) + { + if (onEnter != null) { onExit(deviceIndex); } + } + + public void OnClick() + { + if (onClick != null) { onClick(VRModule.GetCurrentDeviceState(deviceIndex).serialNumber); } + } + + public void UpdateModel() + { + BindingInterfaceSpriteManager.SetupTrackingDeviceIcon(m_imageModel, VRModule.GetCurrentDeviceState(deviceIndex), isBound); + } + + public void UpdatePosition() + { + var deviceState = VRModule.GetCurrentDeviceState(deviceIndex); + var devicePose = deviceState.pose; + + transform.localPosition = new Vector3(devicePose.pos.x, devicePose.pos.z, 0f) * 100f; + transform.localRotation = Quaternion.Euler(0f, 0f, -devicePose.rot.eulerAngles.y); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0661680448fac143a4f88448cb241cf8f9883d7c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDeviceItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ef0b16736a3c80142a3d93f8b77cf995 +timeCreated: 1502819264 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..b807c941f5fa2110bf982cb690d3cc7c64ee8f3c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs @@ -0,0 +1,335 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceDevicePanelController : MonoBehaviour + { + private const float MIN_DEVICE_VIEW_SCALE = 0.01f; + private const float MAX_DEVICE_VIEW_SCALE = 5f; + + [Serializable] + public class UnityEventString : UnityEvent<string> { } + + [SerializeField] + private Animator m_animator; + [SerializeField] + private InputField m_inputDeviceSN; + [SerializeField] + private Image m_modelIcon; + [SerializeField] + private Button m_buttonCheck; + [SerializeField] + private BindingInterfaceDeviceItem m_deviceItem; + [SerializeField] + private float m_deviceViewMargin = 20f; + [SerializeField] + private bool m_showDebugBoundRect = false; + [SerializeField] + private UnityEventString m_onSelectDevice = new UnityEventString(); + [SerializeField] + private UnityEventString m_onMouseEnterDevice = new UnityEventString(); + [SerializeField] + private UnityEventString m_onMouseExitDevice = new UnityEventString(); + + private bool m_initialized; + private bool m_trackingEnabled; + private ViveRole.IMap m_selectedRoleMap; + + private RectTransform m_deviceView; + private float m_deviceViewMaskWidth; + private float m_deviceViewMaskHeight; + private IndexedTable<uint, BindingInterfaceDeviceItem> m_itemTable = new IndexedTable<uint, BindingInterfaceDeviceItem>(); + private List<BindingInterfaceDeviceItem> m_itemPool = new List<BindingInterfaceDeviceItem>(); + + private void Initialize() + { + if (m_initialized) { return; } + m_initialized = true; + + m_itemPool.Add(m_deviceItem); + + m_deviceItem.onClick += m_onSelectDevice.Invoke; + m_deviceItem.onEnter += OnEnterDevice; + m_deviceItem.onExit += OnExitDevice; + m_deviceItem.gameObject.SetActive(false); + + m_deviceView = m_deviceItem.transform.parent.GetComponent<RectTransform>(); + var deviceViewMaskRect = m_deviceView.parent.GetComponent<RectTransform>().rect; + m_deviceViewMaskWidth = deviceViewMaskRect.width; + m_deviceViewMaskHeight = deviceViewMaskRect.height; + } + + public void EnableTracking() + { + if (m_trackingEnabled) { return; } + m_trackingEnabled = true; + + Initialize(); + + m_inputDeviceSN.text = string.Empty; + CheckInputDeviceSN(string.Empty); + + for (uint deviceIndex = 0, imax = VRModule.GetDeviceStateCount(); deviceIndex < imax; ++deviceIndex) + { + if (VRModule.GetCurrentDeviceState(deviceIndex).isConnected) + { + OnDeviceConnected(deviceIndex, true); + } + } + + VRModule.onDeviceConnected += OnDeviceConnected; + } + + public void DisableTracking() + { + if (!m_trackingEnabled) { return; } + m_trackingEnabled = false; + + VRModule.onDeviceConnected -= OnDeviceConnected; + + for (int i = 0, imax = m_itemTable.Count; i < imax; ++i) + { + var item = m_itemTable.GetValueByIndex(i); + m_itemPool.Add(m_itemTable.GetValueByIndex(i)); + item.gameObject.SetActive(false); + } + m_itemTable.Clear(); + } + + private void OnDisable() + { + DisableTracking(); + } + + private Vector3[] m_itemCorners = new Vector3[4]; + private Image m_bound; + private void Update() + { + if (m_trackingEnabled) + { + var boundRect = new Rect() + { + xMin = float.MaxValue, + xMax = float.MinValue, + yMin = float.MaxValue, + yMax = float.MinValue, + }; + + if (m_showDebugBoundRect && m_bound == null) + { + var boundObj = new GameObject(); + boundObj.transform.SetParent(m_deviceView.transform, false); + boundObj.transform.SetAsFirstSibling(); + m_bound = boundObj.AddComponent<Image>(); + m_bound.color = new Color(1f, 0f, 0f, 5f); + } + + for (int i = 0, imax = m_itemTable.Count; i < imax; ++i) + { + var item = m_itemTable.GetValueByIndex(i); + + if (!item.isDisplayed) { continue; } + + item.UpdatePosition(); + + item.rectTransform.GetWorldCorners(m_itemCorners); + + for (int j = 0; j < 4; ++j) + { + m_itemCorners[j] = m_deviceView.InverseTransformPoint(m_itemCorners[j]); + } + + boundRect.xMin = Mathf.Min(boundRect.xMin, m_itemCorners[0].x, m_itemCorners[1].x, m_itemCorners[2].x, m_itemCorners[3].x); + boundRect.xMax = Mathf.Max(boundRect.xMax, m_itemCorners[0].x, m_itemCorners[1].x, m_itemCorners[2].x, m_itemCorners[3].x); + boundRect.yMin = Mathf.Min(boundRect.yMin, m_itemCorners[0].y, m_itemCorners[1].y, m_itemCorners[2].y, m_itemCorners[3].y); + boundRect.yMax = Mathf.Max(boundRect.yMax, m_itemCorners[0].y, m_itemCorners[1].y, m_itemCorners[2].y, m_itemCorners[3].y); + } + + // calculate view panel's scale to let view rect includes all devices + var innerWidth = m_deviceViewMaskWidth - (m_deviceViewMargin * 2f); + var innerHeight = m_deviceViewMaskHeight - (m_deviceViewMargin * 2f); + var maxBoundWidth = Mathf.Max(Mathf.Abs(boundRect.xMin), Mathf.Abs(boundRect.xMax)) * 2f; + var maxBoundHeight = Mathf.Max(Mathf.Abs(boundRect.yMin), Mathf.Abs(boundRect.yMax)) * 2f; + + float scale; + if (innerWidth / innerHeight >= maxBoundWidth / maxBoundHeight) + { + // if viewRect is wider then boundRect + scale = innerHeight / maxBoundHeight; + } + else + { + // if boundRect is wider then viewRect + scale = innerWidth / maxBoundWidth; + } + + scale = Mathf.Clamp(scale, MIN_DEVICE_VIEW_SCALE, MAX_DEVICE_VIEW_SCALE); + + if (m_showDebugBoundRect) + { + m_bound.rectTransform.sizeDelta = new Vector2(boundRect.width, boundRect.height); + m_bound.rectTransform.localPosition = boundRect.center; + } + + m_deviceView.localScale = new Vector3(scale, scale, 1f); + } + } + + private void OnDeviceConnected(uint deviceIndex, bool connected) + { + BindingInterfaceDeviceItem item; + + if (connected) + { + if (m_itemPool.Count == 0) + { + var itemObj = Instantiate(m_deviceItem.gameObject); + itemObj.transform.SetParent(m_deviceItem.transform.parent, false); + item = itemObj.GetComponent<BindingInterfaceDeviceItem>(); + + item.onClick += m_onSelectDevice.Invoke; + item.onEnter += OnEnterDevice; + item.onExit += OnExitDevice; + } + else + { + item = m_itemPool[m_itemPool.Count - 1]; + m_itemPool.RemoveAt(m_itemPool.Count - 1); // remove last + } + + m_itemTable.Add(deviceIndex, item); + item.deviceIndex = deviceIndex; + item.isBound = m_selectedRoleMap.IsDeviceConnectedAndBound(deviceIndex); + item.UpdateModel(); + } + else + { + item = m_itemTable[deviceIndex]; + m_itemTable.Remove(deviceIndex); + + m_itemPool.Add(item); + } + + item.gameObject.SetActive(connected); + } + + private void OnEnterDevice(uint deviceIndex) + { + var deviceState = VRModule.GetCurrentDeviceState(deviceIndex); + var deviceSN = deviceState.serialNumber; + + m_inputDeviceSN.text = deviceSN; + CheckInputDeviceSN(deviceSN); + + m_modelIcon.gameObject.SetActive(true); + BindingInterfaceSpriteManager.SetupDeviceIcon(m_modelIcon, deviceState.deviceModel, true); + + if (m_onMouseEnterDevice != null) + { + m_onMouseEnterDevice.Invoke(deviceSN); + } + } + + private void OnExitDevice(uint deviceIndex) + { + var deviceSN = VRModule.GetCurrentDeviceState(deviceIndex).serialNumber; + + m_inputDeviceSN.text = string.Empty; + CheckInputDeviceSN(string.Empty); + + m_modelIcon.gameObject.SetActive(false); + + if (m_onMouseExitDevice != null) + { + m_onMouseExitDevice.Invoke(deviceSN); + } + } + + public void CheckInputDeviceSN(string inputStr) + { + if (string.IsNullOrEmpty(inputStr)) + { + m_buttonCheck.interactable = false; + m_modelIcon.gameObject.SetActive(false); + } + else + { + m_buttonCheck.interactable = true; + m_modelIcon.gameObject.SetActive(true); + uint deviceIndex; + if (VRModule.TryGetConnectedDeviceIndex(inputStr, out deviceIndex)) + { + BindingInterfaceSpriteManager.SetupDeviceIcon(m_modelIcon, VRModule.GetCurrentDeviceState(deviceIndex).deviceModel, true); + } + else + { + BindingInterfaceSpriteManager.SetupDeviceIcon(m_modelIcon, ViveRoleBindingsHelper.GetDeviceModelHint(inputStr), false); + } + } + } + + public void UpdateForBindingChanged() + { + for (int i = 0, imax = m_itemTable.Count; i < imax; ++i) + { + var deviceIndex = m_itemTable.GetKeyByIndex(i); + var item = m_itemTable.GetValueByIndex(i); + + item.isBound = m_selectedRoleMap.IsDeviceConnectedAndBound(deviceIndex); + item.UpdateModel(); + } + } + + public void ConfirmInputDeviceSN() + { + if (m_onSelectDevice != null) + { + m_onSelectDevice.Invoke(m_inputDeviceSN.text); + } + } + + public void DeselectCheckButton() + { + EventSystem.current.SetSelectedGameObject(null); + } + + public void SelecRoleSet(ViveRole.IMap roleMap) + { + m_selectedRoleMap = roleMap; + } + + public void SetAnimatorSlideLeft() + { + if (m_animator.isInitialized) + { + m_animator.SetTrigger("SlideDeviceViewLeft"); + } + } + + public void SetAnimatorSlideRight() + { + if (m_animator.isInitialized) + { + m_animator.SetTrigger("SlideDeviceViewRight"); + } + } + + public void SetAnimatorIsEditing(bool value) + { + if (m_animator.isInitialized) + { + m_animator.SetBool("isEditing", value); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..eb8a696d6f69ad84e6f04876bba582ddf081f6bb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceDevicePanelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0702b282f65fea14fb2a1264fc8b0a58 +timeCreated: 1502734527 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..e7182bc551b89444be6ec86fec6b8a8ea98d9505 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs @@ -0,0 +1,53 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceRoleButtonItem : MonoBehaviour + { + [SerializeField] + private Toggle m_toggle; + [SerializeField] + private Text m_textRoleName; + + private bool m_disableEventOnce; + + public string roleName { get { return m_textRoleName.text; } set { m_textRoleName.text = value; } } + public int roleValue { get; set; } + public event Action<int> onValueChanged; + + public void SetIsOn() + { + if (!m_toggle.isOn) + { + m_toggle.isOn = true; + m_toggle.group.NotifyToggleOn(m_toggle); + } + } + + public void SetIsOnNoEvent() + { + if (!m_toggle.isOn) + { + m_disableEventOnce = true; + m_toggle.isOn = true; + } + } + + public void OnValueChanged(bool isOn) + { + if (m_disableEventOnce) + { + m_disableEventOnce = false; + } + else if (isOn) + { + if (onValueChanged != null) { onValueChanged(roleValue); } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5f8b5ce5a7a6d4d623e7ff21a5e40c05d58af26a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleButtonItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2aea897927fa7bd41a57ea8faafdb365 +timeCreated: 1502779444 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..313314b214a01464320411d0f719c5e38271894b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs @@ -0,0 +1,113 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceRolePanelController : MonoBehaviour + { + [SerializeField] + private BindingInterfaceRoleButtonItem m_roleButtonItem; + [SerializeField] + private UnityEvent m_onBoundDevcieToRole; + + private List<BindingInterfaceRoleButtonItem> m_roleButtonList = new List<BindingInterfaceRoleButtonItem>(); + private ViveRole.IMap m_selectedRoleMap; + private string m_editingDeviceSN; + + public void SelectRole(int roleValue) + { + if (m_selectedRoleMap == null || string.IsNullOrEmpty(m_editingDeviceSN)) { return; } + + m_selectedRoleMap.BindDeviceToRoleValue(m_editingDeviceSN, roleValue); + + if (m_onBoundDevcieToRole != null) + { + m_onBoundDevcieToRole.Invoke(); + } + } + + public void SelecRoleSet(ViveRole.IMap roleMap) + { + if (m_roleButtonList.Count == 0) + { + m_roleButtonList.Add(m_roleButtonItem); + m_roleButtonItem.onValueChanged += SelectRole; + } + + var roleInfo = roleMap.RoleValueInfo; + + // update buttons + if (m_selectedRoleMap != roleMap) + { + m_selectedRoleMap = roleMap; + + m_roleButtonList[0].roleValue = roleInfo.InvalidRoleValue; + m_roleButtonList[0].roleName = roleInfo.GetNameByRoleValue(roleInfo.InvalidRoleValue); + + var buttonIndex = 1; + for (int roleValue = roleInfo.MinValidRoleValue, max = roleInfo.MaxValidRoleValue; roleValue <= max; ++roleValue) + { + if (!roleInfo.IsValidRoleValue(roleValue)) { continue; } + + BindingInterfaceRoleButtonItem item; + if (buttonIndex >= m_roleButtonList.Count) + { + var itemObj = Instantiate(m_roleButtonItem.gameObject); + itemObj.transform.SetParent(m_roleButtonItem.transform.parent, false); + + m_roleButtonList.Add(item = itemObj.GetComponent<BindingInterfaceRoleButtonItem>()); + item.onValueChanged += SelectRole; + } + else + { + item = m_roleButtonList[buttonIndex]; + } + + item.gameObject.SetActive(true); + item.roleValue = roleValue; + item.roleName = roleInfo.GetNameByRoleValue(roleValue); + + ++buttonIndex; + } + + for (int max = m_roleButtonList.Count; buttonIndex < max; ++buttonIndex) + { + m_roleButtonList[buttonIndex].gameObject.SetActive(false); + } + } + } + + public void SelectBindingDevice(string deviceSN) + { + // update selected role + m_editingDeviceSN = deviceSN; + if (m_selectedRoleMap.IsDeviceBound(deviceSN)) + { + var validRoleFound = false; + var boundRoleValue = m_selectedRoleMap.GetBoundRoleValueByDevice(deviceSN); + for (int i = 0, imax = m_roleButtonList.Count; i < imax && m_roleButtonList[i].gameObject.activeSelf; ++i) + { + if (m_roleButtonList[i].roleValue == boundRoleValue) + { + m_roleButtonList[i].SetIsOnNoEvent(); + validRoleFound = true; + break; + } + } + + if (!validRoleFound) + { + m_roleButtonList[0].SetIsOnNoEvent(); + } + } + else + { + m_roleButtonList[0].SetIsOnNoEvent(); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e9ece0336a6a713079df93559e7b7dad8e775229 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRolePanelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f3236748e205bc4f8edae2b70de113b +timeCreated: 1502779292 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..ec52fdcf4093b0130df1474a0ee3092668a1fcf4 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs @@ -0,0 +1,52 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceRoleSetBindingItem : MonoBehaviour + { + [SerializeField] + private Image m_modelIcon; + [SerializeField] + private Text m_deviceSN; + [SerializeField] + private Text m_roleName; + [SerializeField] + private Button m_editButton; + [SerializeField] + private Image m_heighLight; + + public string deviceSN { get; set; } + public bool isHeighLight { get { return m_heighLight.enabled; } set { m_heighLight.enabled = value; } } + public bool isEditing { get { return m_editButton.interactable; } set { m_editButton.interactable = !value; } } + public event Action<string> onEditPress; + public event Action<string> onRemovePress; + + public void RefreshDisplayInfo(ViveRole.IMap roleMap) + { + var roleInfo = roleMap.RoleValueInfo; + var roleValue = roleMap.GetBoundRoleValueByDevice(deviceSN); + var deviceModel = ViveRoleBindingsHelper.GetDeviceModelHint(deviceSN); + + m_deviceSN.text = deviceSN; + m_roleName.text = roleInfo.GetNameByRoleValue(roleValue); + + BindingInterfaceSpriteManager.SetupDeviceIcon(m_modelIcon, deviceModel, VRModule.IsDeviceConnected(deviceSN)); + } + + public void OnEdit() + { + if (onEditPress != null) { onEditPress(deviceSN); } + } + + public void OnRemove() + { + if (onRemovePress != null) { onRemovePress(deviceSN); } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..23422c6b69f9368c2de66c98b2f653f0e2547da9 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetBindingItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 63dda72f193755248a0d560ba97f8722 +timeCreated: 1502703700 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..0d033df79430430619dac99eb84d4db71f30e00d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs @@ -0,0 +1,60 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceRoleSetButtonItem : MonoBehaviour + { + [SerializeField] + private Toggle m_toggle; + [SerializeField] + private Text m_textName; + + private ViveRole.IMap m_roleMap; + + public event Action<int> onSelected; + + public bool interactable { get { return m_toggle.interactable; } set { m_toggle.interactable = value; } } + public int index { get; set; } + + public ViveRole.IMap roleMap + { + get { return m_roleMap; } + set + { + m_roleMap = value; + + if (m_roleMap.BindingCount > 0) + { + m_textName.text = value.RoleValueInfo.RoleEnumType.Name + "(" + value.BindingCount + ")"; + } + else + { + m_textName.text = value.RoleValueInfo.RoleEnumType.Name; + } + } + } + + public void SetIsOn() + { + if (!m_toggle.isOn) + { + m_toggle.isOn = true; + m_toggle.group.RegisterToggle(m_toggle); + m_toggle.group.NotifyToggleOn(m_toggle); + } + } + + public void OnValueChanged(bool isOn) + { + if (isOn) + { + if (onSelected != null) { onSelected(index); } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2a9a15dec3bc5aad1c4377a48d5b500a518eb28a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetButtonItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0b18a9703817b4e49afa83028949f791 +timeCreated: 1502699747 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..9e7ece8089828f807af39cbe320eea60cf611380 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs @@ -0,0 +1,323 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceRoleSetPanelController : MonoBehaviour + { + public Type DEFAULT_SELECTED_ROLE = typeof(BodyRole); + + [Serializable] + public class UnityEventSelectRole : UnityEvent<ViveRole.IMap> { } + + [Serializable] + public class UnityEventString : UnityEvent<string> { } + + [SerializeField] + private Animator m_animator; + [SerializeField] + private BindingInterfaceRoleSetButtonItem m_roleSetButtonItem; + [SerializeField] + private BindingInterfaceRoleSetBindingItem m_bindingItem; + [SerializeField] + private UnityEventSelectRole m_onSelectRoleSet; + [SerializeField] + private UnityEventString m_onEditBinding; + [SerializeField] + private UnityEvent m_onFinishEditBinding; + + private int m_maxBindingCount; + private List<BindingInterfaceRoleSetButtonItem> m_roleSetButtonList = new List<BindingInterfaceRoleSetButtonItem>(); + private int m_selectedRoleIndex = -1; + + private List<BindingInterfaceRoleSetBindingItem> m_bindingList = new List<BindingInterfaceRoleSetBindingItem>(); + private string m_editingDevice = string.Empty; + private string m_heighLightDevice = string.Empty; + private OrderedIndexedSet<string> m_boundDevices = new OrderedIndexedSet<string>(); + + public ViveRole.IMap selectedRoleMap { get { return m_roleSetButtonList[m_selectedRoleIndex].roleMap; } } + public bool isEditing { get { return !string.IsNullOrEmpty(m_editingDevice); } } + public bool hasHeightLight { get { return !string.IsNullOrEmpty(m_heighLightDevice); } } + + private void Awake() + { + RefreshRoleSelection(); + + // select the role that have largest binding count + for (int i = 0, imax = m_roleSetButtonList.Count; i < imax; ++i) + { + if (!m_roleSetButtonList[i].roleMap.Handler.BlockBindings && m_roleSetButtonList[i].roleMap.BindingCount == m_maxBindingCount) + { + SelectRoleSet(i); + break; + } + } + } + + private void OnEnable() + { + VRModule.onDeviceConnected += OnDeviceConnected; + } + + private void OnDisable() + { + VRModule.onDeviceConnected -= OnDeviceConnected; + + FinishEditBinding(); + } + + private void OnDeviceConnected(uint deviceIndex, bool connected) + { + RefreshSelectedRoleBindings(); + RefreshRoleSelection(); + } + + public void SetAnimatorSlideLeft() + { + if (m_animator.isInitialized) + { + m_animator.SetTrigger("SlideRoleSetViewLeft"); + } + } + + public void SetAnimatorSlideRight() + { + if (m_animator.isInitialized) + { + m_animator.SetTrigger("SlideRoleSetViewRight"); + } + } + + public void EnableSelection() + { + for (int i = 0, imax = m_roleSetButtonList.Count; i < imax; ++i) + { + m_roleSetButtonList[i].interactable = true; + } + } + + public void DisableSelection() + { + for (int i = 0, imax = m_roleSetButtonList.Count; i < imax; ++i) + { + m_roleSetButtonList[i].interactable = false; + } + } + + public void SelectRoleSet(int index) + { + m_roleSetButtonList[index].SetIsOn(); + + if (m_selectedRoleIndex == index) { return; } + + m_selectedRoleIndex = index; + + m_boundDevices.Clear(); + + RefreshSelectedRoleBindings(); + + if (m_onSelectRoleSet != null) + { + m_onSelectRoleSet.Invoke(selectedRoleMap); + } + } + + public void StartEditBinding(string deviceSN) + { + if (m_editingDevice == deviceSN) { return; } + + FinishEditBindingNoEvent(); + + var bindingItemIndex = m_boundDevices.IndexOf(deviceSN); + if (bindingItemIndex < 0) + { + selectedRoleMap.BindDeviceToRoleValue(deviceSN, selectedRoleMap.RoleValueInfo.InvalidRoleValue); + + m_editingDevice = deviceSN; + RefreshSelectedRoleBindings(); + RefreshRoleSelection(); + } + else + { + m_editingDevice = deviceSN; + m_bindingList[m_boundDevices.IndexOf(deviceSN)].isEditing = true; + } + + EnableHeightLightBinding(deviceSN); + + if (m_onEditBinding != null) + { + m_onEditBinding.Invoke(m_editingDevice); + } + } + + public void FinishEditBindingNoEvent() + { + if (isEditing) + { + m_bindingList[m_boundDevices.IndexOf(m_editingDevice)].isEditing = false; + } + + m_editingDevice = string.Empty; + } + + public void FinishEditBinding() + { + FinishEditBindingNoEvent(); + + if (m_onFinishEditBinding != null) + { + m_onFinishEditBinding.Invoke(); + } + } + + public void EnableHeightLightBinding(string deviceSN) + { + if (m_heighLightDevice == deviceSN) { return; } + + DisableHeightLightBinding(); + + if (string.IsNullOrEmpty(deviceSN)) { return; } + + var itemIndex = m_boundDevices.IndexOf(deviceSN); + if (itemIndex < 0) { return; } + + m_heighLightDevice = deviceSN; + m_bindingList[itemIndex].isHeighLight = true; + } + + public void DisableHeightLightBinding() + { + if (hasHeightLight) + { + m_bindingList[m_boundDevices.IndexOf(m_heighLightDevice)].isHeighLight = false; + m_heighLightDevice = string.Empty; + } + } + + public void RemoveBinding(string deviceSN) + { + if (isEditing && m_editingDevice == deviceSN) + { + FinishEditBinding(); + } + + selectedRoleMap.UnbindDevice(deviceSN); + RefreshRoleSelection(); + RefreshSelectedRoleBindings(); + } + + public void RefreshRoleSelection() + { + ViveRole.Initialize(); + + if (m_roleSetButtonList.Count == 0) + { + m_roleSetButtonList.Add(m_roleSetButtonItem); + m_roleSetButtonItem.index = 0; + m_roleSetButtonItem.onSelected += SelectRoleSet; + } + + m_maxBindingCount = 0; + var buttonIndex = 0; + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleType = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i); + var roleMap = ViveRole.GetMap(roleType); + + if (roleMap.Handler.BlockBindings) { continue; } + + BindingInterfaceRoleSetButtonItem item; + if (buttonIndex >= m_roleSetButtonList.Count) + { + var itemObj = Instantiate(m_roleSetButtonItem.gameObject); + itemObj.transform.SetParent(m_roleSetButtonItem.transform.parent, false); + + m_roleSetButtonList.Add(item = itemObj.GetComponent<BindingInterfaceRoleSetButtonItem>()); + item.index = buttonIndex; + item.onSelected += SelectRoleSet; + } + else + { + item = m_roleSetButtonList[buttonIndex]; + } + + m_maxBindingCount = Mathf.Max(m_maxBindingCount, roleMap.BindingCount); + item.roleMap = roleMap; + + ++buttonIndex; + } + } + + private IndexedSet<string> m_tempDevices = new OrderedIndexedSet<string>(); + public void RefreshSelectedRoleBindings() + { + var roleMap = m_roleSetButtonList[m_selectedRoleIndex].roleMap; + var bindingTable = roleMap.BindingTable; + + // update bound device list and keep the original order + for (int i = 0, imax = m_boundDevices.Count; i < imax; ++i) { m_tempDevices.Add(m_boundDevices[i]); } + for (int i = 0, imax = bindingTable.Count; i < imax; ++i) + { + var boundDevice = bindingTable.GetKeyByIndex(i); + if (!m_tempDevices.Remove(boundDevice)) + { + m_boundDevices.Add(boundDevice); + } + } + for (int i = 0, imax = m_tempDevices.Count; i < imax; ++i) { m_boundDevices.Remove(m_tempDevices[i]); } + m_tempDevices.Clear(); + + if (m_bindingList.Count == 0) + { + m_bindingList.Add(m_bindingItem); + m_bindingItem.onEditPress += StartEditBinding; + m_bindingItem.onRemovePress += RemoveBinding; + } + + var bindingIndex = 0; + for (int max = m_boundDevices.Count; bindingIndex < max; ++bindingIndex) + { + BindingInterfaceRoleSetBindingItem item; + if (bindingIndex >= m_bindingList.Count) + { + var itemObj = Instantiate(m_bindingItem.gameObject); + itemObj.transform.SetParent(m_bindingItem.transform.parent, false); + + // set child index to secnd last, last index is for add item + itemObj.transform.SetSiblingIndex(itemObj.transform.parent.childCount - 2); + + m_bindingList.Add(item = itemObj.GetComponent<BindingInterfaceRoleSetBindingItem>()); + item.onEditPress += StartEditBinding; + item.onRemovePress += RemoveBinding; + } + else + { + item = m_bindingList[bindingIndex]; + } + + item.gameObject.SetActive(true); + item.deviceSN = m_boundDevices[bindingIndex]; + item.isEditing = isEditing && item.deviceSN == m_editingDevice; + item.isHeighLight = hasHeightLight && item.deviceSN == m_heighLightDevice; + item.RefreshDisplayInfo(roleMap); + } + + // FIXME: issue in 2017.2.0b2, item won't refresh at the first time, force refresh + m_bindingItem.transform.parent.gameObject.SetActive(false); + m_bindingItem.transform.parent.gameObject.SetActive(true); + + for (int max = m_bindingList.Count; bindingIndex < max; ++bindingIndex) + { + m_bindingList[bindingIndex].gameObject.SetActive(false); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c47598f18d36071a8fced4eb93c27ed2d75b4d42 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceRoleSetPanelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6c4e61108c773b44ea56a358d2cec76c +timeCreated: 1502698658 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..17b9cb2e5c64e66d5e028d8f4aaf5a66ed0afa9d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs @@ -0,0 +1,140 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +#pragma warning disable 0649 +using HTC.UnityPlugin.VRModuleManagement; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace HTC.UnityPlugin.Vive.BindingInterface +{ + public class BindingInterfaceSpriteManager : MonoBehaviour + { + public const string MODEL_ICON_SPRITE_PREFIX = "binding_ui_icons_"; + public const string MODEL_PROJECT_SPRITE_PREFIX = "binding_ui_project_"; + + private static Dictionary<string, Sprite> s_spriteTable; + + [SerializeField] + private string[] texturePath; + + private void Awake() + { + if (s_spriteTable != null) { return; } + + s_spriteTable = new Dictionary<string, Sprite>(); + + foreach (var texture in texturePath) + { + if (string.IsNullOrEmpty(texture)) { continue; } + + var atlas = Resources.LoadAll<Sprite>(texture); + foreach (var sprite in atlas) + { + s_spriteTable.Add(sprite.name, sprite); + } + } + } + + public static Sprite GetSprite(string spriteName) + { + Sprite sprite; + if (s_spriteTable == null || !s_spriteTable.TryGetValue(spriteName, out sprite)) { return null; } + return sprite; + } + + public static void SetupDeviceIcon(Image image, VRModuleDeviceModel deviceModel, bool connected) + { + string spriteName; + switch (deviceModel) + { + case VRModuleDeviceModel.KnucklesLeft: + spriteName = MODEL_ICON_SPRITE_PREFIX + VRModuleDeviceModel.KnucklesRight; + image.transform.localScale = new Vector3(-1f, 1f, 1f); + break; + case VRModuleDeviceModel.OculusTouchLeft: + spriteName = MODEL_ICON_SPRITE_PREFIX + VRModuleDeviceModel.OculusTouchRight; + image.transform.localScale = new Vector3(-1f, 1f, 1f); + break; + default: + spriteName = MODEL_ICON_SPRITE_PREFIX + deviceModel.ToString(); + image.transform.localScale = new Vector3(1f, 1f, 1f); + break; + } + + image.sprite = GetSprite(spriteName); + + if (connected) + { + image.color = new Color32(0x53, 0xBB, 0x00, 0xFF); + } + else + { + image.color = new Color32(0x56, 0x56, 0x56, 0xFF); + } + } + + public static void SetupTrackingDeviceIcon(Image image, IVRModuleDeviceState deviceState, bool bound) + { + string spriteName; + var scale = Vector3.one; + switch (deviceState.deviceModel) + { + case VRModuleDeviceModel.KnucklesLeft: + spriteName = MODEL_PROJECT_SPRITE_PREFIX + VRModuleDeviceModel.KnucklesRight; + scale.x = -1f; + break; + case VRModuleDeviceModel.OculusTouchLeft: + spriteName = MODEL_PROJECT_SPRITE_PREFIX + VRModuleDeviceModel.OculusTouchRight; + scale.x = -1f; + break; + default: + switch (deviceState.deviceClass) + { + case VRModuleDeviceClass.HMD: + spriteName = "binding_ui_project_HMD"; + break; + case VRModuleDeviceClass.Controller: + spriteName = MODEL_PROJECT_SPRITE_PREFIX + VRModuleDeviceModel.ViveController; + break; + case VRModuleDeviceClass.GenericTracker: + spriteName = MODEL_PROJECT_SPRITE_PREFIX + VRModuleDeviceModel.ViveTracker; + break; + default: + spriteName = MODEL_PROJECT_SPRITE_PREFIX + deviceState.deviceModel.ToString(); + break; + } + break; + } + + var sprite = GetSprite(spriteName); + //Debug.Log("SetupTrackingDeviceIcon " + deviceModel + " " + bound + " " + spriteName + " null?" + (sprite == null)); + if (sprite == null) + { + image.enabled = false; + } + else + { + image.enabled = true; + image.sprite = sprite; + + var spriteRect = sprite.rect; + var spritePivot = sprite.pivot; + image.SetNativeSize(); + image.rectTransform.sizeDelta *= 0.2326f; + image.rectTransform.pivot = new Vector2(spritePivot.x / spriteRect.width, spritePivot.y / spriteRect.height); + + image.transform.localScale = scale; + + if (bound) + { + image.color = new Color32(0x21, 0xE3, 0xD8, 0xFF); + } + else + { + image.color = new Color32(0x9F, 0xEC, 0x28, 0xFF); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6ce2198ab5917501504ae7852ed1476c05333378 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/BindingInterface/BindingInterfaceSpriteManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3de4cc72829dff14a9141c9bcba2fd79 +timeCreated: 1502714310 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..3def3aaf6b6644cb00d5f36a450494ee30867d28 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 26139dea8806eec49942195a2c1629aa +folderAsset: yes +timeCreated: 1487772134 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref new file mode 100644 index 0000000000000000000000000000000000000000..81263084c864eab4a83837896a566ffe62524386 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "HTC.ViveInputUtility.Editor" +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref.meta new file mode 100644 index 0000000000000000000000000000000000000000..2472f677323d7c889cffbaefe2a0360876c7d0f8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/HTC.ViveInputUtility.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba5ec75e8b306a348a71e47acb6c59d5 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..c37e227407aa82d3f703dccc3aeec3784e86fb44 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs @@ -0,0 +1,179 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Reflection; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [CustomPropertyDrawer(typeof(ViveRoleProperty))] + public class ViveRolePropertyDrawer : PropertyDrawer + { + private static readonly string[] s_roleTypeNames; + + private static readonly Type s_defaultRoleType = ViveRoleProperty.DefaultRoleType; + private static readonly int s_defaultRoleTypeIndex; + + static ViveRolePropertyDrawer() + { + s_defaultRoleTypeIndex = ViveRoleEnum.ValidViveRoleTable.IndexOf(s_defaultRoleType.FullName); + + s_roleTypeNames = new string[ViveRoleEnum.ValidViveRoleTable.Count]; + for (int i = 0; i < s_roleTypeNames.Length; ++i) + { + s_roleTypeNames[i] = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i).Name; + } + } + + private static object GetFieldValue(object source, string name) + { + if (source == null) { return null; } + + var type = source.GetType(); + + while (type != null) + { + var f = type.GetField(name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); + if (f != null) { return f.GetValue(source); } + + var p = type.GetProperty(name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase); + if (p != null) { return p.GetValue(source, null); } + + type = type.BaseType; + } + + return null; + } + + private static object GetFieldValue(object source, string name, int index) + { + var enumerable = GetFieldValue(source, name) as System.Collections.IEnumerable; + + if (enumerable == null) { return null; } + + var enm = enumerable.GetEnumerator(); + + for (int i = 0; i <= index; i++) + { + if (!enm.MoveNext()) { return null; } + } + + return enm.Current; + } + + private static Regex s_regArray = new Regex(@"^(\w+)\[(\d+)\]$"); + public static object GetTargetObjectOfProperty(SerializedProperty prop) + { + var path = prop.propertyPath.Replace(".Array.data[", "["); + var obj = (object)prop.serializedObject.targetObject; + var elements = path.Split('.'); + + foreach (var element in elements) + { + var matche = s_regArray.Match(element); + if (matche.Success) + { + var elementName = matche.Groups[1].Value; + var index = int.Parse(matche.Groups[2].Value); + + obj = GetFieldValue(obj, elementName, index); + } + else + { + obj = GetFieldValue(obj, element); + } + } + + return obj; + } + + // Draw the property inside the given rect + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + // Using BeginProperty / EndProperty on the parent property means that + // prefab override logic works on the entire property. + EditorGUI.BeginProperty(position, label, property); + + // Draw label + position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), new GUIContent(property.displayName)); + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + + // Caluculate rects + var spacing = 5.0f; + var rectWidth = Mathf.Round((position.width - spacing) * 0.5f); + var enumTypeRect = new Rect(position.x, position.y, rectWidth, position.height); + var enumValueRect = new Rect(position.x + rectWidth + spacing, position.y, rectWidth, position.height); + + var roleTypeNameProp = property.FindPropertyRelative("m_roleTypeFullName"); + var roleValueNameProp = property.FindPropertyRelative("m_roleValueName"); + var roleValueIntProp = property.FindPropertyRelative("m_roleValueInt"); + + var roleTypeName = roleTypeNameProp.stringValue; + var roleValueName = roleValueNameProp.stringValue; + + // find current role type / type index + Type roleType; + var roleTypeIndex = ViveRoleEnum.ValidViveRoleTable.IndexOf(roleTypeName); + if (roleTypeIndex < 0) + { + // name not found + roleType = s_defaultRoleType; + roleTypeIndex = s_defaultRoleTypeIndex; + } + else + { + roleType = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(roleTypeIndex); + } + + // find current role value index + var roleTypeInfo = ViveRoleEnum.GetInfo(roleType); + var roleValueIndex = roleTypeInfo.GetElementIndexByName(roleValueName); + if (roleValueIndex < 0) + { + roleValueIndex = roleTypeInfo.InvalidRoleValueIndex; + } + + // draw pupup box, get new role type index / value index + var newRoleTypeIndex = EditorGUI.Popup(enumTypeRect, roleTypeIndex, s_roleTypeNames); + var newRoleValueIndex = EditorGUI.Popup(enumValueRect, roleValueIndex, EnumUtils.GetDisplayInfo(roleType).displayedNames); + + // if new role index changed + if (newRoleTypeIndex != roleTypeIndex || newRoleValueIndex != roleValueIndex) + { + var target = GetTargetObjectOfProperty(property) as ViveRoleProperty; + + if (newRoleTypeIndex != roleTypeIndex) + { + roleTypeNameProp.stringValue = ViveRoleEnum.ValidViveRoleTable.GetKeyByIndex(newRoleTypeIndex); + roleType = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(newRoleTypeIndex); + roleTypeInfo = ViveRoleEnum.GetInfo(roleType); + + target.SetTypeDirty(); + } + + if (newRoleValueIndex != roleValueIndex) + { + roleValueNameProp.stringValue = roleTypeInfo.GetNameByElementIndex(newRoleValueIndex); + roleValueIntProp.intValue = roleTypeInfo.GetRoleValueByElementIndex(newRoleValueIndex); + + target.SetValueDirty(); + } + + EditorApplication.delayCall += target.Update; + } + + property.serializedObject.ApplyModifiedProperties(); // will call ViveRoleProperty.OnAfterDeserialize here + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + + EditorGUI.EndProperty(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..82ed97893e93f93b03c3e04b904872bed98ac6f1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRolePropertyDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2bb82cf103eba9a4b8db364c6e68015c +timeCreated: 1487772149 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..da663de59fdfae39eb63e916c6bfd696db6c8b9e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs @@ -0,0 +1,57 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(ViveRoleSetter))] + public class ViveRoleSetterEditor : Editor + { + private static List<IViveRoleComponent> s_comps; + + private SerializedProperty m_scriptProp; + private SerializedProperty m_viveRoleProp; + + protected virtual void OnEnable() + { + m_scriptProp = serializedObject.FindProperty("m_Script"); + m_viveRoleProp = serializedObject.FindProperty("m_viveRole"); + } + + public override void OnInspectorGUI() + { + var setter = target as ViveRoleSetter; + + serializedObject.Update(); + + GUI.enabled = false; + EditorGUILayout.PropertyField(m_scriptProp); + GUI.enabled = true; + + EditorGUILayout.PropertyField(m_viveRoleProp); + + var dirtyCompCount = 0; + if (s_comps == null) { s_comps = new List<IViveRoleComponent>(); } + setter.GetComponentsInChildren(s_comps); + for (var i = s_comps.Count - 1; i >= 0; --i) + { + if (s_comps[i].viveRole != setter.viveRole) + { + ++dirtyCompCount; + } + } + s_comps.Clear(); + + if (dirtyCompCount > 0 && GUILayout.Button("Refresh(" + dirtyCompCount + ")")) + { + setter.UpdateChildrenViveRole(); + serializedObject.Update(); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..deb1ba49ebdb016a267cbdb4331eedac4a932a3e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/Editor/ViveRoleSetterEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5a5aeed66a43cff45a5818d6413bdbd4 +timeCreated: 1499063562 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps.meta new file mode 100644 index 0000000000000000000000000000000000000000..cc20d72d1e775bed89cc1f4be2913b86ef859623 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7a0fc4f8a3ef5a349b9e7f43e351a1ef +folderAsset: yes +timeCreated: 1487416629 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs new file mode 100644 index 0000000000000000000000000000000000000000..f7d251a2618c116b59a1d86094081af68ff24f1f --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs @@ -0,0 +1,169 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + [ViveRoleEnum((int)TrackerRole.Invalid)] + public enum BodyRole + { + Invalid, + Head, + RightHand, + LeftHand, + RightFoot, + LeftFoot, + Hip, + } + + public class BodyRoleHandler : ViveRole.MapHandler<BodyRole> + { + private float[] m_directionPoint = new float[VRModule.MAX_DEVICE_COUNT]; + private float[] m_distanceSqr = new float[VRModule.MAX_DEVICE_COUNT]; + private List<uint> m_sortedDevices = new List<uint>(); + + private bool IsTrackingDevice(uint deviceIndex) + { + return IsTrackingDevice(VRModule.GetCurrentDeviceState(deviceIndex).deviceClass); + } + + private bool IsTrackingDevice(VRModuleDeviceClass deviceClass) + { + return deviceClass == VRModuleDeviceClass.HMD || deviceClass == VRModuleDeviceClass.Controller || deviceClass == VRModuleDeviceClass.GenericTracker; + } + + public override void OnAssignedAsCurrentMapHandler() { Refresh(); } + + public override void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) + { + if (!RoleMap.IsDeviceBound(deviceSN) && !IsTrackingDevice(deviceClass)) { return; } + + Refresh(); + } + + public override void OnBindingChanged(string deviceSN, bool previousIsBound, BodyRole previousRole, bool currentIsBound, BodyRole currentRole) + { + uint deviceIndex; + if (!VRModule.TryGetConnectedDeviceIndex(deviceSN, out deviceIndex)) { return; } + + Refresh(); + } + + public void Refresh() + { + m_sortedDevices.Clear(); + + UnmappingAll(); + + if (!VRModule.IsValidDeviceIndex(VRModule.HMD_DEVICE_INDEX)) { return; } + + MappingRoleIfUnbound(BodyRole.Head, VRModule.HMD_DEVICE_INDEX); + + // get related poses and record controller/tracker devices + var hmdPose = VivePose.GetPose(0u); + // preserve only y-axis rotation + hmdPose.rot = Quaternion.Euler(0f, hmdPose.rot.eulerAngles.y, 0f); + // move center to half height + hmdPose.pos = Vector3.Scale(hmdPose.pos, new Vector3(1f, 0.5f, 1f)); + var halfHeight = hmdPose.pos.y; + var centerPoseInverse = hmdPose.GetInverse(); + for (uint i = 1, imax = VRModule.GetDeviceStateCount(); i < imax; ++i) + { + if (!IsTrackingDevice(i)) { continue; } + + var relatedCenterPos = centerPoseInverse.TransformPoint(VRModule.GetCurrentDeviceState(i).pose.pos); + m_directionPoint[i] = HandRoleHandler.GetDirectionPoint(new Vector2(relatedCenterPos.x, -relatedCenterPos.y)); + m_distanceSqr[i] = relatedCenterPos.sqrMagnitude / (halfHeight * halfHeight); + + m_sortedDevices.Add(i); + } + + if (m_sortedDevices.Count == 0) + { + return; + } + + var index = m_sortedDevices.Count - 1; // pointing last index + // find 2 feet, should be most farest 2 devices + m_sortedDevices.Sort(CompareDistance); + if (IsFoot(m_sortedDevices[index])) + { + if (m_sortedDevices.Count <= 1) + { + MappingRoleIfUnbound(BodyRole.RightFoot, m_sortedDevices[index]); + return; + } + + if (!IsFoot(m_sortedDevices[index - 1])) + { + // only 1 foot found + MappingRoleIfUnbound(BodyRole.RightFoot, m_sortedDevices[index]); + m_sortedDevices.RemoveAt(index--); + if (index < 0) { return; } + } + else + { + // 2 feet found, determine lef/right foot + if (m_directionPoint[m_sortedDevices[index]] < m_directionPoint[m_sortedDevices[index - 1]]) + { + MappingRoleIfUnbound(BodyRole.RightFoot, m_sortedDevices[index]); + MappingRoleIfUnbound(BodyRole.LeftFoot, m_sortedDevices[index - 1]); + } + else + { + MappingRoleIfUnbound(BodyRole.RightFoot, m_sortedDevices[index - 1]); + MappingRoleIfUnbound(BodyRole.LeftFoot, m_sortedDevices[index]); + } + + m_sortedDevices.RemoveAt(index--); + m_sortedDevices.RemoveAt(index--); + if (index < 0) { return; } + } + } + + // find 2 hands, should be most left and most right device + m_sortedDevices.Sort(CompareDirection); + + // right most device as right hand + MappingRoleIfUnbound(BodyRole.RightHand, m_sortedDevices[0]); + if (m_sortedDevices.Count == 1) { return; } + + // left most device as left hand + MappingRoleIfUnbound(BodyRole.LeftHand, m_sortedDevices[index]); + if (m_sortedDevices.Count == 2) { return; } + + // middle one as hip + MappingRoleIfUnbound(BodyRole.Hip, m_sortedDevices[index / 2]); + } + + private bool IsFoot(uint di) + { + var dist = m_distanceSqr[di]; + var dir = m_directionPoint[di]; + + return dist > (0.25f * 0.25f) && dir > 3.5f && dir < 4.5f; + } + + private int CompareDistance(uint d1, uint d2) + { + var dd1 = m_distanceSqr[d1]; + var dd2 = m_distanceSqr[d2]; + + if (dd1 == dd2) { return 0; } + if (dd1 < dd2) { return -1; } + return 1; + } + + private int CompareDirection(uint d1, uint d2) + { + var sd1 = m_directionPoint[d1]; + var sd2 = m_directionPoint[d2]; + + if (sd1 == sd2) { return 0; } + if (sd1 < sd2) { return -1; } + return 1; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..869d0542af3d7d46fc63cb3dc290ec257cd4c49a --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/BodyRole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7c9aafe2a41a40b49998c1d09fc49110 +timeCreated: 1488877728 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs new file mode 100644 index 0000000000000000000000000000000000000000..29543c690b6eda358838d9250cc7d3c6aa7a43c8 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs @@ -0,0 +1,125 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// Defines roles for those devices that have tracking data + /// </summary> + [ViveRoleEnum((int)DeviceRole.Invalid)] + public enum DeviceRole + { + Invalid = -2, + Hmd, + Device1, + Device2, + Device3, + Device4, + Device5, + Device6, + Device7, + Device8, + Device9, + Device10, + Device11, + Device12, + Device13, + Device14, + Device15, + [HideInInspector] + [Obsolete("Use HandRole.RightHand instead")] + RightHand = Device1, + [HideInInspector] + [Obsolete("Use HandRole.LeftHand instead")] + LeftHand, + [HideInInspector] + [Obsolete("Use HandRole.Controller3 instead")] + Controller3, + [HideInInspector] + [Obsolete("Use HandRole.Controller4 instead")] + Controller4, + [HideInInspector] + [Obsolete("Use HandRole.Controller5 instead")] + Controller5, + [HideInInspector] + [Obsolete("Use HandRole.Controller6 instead")] + Controller6, + [HideInInspector] + [Obsolete("Use HandRole.Controller7 instead")] + Controller7, + [HideInInspector] + [Obsolete("Use HandRole.Controller8 instead")] + Controller8, + [HideInInspector] + [Obsolete("Use HandRole.Controller9 instead")] + Controller9, + [HideInInspector] + [Obsolete("Use HandRole.Controller10 instead")] + Controller10, + [HideInInspector] + [Obsolete("Use HandRole.Controller11 instead")] + Controller11, + [HideInInspector] + [Obsolete("Use HandRole.Controller12 instead")] + Controller12, + [HideInInspector] + [Obsolete("Use HandRole.Controller13 instead")] + Controller13, + [HideInInspector] + [Obsolete("Use HandRole.Controller14 instead")] + Controller14, + [HideInInspector] + [Obsolete("Use HandRole.Controller15 instead")] + Controller15, + } + + public class DeviceRoleHandler : ViveRole.MapHandler<DeviceRole> + { + public override bool BlockBindings { get { return true; } } + + public override void OnAssignedAsCurrentMapHandler() { Refresh(); } + + public override void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) + { + if (connected) + { + if (RoleMap.IsDeviceBound(deviceSN)) { return; } + } + else + { + return; + } + + Refresh(); + } + + public override void OnBindingChanged(string deviceSN, bool previousIsBound, DeviceRole previousRole, bool currentIsBound, DeviceRole currentRole) + { + uint deviceIndex; + if (!VRModule.TryGetConnectedDeviceIndex(deviceSN, out deviceIndex)) { return; } + + Refresh(); + } + + public void Refresh() + { + var deviceIndex = 0u; + for (var role = RoleInfo.MinValidRole; role <= RoleInfo.MaxValidRole && deviceIndex < VRModule.MAX_DEVICE_COUNT; ++role, ++deviceIndex) + { + if (!RoleInfo.IsValidRole(role)) { continue; } + + if (VRModule.GetCurrentDeviceState(deviceIndex).isConnected) + { + MappingRoleIfUnbound(role, deviceIndex); + } + else + { + UnmappingRole(role); + } + } + } + } +} diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..425c336d0412a55767fca9c3e310b580338fab5d --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/DeviceRole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 404bfc469262da64581fa64073e16681 +timeCreated: 1461556820 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs new file mode 100644 index 0000000000000000000000000000000000000000..f0733c6fc7ce39334cd2a5d81a271e275e4ef1e2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs @@ -0,0 +1,376 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// Defines roles for those devices that have buttons + /// </summary> + [ViveRoleEnum((int)HandRole.Invalid)] + public enum HandRole + { + Invalid = -1, + RightHand, + LeftHand, + ExternalCamera, + Controller3 = ExternalCamera, + Controller4, + Controller5, + Controller6, + Controller7, + Controller8, + Controller9, + Controller10, + Controller11, + Controller12, + Controller13, + Controller14, + Controller15, + } + + public static class ConvertRoleExtension + { + [Obsolete("HandRole and DeviceRole are not related now")] + public static DeviceRole ToDeviceRole(this HandRole role) + { + switch (role) + { + case HandRole.RightHand: return DeviceRole.RightHand; + case HandRole.LeftHand: return DeviceRole.LeftHand; + case HandRole.Controller3: return DeviceRole.Controller3; + case HandRole.Controller4: return DeviceRole.Controller4; + case HandRole.Controller5: return DeviceRole.Controller5; + case HandRole.Controller6: return DeviceRole.Controller6; + case HandRole.Controller7: return DeviceRole.Controller7; + case HandRole.Controller8: return DeviceRole.Controller8; + case HandRole.Controller9: return DeviceRole.Controller9; + case HandRole.Controller10: return DeviceRole.Controller10; + case HandRole.Controller11: return DeviceRole.Controller11; + case HandRole.Controller12: return DeviceRole.Controller12; + case HandRole.Controller13: return DeviceRole.Controller13; + case HandRole.Controller14: return DeviceRole.Controller14; + case HandRole.Controller15: return DeviceRole.Controller15; + default: return (DeviceRole)((int)DeviceRole.Hmd - 1); // returns invalid value + } + } + } + + public class HandRoleHandler : ViveRole.MapHandler<HandRole> + { +#if __VIU_STEAMVR + private uint[] m_sortedDevices = new uint[VRModule.MAX_DEVICE_COUNT]; +#endif + private List<uint> m_sortedDeviceList = new List<uint>(); + + // HandRole only tracks controllers + private bool IsController(uint deviceIndex) + { + return IsController(VRModule.GetCurrentDeviceState(deviceIndex).deviceClass); + } + + private bool IsController(VRModuleDeviceClass deviceClass) + { + return deviceClass == VRModuleDeviceClass.Controller; + } + + private bool IsTracker(uint deviceIndex) + { + return IsTracker(VRModule.GetCurrentDeviceState(deviceIndex).deviceClass); + } + + private bool IsTracker(VRModuleDeviceClass deviceClass) + { + return deviceClass == VRModuleDeviceClass.GenericTracker; + } + + public override void OnAssignedAsCurrentMapHandler() { Refresh(); } + + public override void OnTrackedDeviceRoleChanged() { Refresh(); } + + public override void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) + { + if (!RoleMap.IsDeviceBound(deviceSN) && !IsController(deviceClass) && !IsTracker(deviceClass)) { return; } + + Refresh(); + } + + public override void OnBindingChanged(string deviceSN, bool previousIsBound, HandRole previousRole, bool currentIsBound, HandRole currentRole) + { + uint deviceIndex; + if (!VRModule.TryGetConnectedDeviceIndex(deviceSN, out deviceIndex)) { return; } + + Refresh(); + } + + public void Refresh() + { + MappingLeftRightHands(); + MappingOtherControllers(); + } + + private void MappingLeftRightHands() + { + // assign left/right controllers according to the hint + var rightIndex = VRModule.GetRightControllerDeviceIndex(); + var leftIndex = VRModule.GetLeftControllerDeviceIndex(); + + if (VRModule.GetCurrentDeviceState(rightIndex).isConnected) + { + MappingRoleIfUnbound(HandRole.RightHand, rightIndex); + rightIndex = RoleMap.GetMappedDeviceByRole(HandRole.RightHand); + } + else if (RoleMap.IsRoleBound(HandRole.RightHand)) + { + rightIndex = RoleMap.GetMappedDeviceByRole(HandRole.RightHand); + } + else + { + rightIndex = VRModule.INVALID_DEVICE_INDEX; + } + + if (VRModule.GetCurrentDeviceState(leftIndex).isConnected && leftIndex != rightIndex) + { + MappingRoleIfUnbound(HandRole.LeftHand, leftIndex); + leftIndex = RoleMap.GetMappedDeviceByRole(HandRole.LeftHand); + } + else if (RoleMap.IsRoleBound(HandRole.LeftHand)) + { + leftIndex = RoleMap.GetMappedDeviceByRole(HandRole.LeftHand); + } + else + { + leftIndex = VRModule.INVALID_DEVICE_INDEX; + } + + // if not both left/right controllers are assigned, find and assign them with left/right most controller + if (!VRModule.IsValidDeviceIndex(rightIndex) || !VRModule.IsValidDeviceIndex(leftIndex)) + { + // find right to left sorted controllers + // FIXME: GetSortedTrackedDeviceIndicesOfClass doesn't return correct devices count right after device connected +#if __VIU_STEAMVR + if (VRModule.activeModule == SupportedVRModule.SteamVR) + { + var count = 0; + var system = Valve.VR.OpenVR.System; + if (system != null) + { + count = (int)system.GetSortedTrackedDeviceIndicesOfClass(Valve.VR.ETrackedDeviceClass.Controller, m_sortedDevices, Valve.VR.OpenVR.k_unTrackedDeviceIndex_Hmd); + } + + foreach (var deviceIndex in m_sortedDevices) + { + if (m_sortedDeviceList.Count >= count) { break; } + if (IsController(deviceIndex) && deviceIndex != rightIndex && deviceIndex != leftIndex && !RoleMap.IsDeviceConnectedAndBound(deviceIndex)) + { + m_sortedDeviceList.Add(deviceIndex); + } + } + } + else +#endif + { + for (uint deviceIndex = 1u, imax = VRModule.GetDeviceStateCount(); deviceIndex < imax; ++deviceIndex) + { + if (IsController(deviceIndex) && deviceIndex != rightIndex && deviceIndex != leftIndex && !RoleMap.IsDeviceConnectedAndBound(deviceIndex)) + { + m_sortedDeviceList.Add(deviceIndex); + } + } + + if (m_sortedDeviceList.Count > 1) + { + SortDeviceIndicesByDirection(m_sortedDeviceList, VRModule.GetCurrentDeviceState(VRModule.HMD_DEVICE_INDEX).pose); + } + } + + if (m_sortedDeviceList.Count > 0 && !VRModule.IsValidDeviceIndex(rightIndex)) + { + rightIndex = m_sortedDeviceList[0]; + m_sortedDeviceList.RemoveAt(0); + // mapping right most controller + MappingRole(HandRole.RightHand, rightIndex); + } + + if (m_sortedDeviceList.Count > 0 && !VRModule.IsValidDeviceIndex(leftIndex)) + { + leftIndex = m_sortedDeviceList[m_sortedDeviceList.Count - 1]; + // mapping left most controller + MappingRole(HandRole.LeftHand, leftIndex); + } + + m_sortedDeviceList.Clear(); + } + + if (!VRModule.IsValidDeviceIndex(rightIndex)) { UnmappingRole(HandRole.RightHand); } + if (!VRModule.IsValidDeviceIndex(leftIndex)) { UnmappingRole(HandRole.LeftHand); } + } + + private void MappingOtherControllers() + { + // mapping other controllers in order of device index + var deviceIndex = 0u; + var firstFoundTracker = VRModule.INVALID_DEVICE_INDEX; + var rightIndex = RoleMap.GetMappedDeviceByRole(HandRole.RightHand); + var leftIndex = RoleMap.GetMappedDeviceByRole(HandRole.LeftHand); + + for (var role = RoleInfo.MinValidRole; role <= RoleInfo.MaxValidRole; ++role) + { + if (!RoleInfo.IsValidRole(role)) { continue; } + if (role == HandRole.RightHand || role == HandRole.LeftHand) { continue; } + if (RoleMap.IsRoleBound(role)) { continue; } + + // find next valid device + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + while (!IsController(deviceIndex) || RoleMap.IsDeviceConnectedAndBound(deviceIndex) || deviceIndex == rightIndex || deviceIndex == leftIndex) + { + if (!VRModule.IsValidDeviceIndex(firstFoundTracker) && IsTracker(deviceIndex)) { firstFoundTracker = deviceIndex; } + if (!VRModule.IsValidDeviceIndex(++deviceIndex)) { break; } + } + } + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + MappingRole(role, deviceIndex++); + } + else + { + UnmappingRole(role); + } + } + + // if external camera is not mapped, try mapping first found tracker + if (!RoleMap.IsRoleMapped(HandRole.ExternalCamera) && VRModule.IsValidDeviceIndex(firstFoundTracker) && !RoleMap.IsDeviceConnectedAndBound(firstFoundTracker)) + { + MappingRole(HandRole.ExternalCamera, firstFoundTracker); + } + } + + private static readonly float[] s_deviceDirPoint = new float[VRModule.MAX_DEVICE_COUNT]; + public static void SortDeviceIndicesByDirection(List<uint> deviceList, RigidPose sortingReference) + { + if (deviceList == null || deviceList.Count == 0) { return; } + + for (int i = 0, imax = deviceList.Count; i < imax; ++i) + { + var deviceIndex = deviceList[i]; + if (!VRModule.IsValidDeviceIndex(deviceIndex)) { continue; } + + var deviceState = VRModule.GetCurrentDeviceState(deviceIndex); + if (deviceState.isConnected) + { + var localPos = sortingReference.InverseTransformPoint(deviceState.pose.pos); + s_deviceDirPoint[deviceIndex] = GetDirectionPoint(new Vector2(localPos.x, localPos.z)); + } + else + { + s_deviceDirPoint[deviceIndex] = -1f; + } + } + + deviceList.Sort(CompareDirection); + } + + [Obsolete] + public static void SortDeviceIndicesByDirection(List<uint> deviceList, PoseTracker.Pose sortingReference) + { + SortDeviceIndicesByDirection(deviceList, sortingReference); + } + + private static int CompareDirection(uint d1, uint d2) + { + var d1Point = s_deviceDirPoint[d1]; + var d2Point = s_deviceDirPoint[d2]; + var d1Valid = VRModule.IsValidDeviceIndex(d1) && d1Point >= 0f; + var d2Valid = VRModule.IsValidDeviceIndex(d2) && d2Point >= 0f; + + if (!d1Valid || !d2Valid) + { + if (d1Valid) { return -1; } + if (d2Valid) { return 1; } + + if (d1 < d2) { return -1; } + if (d1 > d2) { return 1; } + + return 0; + } + + if (d1Point < d2Point) { return -1; } + if (d1Point > d2Point) { return 1; } + + return 0; + } + + // Y+ + // || + // \\ 4 || 3 // + // \\ || // + // 5 \\ ^^ // 2 + // =========[]========= X+ + // 6 // || \\ 1 + // // || \\ + // // 7 || 0 \\ + // || + // less point => right side + public static float GetDirectionPoint(Vector2 pos) + { + var ax = Mathf.Abs(pos.x); + var ay = Mathf.Abs(pos.y); + if (pos.x > 0f) + { + if (pos.y < 0f) + { + if (ax < ay) + { + return 0f + (ax / ay); + } + else + { + return 1f + (1f - ay / ax); + } + } + else + { + if (ax > ay) + { + return 2f + (ay / ax); + } + else + { + return 3f + (1f - ax / ay); + } + } + } + else + { + if (pos.y > 0f) + { + if (ax < ay) + { + return 4f + (ax / ay); + } + else + { + return 5f + (1f - ay / ax); + } + } + else + { + if (ax > ay) + { + return 6f + (ay / ax); + } + else + { + return 7f + (1 - ax / ay); + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8b93b6cdf0a39cef9e112cef4b5f96b4b2665b24 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/HandRole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7c42c2a7294d85e49810332c9c01a7d8 +timeCreated: 1461556847 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs new file mode 100644 index 0000000000000000000000000000000000000000..0a79735667903ae1be4a6ddb79c017a57a34d164 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs @@ -0,0 +1,88 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; + +namespace HTC.UnityPlugin.Vive +{ + [ViveRoleEnum((int)TrackerRole.Invalid)] + public enum TrackerRole + { + Invalid, + Tracker1, + Tracker2, + Tracker3, + Tracker4, + Tracker5, + Tracker6, + Tracker7, + Tracker8, + Tracker9, + Tracker10, + Tracker11, + Tracker12, + Tracker13, + } + + public class TrackerRoleHandler : ViveRole.MapHandler<TrackerRole> + { + private bool IsTracker(uint deviceIndex) + { + return IsTracker(VRModule.GetCurrentDeviceState(deviceIndex).deviceClass); + } + + private bool IsTracker(VRModuleDeviceClass deviceClass) + { + return deviceClass == VRModuleDeviceClass.GenericTracker; + } + + public override void OnAssignedAsCurrentMapHandler() { Refresh(); } + + public override void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) + { + if (!RoleMap.IsDeviceBound(deviceSN) && !IsTracker(deviceClass)) { return; } + + Refresh(); + } + + public override void OnBindingChanged(string deviceSN, bool previousIsBound, TrackerRole previousRole, bool currentIsBound, TrackerRole currentRole) + { + uint deviceIndex; + if (!VRModule.TryGetConnectedDeviceIndex(deviceSN, out deviceIndex)) { return; } + + Refresh(); + } + + public void Refresh() + { + MappingTrackers(); + } + + private void MappingTrackers() + { + var deviceIndex = 0u; + for (var role = RoleInfo.MinValidRole; role <= RoleInfo.MaxValidRole; ++role) + { + if (!RoleInfo.IsValidRole(role)) { continue; } + if (RoleMap.IsRoleBound(role)) { continue; } + + // find next valid device + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + while (!IsTracker(deviceIndex) || RoleMap.IsDeviceConnectedAndBound(deviceIndex)) + { + if (!VRModule.IsValidDeviceIndex(++deviceIndex)) { break; } + } + } + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + MappingRole(role, deviceIndex++); + } + else + { + UnmappingRole(role); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..503be62069321c333148fe52f3044b50b14ed09c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/RoleMaps/TrackerRole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f2db60966d21dd24ea9ee7340d079bdd +timeCreated: 1487442477 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs new file mode 100644 index 0000000000000000000000000000000000000000..e79814efe700842c1cae776c54cf5d5042c221bb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs @@ -0,0 +1,162 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + /// <summary> + /// Provide static APIs to retrieve device index by semantic role + /// Same mapping logic as SteamVR_ControllerManager does + /// </summary> + public static partial class ViveRole + { + [Obsolete("Use VRModule.MAX_DEVICE_COUNT instead")] + public const uint MAX_DEVICE_COUNT = VRModule.MAX_DEVICE_COUNT; + [Obsolete("Use VRModule.INVALID_DEVICE_INDEX instead")] + public const uint INVALID_DEVICE_INDEX = VRModule.INVALID_DEVICE_INDEX; + + public readonly static DeviceRoleHandler DefaultDeviceRoleHandler = new DeviceRoleHandler(); + public readonly static HandRoleHandler DefaultHandRoleHandler = new HandRoleHandler(); + public readonly static TrackerRoleHandler DefaultTrackerRoleHandler = new TrackerRoleHandler(); + public readonly static BodyRoleHandler DefaultBodyRoleHandler = new BodyRoleHandler(); + + private static bool s_initialized = false; + + [RuntimeInitializeOnLoadMethod] + private static void OnLoad() + { + if (VRModule.Active && VRModule.activeModule != VRModuleActiveEnum.Uninitialized) + { + Initialize(); + } + else + { + VRModule.onActiveModuleChanged += OnModuleActive; + } + } + + private static void OnModuleActive(VRModuleActiveEnum activatedModule) { Initialize(); } + + public static void Initialize() + { + if (s_initialized || !Application.isPlaying) { return; } + s_initialized = true; + + // update the ViveRole system with initial connecting state + for (uint index = 0; index < VRModule.MAX_DEVICE_COUNT; ++index) + { + OnDeviceConnected(index, VivePose.IsConnected(index)); + } + + VRModule.onDeviceConnected += OnDeviceConnected; + VRModule.onControllerRoleChanged += OnTrackedDeviceRoleChanged; + + // assign default role map handlers + AssignMapHandler(DefaultDeviceRoleHandler); + AssignMapHandler(DefaultHandRoleHandler); + AssignMapHandler(DefaultTrackerRoleHandler); + AssignMapHandler(DefaultBodyRoleHandler); + } + + private static void OnDeviceConnected(uint deviceIndex, bool connected) + { + var prevState = VRModule.GetPreviousDeviceState(deviceIndex); + var currState = VRModule.GetCurrentDeviceState(deviceIndex); + + // update serial number table and model number table + if (connected) + { + for (int i = s_mapTable.Count - 1; i >= 0; --i) + { + s_mapTable.GetValueByIndex(i).OnConnectedDeviceChanged(deviceIndex, currState.deviceClass, currState.serialNumber, true); + } + } + else + { + for (int i = s_mapTable.Count - 1; i >= 0; --i) + { + s_mapTable.GetValueByIndex(i).OnConnectedDeviceChanged(deviceIndex, prevState.deviceClass, prevState.serialNumber, false); + } + } + } + + private static void OnTrackedDeviceRoleChanged() + { + for (int i = s_mapTable.Count - 1; i >= 0; --i) + { + s_mapTable.GetValueByIndex(i).OnTrackedDeviceRoleChanged(); + } + } + + [Obsolete("Use VRModule.TryGetDeviceIndex instead")] + public static bool TryGetDeviceIndexBySerialNumber(string serialNumber, out uint deviceIndex) + { + return VRModule.TryGetConnectedDeviceIndex(serialNumber, out deviceIndex); + } + + [Obsolete("Use VRModule.GetCurrentDeviceState(deviceIndex).modelNumber instead")] + public static string GetModelNumber(uint deviceIndex) + { + return IsValidIndex(deviceIndex) ? VRModule.GetCurrentDeviceState(deviceIndex).modelNumber : string.Empty; + } + + [Obsolete("Use VRModule.GetCurrentDeviceState(deviceIndex).serialNumber instead")] + public static string GetSerialNumber(uint deviceIndex) + { + return IsValidIndex(deviceIndex) ? VRModule.GetCurrentDeviceState(deviceIndex).serialNumber : string.Empty; + } + + [Obsolete("Use VRModule.GetCurrentDeviceState(deviceIndex).deviceClass instead")] + public static VRModuleDeviceClass GetDeviceClass(uint deviceIndex) + { + return IsValidIndex(deviceIndex) ? VRModule.GetCurrentDeviceState(deviceIndex).deviceClass : VRModuleDeviceClass.Invalid; + } + + /// <summary> + /// Returns device index of the device identified by the role + /// Returns INVALID_DEVICE_INDEX if the role doesn't assign to any device + /// </summary> + /// <returns>Current device index assigned to the role, should be tested by ViveRole.IsValidIndex before using it</returns> + public static uint GetDeviceIndex(HandRole role) + { + return GetDeviceIndexEx(role); + } + + /// <summary> + /// Returns device index of the device identified by the role + /// Returns INVALID_DEVICE_INDEX if the role doesn't assign to any device + /// </summary> + /// <returns>Current device index assigned to the role, should be tested by ViveRole.IsValidIndex before using it</returns> + public static uint GetDeviceIndex(DeviceRole role) + { + return GetDeviceIndexEx(role); + } + + /// <typeparam name="TRole"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </typeparam> + /// <param name="role"> + /// TRole can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static uint GetDeviceIndexEx<TRole>(TRole role) + { + return GetMap<TRole>().GetMappedDeviceByRole(role); + } + + /// <param name="roleType"> + /// Can be DeviceRole, TrackerRole or any other enum type that have ViveRoleEnumAttribute. + /// Use ViveRole.ValidateViveRoleEnum() to validate role type + /// </param> + public static uint GetDeviceIndexEx(Type type, int roleValue) + { + return GetMap(type).GetMappedDeviceByRoleValue(roleValue); + } + + [Obsolete("Use VRModule.IsValidDeviceIndex instead")] + public static bool IsValidIndex(uint index) { return VRModule.IsValidDeviceIndex(index); } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3719a1bdb91f65dcce0dabca8dded749e8580666 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c00a409f621cb2c429be3c7396f4fa99 +timeCreated: 1460970387 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..7fa87a0025f658b89e99db284ff2e969486a9ce7 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs @@ -0,0 +1,413 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using HTC.UnityPlugin.Utility; +using System; +using System.IO; +using UnityEngine; +using UnityEngine.Serialization; +using System.Collections.Generic; + +namespace HTC.UnityPlugin.Vive +{ + public class ViveRoleBindingsHelper : SingletonBehaviour<ViveRoleBindingsHelper> + { + [Serializable] + public struct Binding + { + [FormerlySerializedAs("sn")] + public string device_sn; + public VRModuleDeviceModel device_model; + public string role_name; + [FormerlySerializedAs("sv")] + public int role_value; + } + + [Serializable] + public struct RoleData + { + public string type; + public Binding[] bindings; + } + + [Serializable] + public class BindingConfig + { + [NonSerialized] + [Obsolete("This field is always true now. Use VIUSettings.autoLoadBindingConfigOnStart to control if the project will auto load config.")] + public bool apply_bindings_on_load = true; + [NonSerialized] + [Obsolete("Use VIUSettings.bindingInterfaceSwitchKey instead.")] + public string toggle_interface_key_code = string.Empty; + [NonSerialized] + [Obsolete("Use VIUSettings.bindingInterfaceSwitchKeyModifier instead.")] + public string toggle_interface_modifier = string.Empty; + [NonSerialized] + [Obsolete("Use VIUSettings.bindingInterfaceObject instead.")] + public string interface_prefab = DEFAULT_INTERFACE_PREFAB; + + public RoleData[] roles = new RoleData[0]; + } + + [Obsolete("Use VIUSettings.BINDING_INTERFACE_CONFIG_FILE_PATH_DEFAULT_VALUE instead.")] + public const string AUTO_LOAD_CONFIG_PATH = "vive_role_bindings.cfg"; + [Obsolete("Use VIUSettings.BINDING_INTERFACE_PREFAB_DEFAULT_RESOURCE_PATH instead.")] + public const string DEFAULT_INTERFACE_PREFAB = "VIUBindingInterface"; + + private static BindingConfig s_bindingConfig = new BindingConfig(); + + private static GameObject s_interfaceObj; + private static Dictionary<string, VRModuleDeviceModel> s_modelHintTable = new Dictionary<string, VRModuleDeviceModel>(); + + public static BindingConfig bindingConfig { get { return s_bindingConfig; } } + + public static bool isBindingInterfaceEnabled { get { return s_interfaceObj != null && s_interfaceObj.activeSelf; } } + + static ViveRoleBindingsHelper() + { + SetDefaultInitGameObjectGetter(VRModule.GetInstanceGameObject); + } + + [RuntimeInitializeOnLoadMethod] + private static void OnLoad() + { + if (VRModule.Active && VRModule.activeModule != VRModuleActiveEnum.Uninitialized) + { + TryInitializeOnLoad(); + } + else + { + VRModule.onActiveModuleChanged += OnActiveModuleChanged; + } + } + + private static void OnActiveModuleChanged(VRModuleActiveEnum activatedModule) + { + if (activatedModule != VRModuleActiveEnum.Uninitialized) + { + VRModule.onActiveModuleChanged -= OnActiveModuleChanged; + + TryInitializeOnLoad(); + } + } + + private static void TryInitializeOnLoad() + { + if (VIUSettings.autoLoadBindingConfigOnStart) + { + if (LoadBindingConfigFromFile(VIUSettings.bindingConfigFilePath)) + { + var appliedCount = ApplyBindingConfigToRoleMap(); + + Debug.Log("ViveRoleBindingsHelper: " + appliedCount + " bindings applied from " + VIUSettings.bindingConfigFilePath); + } + } + + if (!Active && VIUSettings.enableBindingInterfaceSwitch) + { + Initialize(); + } + } + + private void Update() + { + if (!IsInstance) { return; } + + if (VIUSettings.enableBindingInterfaceSwitch) + { + if (Input.GetKeyDown(VIUSettings.bindingInterfaceSwitchKey) && (VIUSettings.bindingInterfaceSwitchKeyModifier == KeyCode.None || Input.GetKey(VIUSettings.bindingInterfaceSwitchKeyModifier))) + { + ToggleBindingInterface(); + } + } + } + + public static VRModuleDeviceModel GetDeviceModelHint(string deviceSN) + { + var deviceIndex = VRModule.GetConnectedDeviceIndex(deviceSN); + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + return VRModule.GetCurrentDeviceState(deviceIndex).deviceModel; + } + + VRModuleDeviceModel deviceModel; + if (s_modelHintTable.TryGetValue(deviceSN, out deviceModel)) + { + return deviceModel; + } + + return VRModuleDeviceModel.Unknown; + } + + public static void EnableBindingInterface() + { + if (s_interfaceObj == null) + { + if (VIUSettings.bindingInterfaceObjectSource == null) + { + Debug.LogWarning("VIUSettings.bindingInterfaceObjectSource is null."); + return; + } + + s_interfaceObj = Instantiate(VIUSettings.bindingInterfaceObjectSource); + } + else + { + s_interfaceObj.SetActive(true); + } + } + + public static void DisableBindingInterface() + { + if (s_interfaceObj != null) + { + s_interfaceObj.SetActive(false); + } + } + + public static void ToggleBindingInterface() + { + if (!isBindingInterfaceEnabled) + { + EnableBindingInterface(); + } + else + { + DisableBindingInterface(); + } + } + + public static void LoadBindingConfigFromRoleMap(params Type[] roleTypeFilter) + { + var roleDataList = ListPool<RoleData>.Get(); + var filterUsed = roleTypeFilter != null && roleTypeFilter.Length > 0; + + if (filterUsed) + { + roleDataList.AddRange(s_bindingConfig.roles); + } + + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleType = ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i); + var roleName = ViveRoleEnum.ValidViveRoleTable.GetKeyByIndex(i); + var roleMap = ViveRole.GetMap(roleType); + + if (filterUsed) + { + // apply filter + var filtered = false; + foreach (var t in roleTypeFilter) { if (roleType == t) { filtered = true; break; } } + if (!filtered) { continue; } + } + + if (roleMap.BindingCount > 0) + { + var bindingTable = roleMap.BindingTable; + + var roleData = new RoleData() + { + type = roleName, + bindings = new Binding[bindingTable.Count], + }; + + for (int j = 0, jmax = bindingTable.Count; j < jmax; ++j) + { + var binding = new Binding(); + binding.device_sn = bindingTable.GetKeyByIndex(j); + binding.role_value = bindingTable.GetValueByIndex(j); + binding.role_name = roleMap.RoleValueInfo.GetNameByRoleValue(binding.role_value); + + // save the device_model for better recognition of the device + if (VRModule.IsDeviceConnected(binding.device_sn)) + { + binding.device_model = VRModule.GetCurrentDeviceState(VRModule.GetConnectedDeviceIndex(binding.device_sn)).deviceModel; + s_modelHintTable[binding.device_sn] = binding.device_model; + } + else if (!s_modelHintTable.TryGetValue(binding.device_sn, out binding.device_model)) + { + binding.device_model = VRModuleDeviceModel.Unknown; + } + + roleData.bindings[j] = binding; + } + + if (filterUsed) + { + // merge with existing role data + var roleDataIndex = roleDataList.FindIndex((item) => item.type == roleName); + if (roleDataIndex >= 0) + { + roleDataList[roleDataIndex] = roleData; + } + else + { + roleDataList.Add(roleData); + } + } + else + { + roleDataList.Add(roleData); + } + } + else + { + if (roleDataList.Count > 0) + { + // don't write to config if no bindings + roleDataList.RemoveAll((item) => item.type == roleName); + } + } + } + + s_bindingConfig.roles = roleDataList.ToArray(); + + ListPool<RoleData>.Release(roleDataList); + } + + public static int ApplyBindingConfigToRoleMap(params Type[] roleTypeFilter) + { + var appliedCount = 0; + var filterUsed = roleTypeFilter != null && roleTypeFilter.Length > 0; + + foreach (var roleData in s_bindingConfig.roles) + { + Type roleType; + if (string.IsNullOrEmpty(roleData.type) || !ViveRoleEnum.ValidViveRoleTable.TryGetValue(roleData.type, out roleType)) { continue; } + + if (filterUsed) + { + // apply filter + var filtered = false; + foreach (var t in roleTypeFilter) { if (roleType == t) { filtered = true; break; } } + if (!filtered) { continue; } + } + + var roleMap = ViveRole.GetMap(roleType); + roleMap.UnbindAll(); + + foreach (var binding in roleData.bindings) + { + // bind device according to role_name first + // if role_name is invalid then role_value is used + int roleValue; + if (string.IsNullOrEmpty(binding.role_name) || !roleMap.RoleValueInfo.TryGetRoleValueByName(binding.role_name, out roleValue)) + { + roleValue = binding.role_value; + } + + roleMap.BindDeviceToRoleValue(binding.device_sn, roleValue); + ++appliedCount; + } + } + + return appliedCount; + } + + public static void SaveBindingConfigToFile(string configPath, bool prettyPrint = true) + { + var dir = Path.GetDirectoryName(configPath); + if (!string.IsNullOrEmpty(dir) && !Directory.Exists(configPath)) + { + Directory.CreateDirectory(dir); + } + + using (var outputFile = new StreamWriter(configPath)) + { + outputFile.Write(JsonUtility.ToJson(s_bindingConfig, prettyPrint)); + } + } + + public static bool LoadBindingConfigFromFile(string configPath) + { + if (string.IsNullOrEmpty(configPath) || !File.Exists(configPath)) + { + return false; + } + + using (var inputFile = new StreamReader(configPath)) + { + s_bindingConfig = JsonUtility.FromJson<BindingConfig>(inputFile.ReadToEnd()); + + foreach (var roleData in s_bindingConfig.roles) + { + foreach (var binding in roleData.bindings) + { + if (VRModule.IsDeviceConnected(binding.device_sn)) + { + s_modelHintTable[binding.device_sn] = VRModule.GetCurrentDeviceState(VRModule.GetConnectedDeviceIndex(binding.device_sn)).deviceModel; + } + else + { + s_modelHintTable[binding.device_sn] = binding.device_model; + } + } + } + + return true; + } + } + + public static void BindAllCurrentDeviceClassMappings(VRModuleDeviceClass deviceClass) + { + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleMap = ViveRole.GetMap(ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i)); + var roleInfo = roleMap.RoleValueInfo; + for (int rv = roleInfo.MinValidRoleValue, rvmax = roleInfo.MaxValidRoleValue; rv <= rvmax; ++rv) + { + if (!roleInfo.IsValidRoleValue(rv)) { continue; } + if (roleMap.IsRoleValueBound(rv)) { continue; } + + var mappedDevice = roleMap.GetMappedDeviceByRoleValue(rv); + var mappedDeviceState = VRModule.GetCurrentDeviceState(mappedDevice); + if (mappedDeviceState.deviceClass != deviceClass) { continue; } + + roleMap.BindDeviceToRoleValue(mappedDeviceState.serialNumber, rv); + } + } + } + + public static void BindAllCurrentMappings() + { + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleMap = ViveRole.GetMap(ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i)); + roleMap.BindAll(); + } + } + + public static void UnbindAllCurrentBindings() + { + for (int i = 0, imax = ViveRoleEnum.ValidViveRoleTable.Count; i < imax; ++i) + { + var roleMap = ViveRole.GetMap(ViveRoleEnum.ValidViveRoleTable.GetValueByIndex(i)); + roleMap.UnbindAll(); + } + } + + public static void SaveBindings(string configPath, bool prettyPrint = true) + { + LoadBindingConfigFromRoleMap(); + SaveBindingConfigToFile(configPath, prettyPrint); + } + + public static void LoadBindings(string configPath) + { + LoadBindingConfigFromFile(configPath); + ApplyBindingConfigToRoleMap(); + } + + [Obsolete("Use SaveBindings instead")] + public static void SaveRoleBindings(string filePath, bool prettyPrint = false) + { + SaveBindings(filePath, prettyPrint); + } + + [Obsolete("Use LoadBindings instead")] + public static void LoadRoleBindings(string filePath) + { + LoadBindings(filePath); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..dc9d1a207ff989e953c6849aec1de7f9e0758f0b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleBindingsHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4f21e9f542d73914180798bfa4c535d0 +timeCreated: 1489721460 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs new file mode 100644 index 0000000000000000000000000000000000000000..a14368af6fe357abe78082a1b527d82a5970ffa0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs @@ -0,0 +1,359 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public enum ViveRoleEnumValidateResult + { + Valid, + IsNotEnumType, + ViveRoleEnumAttributeNotFound, + InvalidRoleNotFound, + ValidRoleNotFound, + } + + [AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] + public class ViveRoleEnumAttribute : Attribute + { + public int InvalidRoleValue { get; private set; } + public ViveRoleEnumAttribute(int invalidEnumValue) { InvalidRoleValue = invalidEnumValue; } + } + + [Obsolete("Use HideInInspector instead")] + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)] + public class HideMamberAttribute : Attribute { } + + public static class ViveRoleEnum + { + public interface IInfo + { + Type RoleEnumType { get; } + string[] RoleValueNames { get; } + int[] RoleValues { get; } + int ElementCount { get; } + int ValidRoleLength { get; } + int InvalidRoleValue { get; } + int InvalidRoleValueIndex { get; } + int MinValidRoleValue { get; } + int MaxValidRoleValue { get; } + + int RoleValueToRoleOffset(int roleValue); + int RoleOffsetToRoleValue(int roleOffset); + string GetNameByRoleValue(int roleValue); + string GetNameByElementIndex(int elementIndex); + int GetRoleValueByElementIndex(int elementIndex); + int GetElementIndexByName(string name); + bool TryGetRoleValueByName(string name, out int roleValue); + bool IsValidRoleValue(int roleValue); + } + + private sealed class Info : IInfo + { + private readonly EnumUtils.EnumDisplayInfo m_info; + private readonly bool[] m_roleValid; + + private readonly int m_invalidRoleValue; + private readonly int m_invalidRoleValueIndex; + private readonly int m_minValidRoleValue; + private readonly int m_maxValidRoleValue; + private readonly int m_validRoleLength; + + public Info(Type roleEnumType) + { + m_info = EnumUtils.GetDisplayInfo(roleEnumType); + + var attrs = roleEnumType.GetCustomAttributes(typeof(ViveRoleEnumAttribute), false) as ViveRoleEnumAttribute[]; + m_invalidRoleValue = attrs[0].InvalidRoleValue; + + m_minValidRoleValue = int.MaxValue; + m_maxValidRoleValue = int.MinValue; + // find invalid role & valid role length + for (int i = 0; i < m_info.displayedValues.Length; ++i) + { + if (m_info.displayedValues[i] == m_invalidRoleValue) + { + m_invalidRoleValueIndex = i; + continue; + } + + if (m_info.displayedValues[i] < m_minValidRoleValue) { m_minValidRoleValue = m_info.displayedValues[i]; } + + if (m_info.displayedValues[i] > m_maxValidRoleValue) { m_maxValidRoleValue = m_info.displayedValues[i]; } + } + + m_validRoleLength = m_maxValidRoleValue - m_minValidRoleValue + 1; + + // initialize role valid array, in case that the sequence of value of the enum type is not continuous + m_roleValid = new bool[m_validRoleLength]; + for (int i = 0; i < m_info.displayedValues.Length; ++i) + { + if (m_info.displayedValues[i] == m_invalidRoleValue) { continue; } + + m_roleValid[RoleValueToRoleOffset(m_info.displayedValues[i])] = true; + } + } + + public Type RoleEnumType { get { return m_info.enumType; } } + public string[] RoleValueNames { get { return m_info.displayedRawNames; } } + public int[] RoleValues { get { return m_info.displayedValues; } } + public int ElementCount { get { return m_info.displayedValues.Length; } } + public int ValidRoleLength { get { return m_validRoleLength; } } + public int InvalidRoleValue { get { return m_invalidRoleValue; } } + public int InvalidRoleValueIndex { get { return m_invalidRoleValueIndex; } } + public int MinValidRoleValue { get { return m_minValidRoleValue; } } + public int MaxValidRoleValue { get { return m_maxValidRoleValue; } } + + public int RoleValueToRoleOffset(int roleValue) { return roleValue - m_minValidRoleValue; } + public int RoleOffsetToRoleValue(int roleOffset) { return roleOffset + m_minValidRoleValue; } + public string GetNameByRoleValue(int roleValue) { int index; return m_info.value2displayedIndex.TryGetValue(roleValue, out index) ? m_info.displayedRawNames[index] : roleValue.ToString(); } + public int GetElementIndexByName(string name) { int index; return m_info.name2displayedIndex.TryGetValue(name, out index) ? index : -1; } + public string GetNameByElementIndex(int elementIndex) { return m_info.displayedRawNames[elementIndex]; } + public int GetRoleValueByElementIndex(int elementIndex) { return m_info.displayedValues[elementIndex]; } + + public bool TryGetRoleValueByName(string name, out int roleValue) + { + int index = GetElementIndexByName(name); + if (index >= 0) + { + roleValue = GetRoleValueByElementIndex(index); + return true; + } + else + { + roleValue = default(int); + return false; + } + } + + public bool IsValidRoleValue(int roleValue) + { + if (roleValue == m_invalidRoleValue) { return false; } + + var roleOffset = RoleValueToRoleOffset(roleValue); + if (roleOffset < 0 || roleOffset >= m_roleValid.Length) { return false; } + + return m_roleValid[roleOffset]; + } + } + + public interface IInfo<TRole> : IInfo + { + TRole InvalidRole { get; } + TRole MinValidRole { get; } + TRole MaxValidRole { get; } + + bool RoleEquals(TRole role1, TRole role2); + int ToRoleValue(TRole role); + int RoleToRoleOffset(TRole role); + TRole RoleOffsetToRole(int roleOffset); + TRole ToRole(int roleValue); + TRole GetRoleByElementIndex(int elementIndex); + bool TryGetRoleByName(string name, out TRole role); + bool IsValidRole(TRole role); + } + + private sealed class GenericInfo<TRole> : IInfo<TRole> + { + public static GenericInfo<TRole> s_instance; + + private readonly IInfo m_info; + private readonly IndexedTable<string, TRole> m_nameTable; + private readonly TRole[] m_roles; + + private readonly TRole m_invalidRole; + private readonly TRole m_minValidRole; + private readonly TRole m_maxValidRole; + + public GenericInfo() + { + m_info = GetInfo(typeof(TRole)); + var roleEnums = m_info.RoleValues as TRole[]; + + m_nameTable = new IndexedTable<string, TRole>(roleEnums.Length); + m_roles = new TRole[ValidRoleLength]; + + for (int i = 0; i < m_roles.Length; ++i) + { + m_roles[i] = InvalidRole; + } + + for (int i = 0; i < roleEnums.Length; ++i) + { + var roleValue = ToRoleValue(roleEnums[i]); + + m_nameTable.Add(GetNameByElementIndex(i), roleEnums[i]); + + if (roleValue == InvalidRoleValue) + { + m_invalidRole = roleEnums[i]; + } + else + { + var offset = RoleValueToRoleOffset(roleValue); + m_roles[offset] = roleEnums[i]; + } + } + + m_minValidRole = ToRole(m_info.MinValidRoleValue); + m_maxValidRole = ToRole(m_info.MaxValidRoleValue); + + if (s_instance == null) + { + s_instance = this; + } + else + { + Debug.Log("redundant instance for RoleInfo<" + typeof(TRole).Name + ">"); + } + } + + public Type RoleEnumType { get { return m_info.RoleEnumType; } } + public string[] RoleValueNames { get { return m_info.RoleValueNames; } } + public int[] RoleValues { get { return m_info.RoleValues; } } + public int ElementCount { get { return m_info.ElementCount; } } + public int ValidRoleLength { get { return m_info.ValidRoleLength; } } + public int InvalidRoleValue { get { return m_info.InvalidRoleValue; } } + public int InvalidRoleValueIndex { get { return m_info.InvalidRoleValueIndex; } } + public int MinValidRoleValue { get { return m_info.MinValidRoleValue; } } + public int MaxValidRoleValue { get { return m_info.MaxValidRoleValue; } } + public TRole MinValidRole { get { return m_minValidRole; } } + public TRole MaxValidRole { get { return m_maxValidRole; } } + + public TRole InvalidRole { get { return m_invalidRole; } } + + public int RoleValueToRoleOffset(int roleValue) { return m_info.RoleValueToRoleOffset(roleValue); } + public int RoleOffsetToRoleValue(int roleOffset) { return m_info.RoleOffsetToRoleValue(roleOffset); } + public string GetNameByRoleValue(int roleValue) { return m_info.GetNameByRoleValue(roleValue); } + public int GetElementIndexByName(string name) { return m_info.GetElementIndexByName(name); } + public string GetNameByElementIndex(int elementIndex) { return m_info.GetNameByElementIndex(elementIndex); } + public int GetRoleValueByElementIndex(int elementIndex) { return m_info.GetRoleValueByElementIndex(elementIndex); } + public bool TryGetRoleValueByName(string name, out int roleValue) { return m_info.TryGetRoleValueByName(name, out roleValue); } + public bool IsValidRoleValue(int roleValue) { return m_info.IsValidRoleValue(roleValue); } + + public bool RoleEquals(TRole role1, TRole role2) { return EqualityComparer<TRole>.Default.Equals(role1, role2); } + public int ToRoleValue(TRole role) { return EqualityComparer<TRole>.Default.GetHashCode(role); } + public int RoleToRoleOffset(TRole role) { return RoleValueToRoleOffset(ToRoleValue(role)); } + public TRole RoleOffsetToRole(int roleOffset) { return ToRole(RoleOffsetToRoleValue(roleOffset)); } + public TRole ToRole(int roleValue) { return IsValidRoleValue(roleValue) ? m_roles[RoleValueToRoleOffset(roleValue)] : InvalidRole; } + public TRole GetRoleByElementIndex(int elementIndex) { return m_nameTable.GetValueByIndex(elementIndex); } + public bool TryGetRoleByName(string name, out TRole role) { return m_nameTable.TryGetValue(name, out role); } + public bool IsValidRole(TRole role) { return IsValidRoleValue(ToRoleValue(role)); } + } + + private static IndexedTable<Type, IInfo> s_infoTable; + private static readonly IndexedTable<string, Type> s_validViveRoleTable = new IndexedTable<string, Type>(); + + static ViveRoleEnum() + { + // find all valid ViveRole enum type in current assemblies + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + try + { + foreach (var type in assembly.GetTypes()) + { + if (ValidateViveRoleEnum(type) == ViveRoleEnumValidateResult.Valid) + { + s_validViveRoleTable.Add(type.FullName, type); + } + } + } + catch (System.Reflection.ReflectionTypeLoadException e) + { + Debug.LogWarning(e); + Debug.LogWarning("load assembly " + assembly.FullName + " fail"); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + } + + public static IIndexedTableReadOnly<string, Type> ValidViveRoleTable { get { return s_validViveRoleTable.ReadOnly; } } + + public static IInfo GetInfo(Type roleEnumType) + { + if (s_infoTable == null) + { + s_infoTable = new IndexedTable<Type, IInfo>(); + } + + IInfo info; + if (!s_infoTable.TryGetValue(roleEnumType, out info)) + { + var validateResult = ValidateViveRoleEnum(roleEnumType); + if (validateResult != ViveRoleEnumValidateResult.Valid) + { + Debug.LogWarning(roleEnumType.Name + " is not valid ViveRole. " + validateResult); + return null; + } + + info = new Info(roleEnumType); + s_infoTable.Add(roleEnumType, info); + } + + return info; + } + + public static IInfo<TRole> GetInfo<TRole>() + { + if (GenericInfo<TRole>.s_instance == null) + { + var roleEnumType = typeof(TRole); + var validateResult = ValidateViveRoleEnum(roleEnumType); + if (validateResult != ViveRoleEnumValidateResult.Valid) + { + Debug.LogWarning(roleEnumType.Name + " is not valid ViveRole. " + validateResult); + return null; + } + + new GenericInfo<TRole>(); + } + + return GenericInfo<TRole>.s_instance; + } + + public static ViveRoleEnumValidateResult ValidateViveRoleEnum(Type roleEnumType) + { + if (!roleEnumType.IsEnum) + { + return ViveRoleEnumValidateResult.IsNotEnumType; + } + + var attrs = roleEnumType.GetCustomAttributes(typeof(ViveRoleEnumAttribute), false) as ViveRoleEnumAttribute[]; + if (attrs.Length <= 0) + { + return ViveRoleEnumValidateResult.ViveRoleEnumAttributeNotFound; + } + + var invalidRoleValue = attrs[0].InvalidRoleValue; + var values = Enum.GetValues(roleEnumType) as int[]; + var invalidRoleFound = false; + foreach (var value in values) + { + if (value == invalidRoleValue) + { + invalidRoleFound = true; + break; + } + } + + if (!invalidRoleFound) + { + return ViveRoleEnumValidateResult.InvalidRoleNotFound; + } + + if (values.Length < 2) + { + return ViveRoleEnumValidateResult.ValidRoleNotFound; + } + + return ViveRoleEnumValidateResult.Valid; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..dacdef3988b42e0362042258252058ca35e9556e --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleEnum.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 54700b8b41e967244be6803d06dadfb0 +timeCreated: 1487416736 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs new file mode 100644 index 0000000000000000000000000000000000000000..f95b13beb06957a162702deea8ed9c4736f4176c --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs @@ -0,0 +1,751 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace HTC.UnityPlugin.Vive +{ + public static partial class ViveRole + { + public struct MappingChangedEventArg + { + public int roleValue; + public uint previousDeviceIndex; + public uint currentDeviceIndex; + } + + public struct MappingChangedEventArg<TRole> + { + public TRole role; + public uint previousDeviceIndex; + public uint currentDeviceIndex; + } + + public interface IMap + { + ViveRoleEnum.IInfo RoleValueInfo { get; } + IMapHandler Handler { get; } + int BindingCount { get; } + IIndexedTableReadOnly<string, int> BindingTable { get; } + + bool IsRoleValueMapped(int roleValue); + bool IsDeviceMapped(uint deviceIndex); + uint GetMappedDeviceByRoleValue(int roleValue); + int GetMappedRoleValueByDevice(uint deviceIndex); + + [Obsolete("Use BindDeviceToRoleValue instead")] + void BindRoleValue(int roleValue, string deviceSN); + void BindDeviceToRoleValue(string deviceSN, int roleValue); + void BindAll(); + bool UnbindRoleValue(int roleValue); // return true if role is ready for bind + bool UnbindDevice(string deviceSN); // return true if device is ready for bind + bool UnbindConnectedDevice(uint deviceIndex); // return true if device is ready for bind + void UnbindAll(); + + bool IsRoleValueBound(int roleValue); + bool IsDeviceBound(string deviceSN); + bool IsDeviceConnectedAndBound(uint deviceIndex); + string GetBoundDeviceByRoleValue(int roleValue); + /// <summary> + /// Should use IsDeviceBound to validate deviceSN before calling this function + /// </summary> + int GetBoundRoleValueByDevice(string deviceSN); + /// <summary> + /// Should use IsDeviceConnectedAndBound to validate deviceIndex before calling this function + /// </summary> + int GetBoundRoleValueByConnectedDevice(uint deviceIndex); + + event UnityAction<IMap, MappingChangedEventArg> onRoleValueMappingChanged; + } + + private sealed class Map : IMap + { + private readonly ViveRoleEnum.IInfo m_info; + private IMapHandler m_handler; + private bool m_lockInternalMapping; + + // mapping table + private readonly uint[] m_role2index; + private readonly int[] m_index2role; + + // binding table + private readonly IndexedSet<uint>[] m_roleBoundDevices; // connected devices only + private readonly IndexedTable<string, int> m_sn2role; + + public Map(Type roleType) + { + m_info = ViveRoleEnum.GetInfo(roleType); + + m_role2index = new uint[m_info.ValidRoleLength]; + m_index2role = new int[VRModule.MAX_DEVICE_COUNT]; + + m_roleBoundDevices = new IndexedSet<uint>[m_info.ValidRoleLength]; + m_sn2role = new IndexedTable<string, int>(Mathf.Min(m_info.ValidRoleLength, (int)VRModule.MAX_DEVICE_COUNT)); + + for (int i = 0; i < m_role2index.Length; ++i) + { + m_role2index[i] = VRModule.INVALID_DEVICE_INDEX; + } + + for (int i = 0; i < m_index2role.Length; ++i) + { + m_index2role[i] = m_info.InvalidRoleValue; + } + } + + public ViveRoleEnum.IInfo RoleValueInfo { get { return m_info; } } + public int BindingCount { get { return m_sn2role.Count; } } + public IIndexedTableReadOnly<string, int> BindingTable { get { return m_sn2role.ReadOnly; } } + + public IMapHandler Handler + { + get { return m_handler; } + set + { + if (m_handler == value) { return; } + + if (m_handler != null) + { + m_handler.OnDivestedOfCurrentMapHandler(); + m_handler = null; + } + + if (value != null) + { + if (value.BlockBindings) + { + UnbindAll(); + } + + m_handler = value; + m_handler.OnAssignedAsCurrentMapHandler(); + } + } + } + + public event UnityAction<IMap, MappingChangedEventArg> onRoleValueMappingChanged; + + private string DeviceSN(uint deviceIndex) { return VRModule.GetCurrentDeviceState(deviceIndex).serialNumber; } + + public void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) + { + if (connected) + { + if (IsDeviceBound(deviceSN)) + { + InternalInsertRoleBoundDevice(deviceSN, deviceIndex, GetBoundRoleValueByDevice(deviceSN)); + } + } + else + { + if (IsDeviceMapped(deviceIndex)) + { + if (IsDeviceBound(deviceSN)) + { + InternalRemoveRoleBoundDevice(deviceSN, deviceIndex, GetBoundRoleValueByDevice(deviceSN)); + } + + if (IsDeviceMapped(deviceIndex)) + { + InternalUnmapping(GetMappedRoleValueByDevice(deviceIndex), deviceIndex); + } + } + } + + if (m_handler != null) + { + m_handler.OnConnectedDeviceChanged(deviceIndex, deviceClass, deviceSN, connected); + } + } + + public void OnTrackedDeviceRoleChanged() + { + if (m_handler != null) + { + m_handler.OnTrackedDeviceRoleChanged(); + } + } + + #region retrieve state + public bool IsRoleValueMapped(int roleValue) + { + if (!m_info.IsValidRoleValue(roleValue)) { return false; } + return IsRoleOffsetMapped(m_info.RoleValueToRoleOffset(roleValue)); + } + + public bool IsRoleOffsetMapped(int roleOffset) + { + return VRModule.IsValidDeviceIndex(m_role2index[roleOffset]); + } + + public bool IsDeviceMapped(uint deviceIndex) + { + return VRModule.IsValidDeviceIndex(deviceIndex) && m_info.IsValidRoleValue(m_index2role[deviceIndex]); + } + + public bool IsRoleValueBound(int roleValue) + { + if (!m_info.IsValidRoleValue(roleValue)) { return false; } + + var roleOffset = m_info.RoleValueToRoleOffset(roleValue); + return m_roleBoundDevices[roleOffset] != null && m_roleBoundDevices[roleOffset].Count > 0; + } + + public bool IsDeviceBound(string deviceSN) + { + return string.IsNullOrEmpty(deviceSN) ? false : m_sn2role.ContainsKey(deviceSN); + } + + public bool IsDeviceConnectedAndBound(uint deviceIndex) + { + return IsDeviceBound(DeviceSN(deviceIndex)); + } + + public uint GetMappedDeviceByRoleValue(int roleValue) + { + if (m_info.IsValidRoleValue(roleValue)) + { + return m_role2index[m_info.RoleValueToRoleOffset(roleValue)]; + } + else + { + return VRModule.INVALID_DEVICE_INDEX; + } + } + + public int GetMappedRoleValueByDevice(uint deviceIndex) + { + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + return m_index2role[deviceIndex]; + } + else + { + return m_info.InvalidRoleValue; + } + } + + public string GetBoundDeviceByRoleValue(int roleValue) + { + if (!IsRoleValueBound(roleValue)) { return string.Empty; } + return DeviceSN(GetMappedDeviceByRoleValue(roleValue)); + } + + public int GetBoundRoleValueByDevice(string deviceSN) + { + return m_sn2role[deviceSN]; + } + + public int GetBoundRoleValueByConnectedDevice(uint deviceIndex) + { + return GetBoundRoleValueByDevice(DeviceSN(deviceIndex)); + } + #endregion retrieve state + + #region internal operation + // both roleValue and deviceIndex must be valid + // ignore binding state + private void InternalMapping(int roleValue, uint deviceIndex) + { + if (m_lockInternalMapping) { throw new Exception("Recursive calling InternalMapping"); } + m_lockInternalMapping = true; + + var previousRoleValue = m_index2role[deviceIndex]; + if (roleValue == previousRoleValue) + { + m_lockInternalMapping = false; + return; + } + + if (m_info.IsValidRoleValue(previousRoleValue)) + { + m_lockInternalMapping = false; + InternalUnmapping(previousRoleValue, deviceIndex); + m_lockInternalMapping = true; + } + + var roleOffset = m_info.RoleValueToRoleOffset(roleValue); + var previousDeviceIndex = m_role2index[roleOffset]; + var eventArg = new MappingChangedEventArg() + { + roleValue = roleValue, + previousDeviceIndex = previousDeviceIndex, + currentDeviceIndex = deviceIndex, + }; + + m_role2index[roleOffset] = deviceIndex; + m_index2role[deviceIndex] = roleValue; + + if (VRModule.IsValidDeviceIndex(previousDeviceIndex)) + { + m_index2role[previousDeviceIndex] = m_info.InvalidRoleValue; + } + + if (onRoleValueMappingChanged != null) + { + onRoleValueMappingChanged(this, eventArg); + } + + m_lockInternalMapping = false; + } + + // both roleValue and deviceIndex must be valid + // ignore binding state + private void InternalUnmapping(int roleValue, uint deviceIndex) + { + if (m_lockInternalMapping) { throw new Exception("Recursive calling InternalMapping"); } + m_lockInternalMapping = true; + + var roleOffset = m_info.RoleValueToRoleOffset(roleValue); + var eventArg = new MappingChangedEventArg() + { + roleValue = roleValue, + previousDeviceIndex = deviceIndex, + currentDeviceIndex = VRModule.INVALID_DEVICE_INDEX, + }; + + m_role2index[roleOffset] = VRModule.INVALID_DEVICE_INDEX; + m_index2role[deviceIndex] = m_info.InvalidRoleValue; + + if (onRoleValueMappingChanged != null) + { + onRoleValueMappingChanged(this, eventArg); + } + + m_lockInternalMapping = false; + } + + // device must be valid and connected and have bound role value + // device must not exist in role bound devices + // boundRoleValue can be whether valid or not + private void InternalInsertRoleBoundDevice(string deviceSN, uint deviceIndex, int boundRoleValue) + { + if (m_info.IsValidRoleValue(boundRoleValue)) + { + var roleBoundDevices = InternalGetRoleBoundDevices(boundRoleValue); + + roleBoundDevices.Add(deviceIndex); // if key already added here, means that this device already in role bound devices + + InternalMapping(boundRoleValue, deviceIndex); + } + } + + // device must be valid and connected and have bound role value + // device must already exist in role bound devices + // boundRoleValue can be whether valid or not + private void InternalRemoveRoleBoundDevice(string deviceSN, uint deviceIndex, int boundRoleValue) + { + if (m_info.IsValidRoleValue(boundRoleValue)) + { + var roleBoundDevices = InternalGetRoleBoundDevices(boundRoleValue); + + if (!roleBoundDevices.Remove(deviceIndex)) + { + throw new Exception("device([" + deviceIndex + "]" + deviceSN + ") has not been InternalMappingRoleBoundDevice"); + } + + if (roleBoundDevices.Count > 0) + { + InternalMapping(boundRoleValue, roleBoundDevices[0]); + } + } + } + + // deviceSN must be valid + // device can be whether bound or not + // device can be whether connected or not + private void InternalBind(string deviceSN, int roleValue) + { + var deviceIndex = VRModule.GetConnectedDeviceIndex(deviceSN); + + bool previousIsBound = false; + int previousBoundRoleValue = m_info.InvalidRoleValue; + if (m_sn2role.TryGetValue(deviceSN, out previousBoundRoleValue)) + { + if (previousBoundRoleValue == roleValue) { return; } + + previousIsBound = true; + + m_sn2role.Remove(deviceSN); + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + InternalRemoveRoleBoundDevice(deviceSN, deviceIndex, previousBoundRoleValue); + } + } + + m_sn2role[deviceSN] = roleValue; + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + InternalInsertRoleBoundDevice(deviceSN, deviceIndex, roleValue); + } + + if (m_handler != null) + { + m_handler.OnBindingRoleValueChanged(deviceSN, previousIsBound, previousBoundRoleValue, true, roleValue); + } + } + + // deviceSN must be valid + // device must be bound + // device can be whether connected or not + private void InternalUnbind(string deviceSN, int boundRoleValue) + { + var deviceIndex = VRModule.GetConnectedDeviceIndex(deviceSN); + + if (!m_sn2role.Remove(deviceSN)) + { + throw new Exception("device([" + deviceIndex + "]" + deviceSN + ") already unbound"); + } + + if (VRModule.IsValidDeviceIndex(deviceIndex)) + { + InternalRemoveRoleBoundDevice(deviceSN, deviceIndex, boundRoleValue); + } + + if (m_handler != null) + { + m_handler.OnBindingRoleValueChanged(deviceSN, true, boundRoleValue, false, m_info.InvalidRoleValue); + } + } + #endregion internal operation + + #region mapping + public void MappingRoleValue(int roleValue, uint deviceIndex) + { + if (!m_info.IsValidRoleValue(roleValue)) + { + throw new ArgumentException("Cannot mapping invalid roleValue(" + m_info.RoleEnumType.Name + "[" + roleValue + "])"); + } + + if (!VRModule.IsValidDeviceIndex(deviceIndex)) + { + throw new ArgumentException("Cannot mapping invalid deviceIndex(" + deviceIndex + ")"); + } + + if (IsRoleValueBound(roleValue)) + { + throw new ArgumentException("roleValue(" + m_info.RoleEnumType.Name + "[" + roleValue + "]) is already bound, unbind first."); + } + + if (IsDeviceConnectedAndBound(deviceIndex)) + { + throw new ArgumentException("deviceIndex(" + deviceIndex + ") is already bound, unbind first"); + } + + InternalMapping(roleValue, deviceIndex); + } + + // return true if role is ready for mapping + public bool UnmappingRoleValue(int roleValue) + { + // is mapped? + if (!IsRoleValueMapped(roleValue)) { return false; } + + // is bound? + if (IsRoleValueBound(roleValue)) { return false; } + + InternalUnmapping(roleValue, GetMappedDeviceByRoleValue(roleValue)); + + return true; + } + + // return true if device is ready for mapping + public bool UnmappingDevice(uint deviceIndex) + { + // is mapped? + if (!IsDeviceMapped(deviceIndex)) { return false; } + + // is bound? + if (IsDeviceConnectedAndBound(deviceIndex)) { return false; } + + InternalUnmapping(GetMappedRoleValueByDevice(deviceIndex), deviceIndex); + + return true; + } + + public void UnmappingAll() + { + for (int roleValue = m_info.MinValidRoleValue; roleValue <= m_info.MaxValidRoleValue; ++roleValue) + { + if (!m_info.IsValidRoleValue(roleValue)) { continue; } + + UnmappingRoleValue(roleValue); + } + } + #endregion mapping + + #region bind + [Obsolete("Use BindDeviceToRoleValue instead")] + public void BindRoleValue(int roleValue, string deviceSN) + { + BindDeviceToRoleValue(deviceSN, roleValue); + } + + public void BindDeviceToRoleValue(string deviceSN, int roleValue) + { + if (string.IsNullOrEmpty(deviceSN)) + { + throw new ArgumentException("deviceSN cannot be null or empty."); + } + + if (m_handler != null && m_handler.BlockBindings) { return; } + + InternalBind(deviceSN, roleValue); + } + + // bind all mapped roles & devices + public void BindAll() + { + if (m_handler != null && m_handler.BlockBindings) { return; } + + for (int roleValue = m_info.MinValidRoleValue; roleValue <= m_info.MaxValidRoleValue; ++roleValue) + { + if (!m_info.IsValidRoleValue(roleValue)) { continue; } + + if (IsRoleValueMapped(roleValue) && !IsRoleValueBound(roleValue)) + { + InternalBind(DeviceSN(GetMappedDeviceByRoleValue(roleValue)), roleValue); + } + } + } + + public bool UnbindRoleValue(int roleValue) + { + if (!IsRoleValueBound(roleValue)) { return false; } + + var roleBoundDevices = InternalGetRoleBoundDevices(roleValue); + var boundDeviceIndex = GetMappedDeviceByRoleValue(roleValue); + + // unbind other bound device first, to avoid redundent mapping changes event + while (roleBoundDevices.Count > 1) + { + for (int i = roleBoundDevices.Count - 1; i >= 0; --i) + { + if (roleBoundDevices[i] != boundDeviceIndex) + { + InternalUnbind(DeviceSN(roleBoundDevices[i]), roleValue); + break; + } + } + }; + + if (roleBoundDevices.Count == 1) + { + InternalUnbind(DeviceSN(boundDeviceIndex), roleValue); + } + + return true; + } + + public bool UnbindDevice(string deviceSN) + { + if (!IsDeviceBound(deviceSN)) { return false; } + + InternalUnbind(deviceSN, GetBoundRoleValueByDevice(deviceSN)); + + return true; + } + + public bool UnbindConnectedDevice(uint deviceIndex) + { + return UnbindDevice(DeviceSN(deviceIndex)); + } + + public void UnbindAll() + { + for (int i = m_sn2role.Count - 1; i >= 0; --i) + { + UnbindDevice(m_sn2role.GetKeyByIndex(i)); + } + } + + // roleValue must be valid + private IndexedSet<uint> InternalGetRoleBoundDevices(int roleValue) + { + var roleOffset = m_info.RoleValueToRoleOffset(roleValue); + + if (m_roleBoundDevices[roleOffset] == null) + { + m_roleBoundDevices[roleOffset] = new IndexedSet<uint>(); + } + + return m_roleBoundDevices[roleOffset]; + } + #endregion bind + } + + public interface IMap<TRole> : IMap + { + ViveRoleEnum.IInfo<TRole> RoleInfo { get; } + + bool IsRoleMapped(TRole role); + uint GetMappedDeviceByRole(TRole role); + TRole GetMappedRoleByDevice(uint deviceIndex); + + [Obsolete("Use BindDeviceToRole instead")] + void BindRole(TRole role, string deviceSN); + void BindDeviceToRole(string deviceSN, TRole role); + bool UnbindRole(TRole role); // return true if role is ready for bind + + bool IsRoleBound(TRole role); + string GetBoundDeviceByRole(TRole role); + TRole GetBoundRoleByDevice(string deviceSN); + TRole GetBoundRoleByConnectedDevice(uint deviceIndex); + + event UnityAction<IMap<TRole>, MappingChangedEventArg<TRole>> onRoleMappingChanged; + } + + private sealed class GenericMap<TRole> : IMap<TRole> + { + public static GenericMap<TRole> s_instance; + + private readonly ViveRoleEnum.IInfo<TRole> m_info; + private readonly Map m_map; + + public GenericMap() + { + m_info = ViveRoleEnum.GetInfo<TRole>(); + m_map = GetInternalMap(typeof(TRole)); + + if (s_instance == null) + { + s_instance = this; + } + else + { + Debug.LogWarning("duplicated instance for RoleInfo<" + typeof(TRole).Name + ">"); + } + + m_map.onRoleValueMappingChanged += OnMappingChanged; + } + + public ViveRoleEnum.IInfo RoleValueInfo { get { return m_map.RoleValueInfo; } } + public ViveRoleEnum.IInfo<TRole> RoleInfo { get { return m_info; } } + public IMapHandler Handler { get { return m_map.Handler; } } + public int BindingCount { get { return m_map.BindingCount; } } + public IIndexedTableReadOnly<string, int> BindingTable { get { return m_map.BindingTable; } } + + public event UnityAction<IMap, MappingChangedEventArg> onRoleValueMappingChanged { add { m_map.onRoleValueMappingChanged += value; } remove { m_map.onRoleValueMappingChanged -= value; } } + + public event UnityAction<IMap<TRole>, MappingChangedEventArg<TRole>> onRoleMappingChanged; + + private void OnMappingChanged(IMap map, MappingChangedEventArg arg) + { + if (onRoleMappingChanged != null) + { + onRoleMappingChanged(this, new MappingChangedEventArg<TRole>() + { + role = m_info.ToRole(arg.roleValue), + previousDeviceIndex = arg.previousDeviceIndex, + currentDeviceIndex = arg.currentDeviceIndex, + }); + } + } + + public void MappingRole(TRole role, uint deviceIndex) { m_map.MappingRoleValue(m_info.ToRoleValue(role), deviceIndex); } + public void MappingRoleValue(int roleValue, uint deviceIndex) { m_map.MappingRoleValue(roleValue, deviceIndex); } + public bool UnmappingRole(TRole role) { return m_map.UnmappingRoleValue(m_info.ToRoleValue(role)); } + public bool UnmappingRoleValue(int roleValue) { return m_map.UnmappingRoleValue(roleValue); } + public bool UnmappingDevice(uint deviceIndex) { return m_map.UnmappingDevice(deviceIndex); } + public void UnmappingAll() { m_map.UnmappingAll(); } + + public bool IsRoleMapped(TRole role) { return m_map.IsRoleValueMapped(m_info.ToRoleValue(role)); } + public bool IsRoleValueMapped(int roleValue) { return m_map.IsRoleValueMapped(roleValue); } + public bool IsDeviceMapped(uint deviceIndex) { return m_map.IsDeviceMapped(deviceIndex); } + public uint GetMappedDeviceByRole(TRole role) { return m_map.GetMappedDeviceByRoleValue(m_info.ToRoleValue(role)); } + public TRole GetMappedRoleByDevice(uint deviceIndex) { return m_info.ToRole(m_map.GetMappedRoleValueByDevice(deviceIndex)); } + public uint GetMappedDeviceByRoleValue(int roleValue) { return m_map.GetMappedDeviceByRoleValue(roleValue); } + public int GetMappedRoleValueByDevice(uint deviceIndex) { return m_map.GetMappedRoleValueByDevice(deviceIndex); } + + [Obsolete("Use BindDeviceToRole instead")] + public void BindRole(TRole role, string deviceSN) { m_map.BindDeviceToRoleValue(deviceSN, m_info.ToRoleValue(role)); } + [Obsolete("Use BindDeviceToRoleValue instead")] + public void BindRoleValue(int roleValue, string deviceSN) { m_map.BindDeviceToRoleValue(deviceSN, roleValue); } + public void BindDeviceToRole(string deviceSN, TRole role) { m_map.BindDeviceToRoleValue(deviceSN, m_info.ToRoleValue(role)); } + public void BindDeviceToRoleValue(string deviceSN, int roleValue) { m_map.BindDeviceToRoleValue(deviceSN, roleValue); } + public void BindAll() { m_map.BindAll(); } + public bool UnbindRole(TRole role) { return m_map.UnbindRoleValue(m_info.ToRoleValue(role)); } + public bool UnbindRoleValue(int roleValue) { return m_map.UnbindRoleValue(roleValue); } + public bool UnbindDevice(string deviceSN) { return m_map.UnbindDevice(deviceSN); } + public bool UnbindConnectedDevice(uint deviceIndex) { return UnbindConnectedDevice(deviceIndex); } + public void UnbindAll() { m_map.UnbindAll(); } + + public bool IsRoleBound(TRole role) { return m_map.IsRoleValueBound(m_info.ToRoleValue(role)); } + public bool IsRoleValueBound(int roleValue) { return m_map.IsRoleValueBound(roleValue); } + public bool IsDeviceBound(string deviceSN) { return m_map.IsDeviceBound(deviceSN); } + public bool IsDeviceConnectedAndBound(uint deviceIndex) { return m_map.IsDeviceConnectedAndBound(deviceIndex); } + public TRole GetBoundRoleByDevice(string deviceSN) { return m_info.ToRole(m_map.GetBoundRoleValueByDevice(deviceSN)); } + public TRole GetBoundRoleByConnectedDevice(uint deviceIndex) { return m_info.ToRole(m_map.GetBoundRoleValueByConnectedDevice(deviceIndex)); } + public string GetBoundDeviceByRole(TRole role) { return m_map.GetBoundDeviceByRoleValue(m_info.ToRoleValue(role)); } + public string GetBoundDeviceByRoleValue(int roleValue) { return m_map.GetBoundDeviceByRoleValue(roleValue); } + public int GetBoundRoleValueByDevice(string deviceSN) { return m_map.GetBoundRoleValueByDevice(deviceSN); } + public int GetBoundRoleValueByConnectedDevice(uint deviceIndex) { return m_map.GetBoundRoleValueByConnectedDevice(deviceIndex); } + } + + private static IndexedTable<Type, Map> s_mapTable; + + private static Map GetInternalMap(Type roleType) + { + if (s_mapTable == null) + { + s_mapTable = new IndexedTable<Type, Map>(); + } + + Map map; + if (!s_mapTable.TryGetValue(roleType, out map)) + { + var validateResult = ViveRoleEnum.ValidateViveRoleEnum(roleType); + if (validateResult != ViveRoleEnumValidateResult.Valid) + { + Debug.LogWarning(roleType.Name + " is not valid ViveRole type. " + validateResult); + return null; + } + + map = new Map(roleType); + s_mapTable.Add(roleType, map); + } + + return map; + } + + public static IMap GetMap(Type roleType) + { + return GetInternalMap(roleType); + } + + private static GenericMap<TRole> GetInternalMap<TRole>() + { + var roleEnumType = typeof(TRole); + if (GenericMap<TRole>.s_instance == null) + { + var validateResult = ViveRoleEnum.ValidateViveRoleEnum(roleEnumType); + if (validateResult != ViveRoleEnumValidateResult.Valid) + { + Debug.LogWarning(roleEnumType.Name + " is not valid ViveRole type. " + validateResult); + return null; + } + + new GenericMap<TRole>(); + } + + return GenericMap<TRole>.s_instance; + } + + public static IMap<TRole> GetMap<TRole>() + { + return GetInternalMap<TRole>(); + } + + public static void AssignMapHandler<TRole>(MapHandler<TRole> mapHandler) + { + Initialize(); + GetInternalMap(typeof(TRole)).Handler = mapHandler; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ccc411368fa86a2db05404e0778fffb5f70373dc --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMap.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2308116a0a01d9e469ab2693ceacbe9a +timeCreated: 1486632043 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs new file mode 100644 index 0000000000000000000000000000000000000000..fad8126437b29e4a022fbfdec126d87137c95d78 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs @@ -0,0 +1,80 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.VRModuleManagement; +using System; + +namespace HTC.UnityPlugin.Vive +{ + public static partial class ViveRole + { + public interface IMapHandler + { + bool BlockBindings { get; } + void OnAssignedAsCurrentMapHandler(); + void OnDivestedOfCurrentMapHandler(); + void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected); + void OnTrackedDeviceRoleChanged(); + void OnBindingRoleValueChanged(string deviceSN, bool previousIsBound, int previousRoleValue, bool currentIsBound, int currentRoleValue); + } + + public abstract class MapHandler<TRole> : IMapHandler + { + private readonly GenericMap<TRole> m_map; + + public MapHandler() + { + m_map = GetInternalMap<TRole>(); + } + + public IMap<TRole> RoleMap { get { return m_map; } } + public ViveRoleEnum.IInfo<TRole> RoleInfo { get { return m_map.RoleInfo; } } + public bool IsCurrentMapHandler { get { return m_map.Handler == this; } } + public virtual bool BlockBindings { get { return false; } } + + public virtual void OnAssignedAsCurrentMapHandler() { } + public virtual void OnDivestedOfCurrentMapHandler() { } + public virtual void OnConnectedDeviceChanged(uint deviceIndex, VRModuleDeviceClass deviceClass, string deviceSN, bool connected) { } + public virtual void OnTrackedDeviceRoleChanged() { } + public virtual void OnBindingChanged(string deviceSN, bool previousIsBound, TRole previousRole, bool currentIsBound, TRole currentRole) { } + + public void OnBindingRoleValueChanged(string deviceSN, bool previousIsBound, int previousRoleValue, bool currentIsBound, int currentRoleValue) + { + OnBindingChanged(deviceSN, previousIsBound, m_map.RoleInfo.ToRole(previousRoleValue), currentIsBound, m_map.RoleInfo.ToRole(currentRoleValue)); + } + + protected void MappingRole(TRole role, uint deviceIndex) + { + if (!IsCurrentMapHandler) { return; } + m_map.MappingRole(role, deviceIndex); + } + + protected void MappingRoleIfUnbound(TRole role, uint deviceIndex) + { + if (!RoleMap.IsRoleBound(role) && !RoleMap.IsDeviceConnectedAndBound(deviceIndex)) + { + MappingRole(role, deviceIndex); + } + } + + // return true if role is ready for mapping + protected bool UnmappingRole(TRole role) + { + if (!IsCurrentMapHandler) { return false; } + return m_map.UnmappingRole(role); + } + + // return true if device is ready for mapping + protected bool UnmappingDevice(uint deviceIndex) + { + if (!IsCurrentMapHandler) { return false; } + return m_map.UnmappingDevice(deviceIndex); + } + + protected void UnmappingAll() + { + if (!IsCurrentMapHandler) { return; } + m_map.UnmappingAll(); + } + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..139eb59f68d3fac77600ac6e2f3382039d5b5ca6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleMapHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6df2ab5a47129594a9020fe8084014e8 +timeCreated: 1488900561 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs new file mode 100644 index 0000000000000000000000000000000000000000..7ee6690717703638cea6ce392d8b21a3f43e5aff --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs @@ -0,0 +1,379 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using HTC.UnityPlugin.Utility; +using HTC.UnityPlugin.VRModuleManagement; +using System; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + // ViveRoleProperty is a serializable class that preserve vive role using 2 strings. + // There also has a property drawer so you can use it as a serialized field in your MonoBevaviour. + // Note that when deserializing, result of type and value is based on the valid role info stored in ViveRoleEnum class + [Serializable] + public class ViveRoleProperty + { + public delegate void RoleChangedListener(); + public delegate void RoleChangedListenerEx(Type previousRoleType, int previousRoleValue); + public delegate void DeviceIndexChangedListener(uint deviceIndex); + + public static readonly Type DefaultRoleType = typeof(HandRole); + public static readonly int DefaultRoleValue = (int)HandRole.RightHand; + + [SerializeField] + private string m_roleTypeFullName; + [SerializeField] + private string m_roleValueName; + [SerializeField] + private int m_roleValueInt; + + private bool m_isTypeDirty = true; + private bool m_isValueDirty = true; + private bool m_lockUpdate; + + private ViveRole.IMap m_roleMap = null; + private Type m_roleType = DefaultRoleType; + private int m_roleValue = DefaultRoleValue; + private uint m_deviceIndex = VRModule.INVALID_DEVICE_INDEX; + + private Action m_onChanged; + private RoleChangedListener m_onRoleChanged; + private RoleChangedListenerEx m_onRoleChangedEx; + private DeviceIndexChangedListener m_onDeviceIndexChanged; + + public Type roleType + { + get + { + Update(); + return m_roleType; + } + set + { + m_isTypeDirty |= ChangeProp.Set(ref m_roleTypeFullName, value.FullName); + Update(); + } + } + + public int roleValue + { + get + { + Update(); + return m_roleValue; + } + set + { + if (ChangeProp.Set(ref m_roleValueName, m_roleMap.RoleValueInfo.GetNameByRoleValue(value))) + { + m_roleValueInt = value; + m_isValueDirty = true; + } + + Update(); + } + } + + [Obsolete("Use onRoleChanged instead")] + public event Action Changed + { + add { m_onChanged += value; } + remove { m_onChanged -= value; } + } + + public event RoleChangedListener onRoleChanged + { + add { m_onRoleChanged += value; } + remove { m_onRoleChanged -= value; } + } + + public event RoleChangedListenerEx onRoleChangedEx + { + add { m_onRoleChangedEx += value; } + remove { m_onRoleChangedEx -= value; } + } + + public event DeviceIndexChangedListener onDeviceIndexChanged + { + add + { + var wasEmpty = m_onDeviceIndexChanged == null; + + m_onDeviceIndexChanged += value; + + if (wasEmpty && m_onDeviceIndexChanged != null && m_roleMap != null) + { + m_deviceIndex = m_roleMap.GetMappedDeviceByRoleValue(m_roleValue); // update deviceIndex before first time listening to MappingChanged event + m_roleMap.onRoleValueMappingChanged += OnMappingChanged; + } + } + remove + { + var wasEmpty = m_onDeviceIndexChanged == null; + + m_onDeviceIndexChanged -= value; + + if (!wasEmpty && m_onDeviceIndexChanged == null && m_roleMap != null) + { + m_roleMap.onRoleValueMappingChanged -= OnMappingChanged; + } + } + } + + public static ViveRoleProperty New() + { + return New(DefaultRoleType, DefaultRoleValue); + } + + public static ViveRoleProperty New(Type type, int value) + { + return New(type.FullName, ViveRoleEnum.GetInfo(type).GetNameByRoleValue(value)); + } + + public static ViveRoleProperty New<TRole>(TRole role) + { + return New(typeof(TRole).FullName, role.ToString()); + } + + public static ViveRoleProperty New(string typeFullName, string valueName) + { + var prop = new ViveRoleProperty(); + prop.m_roleTypeFullName = typeFullName; + prop.m_roleValueName = valueName; + + Type roleType; + if (ViveRoleEnum.ValidViveRoleTable.TryGetValue(typeFullName, out roleType)) + { + var roleInfo = ViveRoleEnum.GetInfo(roleType); + var roleIndex = roleInfo.GetElementIndexByName(valueName); + if (roleIndex >= 0) + { + prop.m_roleValueInt = roleInfo.GetRoleValueByElementIndex(roleIndex); + } + else + { + prop.m_roleValueInt = roleInfo.InvalidRoleValue; + } + } + + return prop; + } + + public void SetTypeDirty() { m_isTypeDirty = true; } + + public void SetValueDirty() { m_isValueDirty = true; } + + private void OnMappingChanged(ViveRole.IMap map, ViveRole.MappingChangedEventArg args) + { + if (args.roleValue == m_roleValue) + { + m_onDeviceIndexChanged(m_deviceIndex = args.currentDeviceIndex); + } + } + + // update type and value changes + public void Update() + { + if (m_lockUpdate && (m_isTypeDirty || m_isValueDirty)) { throw new Exception("Can't change value during onChange event callback"); } + + var oldRoleType = m_roleType; + var oldRoleValue = m_roleValue; + var roleTypeChanged = false; + var roleValueChanged = false; + var deviceIndexChanged = false; + + if (m_isTypeDirty || m_roleType == null) + { + m_isTypeDirty = false; + + if (string.IsNullOrEmpty(m_roleTypeFullName) || !ViveRoleEnum.ValidViveRoleTable.TryGetValue(m_roleTypeFullName, out m_roleType)) + { + m_roleType = DefaultRoleType; + } + + roleTypeChanged = oldRoleType != m_roleType; + } + + // maintain m_roleMap cache + // m_roleMap could be null on first update + if (roleTypeChanged || m_roleMap == null) + { + if (m_onDeviceIndexChanged != null) + { + if (m_roleMap != null) + { + m_roleMap.onRoleValueMappingChanged -= OnMappingChanged; + m_roleMap = ViveRole.GetMap(m_roleType); + m_roleMap.onRoleValueMappingChanged += OnMappingChanged; + } + else + { + m_roleMap = ViveRole.GetMap(m_roleType); + m_deviceIndex = m_roleMap.GetMappedDeviceByRoleValue(m_roleValue); // update deviceIndex before first time listening to MappingChanged event + m_roleMap.onRoleValueMappingChanged += OnMappingChanged; + } + } + else + { + m_roleMap = ViveRole.GetMap(m_roleType); + } + } + + if (m_isValueDirty || roleTypeChanged) + { + m_isValueDirty = false; + + var info = m_roleMap.RoleValueInfo; + if (string.IsNullOrEmpty(m_roleValueName) || !info.TryGetRoleValueByName(m_roleValueName, out m_roleValue)) + { + m_roleValue = info.IsValidRoleValue(m_roleValueInt) ? m_roleValueInt : info.InvalidRoleValue; + } + + roleValueChanged = oldRoleValue != m_roleValue; + } + + if (roleTypeChanged || roleValueChanged) + { + if (m_onDeviceIndexChanged != null) + { + var oldDeviceIndex = m_deviceIndex; + m_deviceIndex = m_roleMap.GetMappedDeviceByRoleValue(m_roleValue); + + if (VRModule.IsValidDeviceIndex(oldDeviceIndex) || VRModule.IsValidDeviceIndex(m_deviceIndex)) + { + deviceIndexChanged = oldDeviceIndex != m_deviceIndex; + } + } + + m_lockUpdate = true; + + if (m_onChanged != null) { m_onChanged(); } + + if (m_onRoleChanged != null) { m_onRoleChanged(); } + + if (m_onRoleChangedEx != null) { m_onRoleChangedEx(oldRoleType, oldRoleValue); } + + if (deviceIndexChanged) { m_onDeviceIndexChanged(m_deviceIndex); } + + m_lockUpdate = false; + } + } + + /// <summary> + /// + /// </summary> + /// <typeparam name="TRole">Can be DeviceRole, HandRole or TrackerRole</typeparam> + /// <param name="role"></param> + public void SetEx<TRole>(TRole role) + { + Set(typeof(TRole).FullName, role.ToString()); + } + + public void Set(Type type, int value) + { + Set(type.FullName, ViveRoleEnum.GetInfo(type).GetNameByRoleValue(value)); + } + + public void Set(ViveRoleProperty prop) + { + Set(prop.m_roleTypeFullName, prop.m_roleValueName); + } + + // set by value name to preserve the enum element, since different enum element could have same enum value + public void Set(string typeFullName, string valueName) + { + m_isTypeDirty |= ChangeProp.Set(ref m_roleTypeFullName, typeFullName); + m_isValueDirty |= ChangeProp.Set(ref m_roleValueName, valueName); + + Update(); + } + + public uint GetDeviceIndex() + { + Update(); + + if (m_onDeviceIndexChanged == null) + { + return m_roleMap.GetMappedDeviceByRoleValue(m_roleValue); + } + else + { + return m_deviceIndex; + } + } + + public TRole ToRole<TRole>() + { + Update(); + + TRole role; + var roleInfo = ViveRoleEnum.GetInfo<TRole>(); + if (m_roleType != typeof(TRole) || !roleInfo.TryGetRoleByName(m_roleValueName, out role)) + { + // return invalid if role type not match or the value name not found in roleInfo + return roleInfo.InvalidRole; + } + + return role; + } + + public bool IsRole(Type type, int value) + { + Update(); + + return m_roleType == type && m_roleValue == value; + } + + public bool IsRole<TRole>(TRole role) + { + Update(); + + if (m_roleType != typeof(TRole)) { return false; } + var roleInfo = ViveRoleEnum.GetInfo<TRole>(); + + return m_roleValue == roleInfo.ToRoleValue(role); + } + + public static bool operator ==(ViveRoleProperty p1, ViveRoleProperty p2) + { + if (ReferenceEquals(p1, p2)) { return true; } + if (ReferenceEquals(p1, null)) { return false; } + if (ReferenceEquals(p2, null)) { return false; } + if (p1.roleType != p2.roleType) { return false; } + if (p1.roleValue != p2.roleValue) { return false; } + return true; + } + + public static bool operator !=(ViveRoleProperty p1, ViveRoleProperty p2) + { + return !(p1 == p2); + } + + public bool Equals(ViveRoleProperty prop) + { + return this == prop; + } + + public override bool Equals(object obj) + { + return Equals(obj as ViveRoleProperty); + } + + public override int GetHashCode() + { + Update(); + + var hash = 17; + hash = hash * 23 + (m_roleType == null ? 0 : m_roleType.GetHashCode()); + hash = hash * 23 + m_roleValue.GetHashCode(); + return hash; + } + + public override string ToString() + { + Update(); + + return m_roleType.Name + "." + ViveRoleEnum.GetInfo(m_roleType).GetNameByRoleValue(m_roleValue); + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3768f555736a4d3da00142d8445249779a404dd1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31b4476583620864ea3c7afa60609ba2 +timeCreated: 1487772116 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs new file mode 100644 index 0000000000000000000000000000000000000000..a34205e4a87644f0e47f5f6523f02e1cd75d62dc --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs @@ -0,0 +1,60 @@ +//========= Copyright 2016-2020, HTC Corporation. All rights reserved. =========== + +using System.Collections.Generic; +using UnityEngine; + +namespace HTC.UnityPlugin.Vive +{ + public interface IViveRoleComponent + { + ViveRoleProperty viveRole { get; } + } + + /// <summary> + /// This component sync its role to all child component that is an IViveRoleComponent + /// </summary> + public class ViveRoleSetter : MonoBehaviour + { + private static List<IViveRoleComponent> s_comps = new List<IViveRoleComponent>(); + + [SerializeField] + private ViveRoleProperty m_viveRole = ViveRoleProperty.New(HandRole.RightHand); + + public ViveRoleProperty viveRole { get { return m_viveRole; } } +#if UNITY_EDITOR + protected virtual void Reset() + { + // get role from first found component + var comp = GetComponentInChildren<IViveRoleComponent>(); + if (comp != null) + { + m_viveRole.Set(comp.viveRole); + } + } + + protected virtual void OnValidate() + { + UpdateChildrenViveRole(); + } +#endif + protected virtual void Awake() + { + m_viveRole.onRoleChanged += UpdateChildrenViveRole; + } + + public void UpdateChildrenViveRole() + { + GetComponentsInChildren(true, s_comps); + for (int i = 0; i < s_comps.Count; ++i) + { + s_comps[i].viveRole.Set(m_viveRole); + } + s_comps.Clear(); + } + + protected virtual void OnDestroy() + { + m_viveRole.onRoleChanged -= UpdateChildrenViveRole; + } + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4de126d28664f741ef3eaca96ffa0e45eeec8de0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/ViveRole/ViveRoleSetter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 387fb5d74b1a932479013876b27a0e1e +timeCreated: 1487669158 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Textures.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures.meta new file mode 100644 index 0000000000000000000000000000000000000000..6c4a59abfd30c977b26c14fdd9ad4613d779131b --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 12e179f9aa5ab2946977f534158056eb +folderAsset: yes +timeCreated: 1510228068 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9702b1333b4b873a10b0fd07b749ec0850394c6 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d72d93d8450c836f68183618389f4333e79e44a253a670e63abd7c4f22ffbfe9 +size 27901 diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..e749390cded90788102a9b7297c94b55ef1cdd53 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/Textures/VIU_logo.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: eb57b6982f691244682dd28e8dace3f3 +timeCreated: 1510228161 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt b/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt new file mode 100644 index 0000000000000000000000000000000000000000..6baaa5851ac230b2ded1215d1bf794cb6fefa3f2 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt @@ -0,0 +1,900 @@ +# Vive Input Utility for Unity - v1.12.0 +Copyright (c) 2016-2020, HTC Corporation. All rights reserved. + + +## Changes for v1.12.2: + +* New Features + - Add ControllerButtonMask to able to mask out multiple buttin input simultaneously +```csharp +// return true if right controller trigger or pad button pressed +ViveInput.GetAnyPress(HandRole.RightHand, new ControllerButtonMask(ControllerButton.Trigger, ControllerButton.Pad)) + +// return true if both right controller trigger and pad button pressed +ViveInput.GetAllPress(HandRole.RightHand, new ControllerButtonMask(ControllerButton.Trigger, ControllerButton.Pad)) +``` + +* Bug Fixes + - Fix error when Wave Essence RenderModel module is installed + - Fix teleport in wrong height for some device in example 6 + +## Changes for v1.12.0: + +* New Features + - Add support for Wave XR Plugin + - Add support for OpenVR XR Plugin preview4 and above + - Add support for Oculus Link Quest + +* Changes + - Move VIUSettings.asset default path to folder under Assets\VIUSettings\Resources + +* Bug Fixes + - Optimize performance updating define symbols #186 + - Fix recommended settings did not skip check for values that are already using recommended value + - Fix compile error when using Oculus Integration Unity Plugin v19 and above + - Fix losing materials in example scenes when Universal Render Pipeline is applied + - Fix GetReferencedAssemblyNameSet() for Unity 2017.3 and 2017.4 + - Fix SymbolRequirement.reqAnyMethods validation throwing exception when any argument type not found + - Fix UnityWebRequest.SendWebRequest() in early Unity version (5.4 - 2017.1) + +* Known Issue + - Importing Oculus Integration v19 before upgrading VIU to v1.12.0 will cause compile error and brake VIUSettings. + - Workaround: manually clear the "Scripting Define Symbols" in Player Settings should solve it + + +## Changes for v1.11.0: + +* New Features + - Add compatibility with **Unity 2020.1** + - Add support for **Unity XR Platform** (OpenVR, Oculus, and Windows MR) + - VIU Settings automatically installs proper XR Loader from **PackageManager** for supported devices + - **OpenVR XR Plugin** + - **Oculus XR Plugin** + - **Windows XR Plugin** + - Add support for Oculus controller render model (Requires [Oculus SDK](https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022)) + - Add new **ControllerButton.DPadCenter** & **ControllerButton.DPadCenterTouch** + - Also change **VIUSettings.virtualDPadDeadZone** default value from 0.15 to **0.25** + - This settings is not available in VIU Settings UI yet, but can be manually modified in HTC.UnityPlugin/ViveInputUtility/Resources/**VIUSettings.asset** + +* Changes + - Now use relative path when choosing Oculus Android AndroidManifest.xml file with picker (#175) + - Update **ControllerManagerSample** + - Fix support for StickyGrabbables + - Clean up side cases where updateactivity was needed + - Add more button options for laser pointer + - Fix typo + - Slightly change **ColliderEventCaster**'s behaviour + - Now IColliderEventPressUpHandler will be treggered only if IColliderEventPressDownHandler also implemented + - This is for aligning IPointerUpHandler and IPointerDownHandler behaviour + - Improve **Grabbable** + - Now **BasicGrabbable** & **StickyGrabbable** able to accept more then one grab button + - Add new property **primaryGrabButton** so it can be specified with VIU ControllerButton + - Obsolete property grabButton and add new property **secondaryGrabButton** as a substitute + - Note that you must setup **ViveColliderEventCaster** properly to send the specified grab button event + - Improve **Teleportable** + - Now **Teleportable** able to accept more then one teleport button + - Add new property **PrimeryTeleportButton** so it can specify with VIU ControllerButton + - Obsolete property teleportButton and add new property **SecondaryTeleportButton** as a substitute + - Note that you must setup **ViveRaycaster** properly to send the specified teleport button event + - Add new property **TriggeredType** + - **ButtonUp** : perform teleport on button press up (default) + - **ButtonDown** : perform teleport on button press down + - **ButtonClick** : perform teleport on button press up only if pointed object when press down/up are the same + - Add new property **RotateToHitObjectFront** + - When set to true, teleportation will rotate pivot front to hit object front + - Add new property **TeleportToHitObjectPivot** + - When set to true, teleportation will move pivot to hit object pivot instead of the hit point + - Add new property **UseSteamVRFade** + - Only works when [SteamVR Plugin](https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647) is installed + - When set to false or SteamVR Plugin is not installed, the teleportation will delay for half of fadeDuration without fading effect + - This provides an option for developer to implement their custom fading effect in the OnBeforeTeleport event + - Add event **OnBeforeTeleport(Teleportable src, RaycastResult hitResult, float delay)** + - Emit before fade duration start counting down + - Usually delay argument is half of fade duration (0 if fadeDuration is ignored) + - Possible usage is to start custom fading effect in this callback + - Add event **OnAfterTeleport(Teleportable src, RaycastResult hitResult, float delay)** + - Emit after teleportation is performed + - Add static event **OnBeforeAnyTeleport(Teleportable src, RaycastResult hitResult, float delay)** + - Static version of OnBeforeTeleport + - Emit before OnBeforeTeleport + - Add static event **OnAfterAnyTeleport(Teleportable src, RaycastResult hitResult, float delay)** + - Static version of OnAfterTeleport + - Emit before OnAfterTeleport + - Add property **AdditionalTeleportRotation** + - The rotation value will be multiplied on the target (around pivot) when teleporting + - Possible usage is to set the value (according to other input like pad or joystick direction) in the OnBeforeTeleport callback + - Add method **AbortTeleport()** + - Cancel the teleportation during fading + - Possible usage is to abort in the OnBeforeTeleport callback to perform a custom teleportation + - Another usage is to interrupt the fade-in effect progress so that the Teleportable able to trigger next teleport event immediatly + +* Bug Fixes + - Fix left Cosmos controller did not bind button X and Y + - Fix saving of Oculus Android XML path setting (#175) + - Fix applying some recommended settings didn't trigger editor to compile + - Fix "recommended settings" button in VIU Settings disappeared after exiting editor play mode + + +## Changes for v1.10.7: + +* Bug Fix + - Fix device AngularVelocity have zero value when UnityEngineVRModule activated + - Fix showing wrong model when Oculus Quest Controller connected + - Fix SteamVR_Action callback function isn't working when VIU input system is activated + - Fix bumper key isn't working when Vive Cosmos Controller connected + - Fix controller scroll isn't working in WaveVRModule + +* Improvement + - Now support WaveVR SDK new haptic API + - Hide most "field never assigned" warnings for serialized field in MonoBehaviour + - Add static controller model for Valve Index Controller + - Avoid ListPool from ambiguous reference (when Core RP Library installed) + + +## Changes for v1.10.6: + +* Bug Fix + - Fix SteamVR Plugin v2.4.5 incompatibility due to action manifest path changes 5fb63198 + - Fix some Oculus(Android) recommend settings not working in Unity 2019.1 or newer 1c8ebf78 + + +## Changes for v1.10.5: + +* Improvement + - Add platform supported define symbols + - Add VIVE Cosmos support + - Add Valve Index support + - Update bindings for Index controller to allow trackpad and thumbstick to work individually + - Add Oculus Quest support + - Add Oculus Rift S support + - Add Unity XR input supports Oculus (Android) + - Update support WaveVR SDK 3.0.2 requires VR Supported + - Add support to WaveVR SDK 3.1 + - Add default and custom AndroidManifest path in VIU Settings + - Add custom controller model in Simulator + - Add system input for left Oculus controller (OculusVRModule/UnityNativeModule) + - Reduce Component Menu path (HTC/VIU -> VIU) + - [VIUSettings] Update VIVE to OpenVR + - [VIUSettings] Update VIVE Focus to WaveVR + - [VIUSettings] Update Oculus (Android) to Oculus Android + - [VIUSettings] Update Oculus Rift & Touch to Oculus Desktop + - [VIUSettings] Update Oculus VR SDK download link + - [VIUSettings] Update Oculus Go to Oculus (Android) + +* Bug Fix + - [GoogleVRModule] Fix null exception and no input issue + - [PackageManager] Fix assertion error and null exception + - [VIUSettings] Fix no Oculus (Android) option + - [WaveVRModule] Fix cannot teleport in ControllerManagerSample scene + - [SteamVRInputBinding] Fix partial input bindings for VIVE Tracker + - [SteamVRModule] Fix Override Model bug + - [OculusVRModule] Fix no Axis2D(Touchpad) for Oculus Go controller + - [SteamVRModule] Fix no Cosmos grip button input + + +## Changes for v1.10.4: + +* Improvement + - Replace WWW to UnityWebRequest + - Pointer3DInputModule no longer set EventSystem to DontDestroyOnLoad + - Add VRModuleInput2DType + - Split VIUSettings into partials + - Add VIVE Cosmos controller enum + - Improve OculusVR support + - Add install package button in VIUSettings + - Add WaveVR SDK 3.0.2 support + - Add autoScaleReticle setting + +* Bug Fix + - [OculusVRModule] Fix serial number conflict on Oculus device + - [UnityEngineVRModule] Fix input manager index out of bound + - [SteamVRModule] Fix swapping controllers will cause input events showing on wrong device + - [WaveVRModule] Fix left hand mode cannot show controller model + - [ExampleScene] Fix BodyRole center position transformation + - [ExampleScene] Fix ResetButton teleports if moved after Start() + + +## Changes for v1.10.3: + +* Improvement + - [WaveVRModule] Support WaveVR simulator (Enable VIVE Focus support in Editor mode) + +* Bug Fix + - [WaveVRModule] Fix WaveVR tracking glitter issue + - [WaveVRModule] Fix VIU simulator cannot launch (ONLY enable VIU simulator) + + +## Changes for v1.10.2: + +* Improvement + - [ViveInput] Add new procedure vibration API (only works with SteamVR v2) +```csharp +using HTC.UnityPlugin.Vive; +ViveInput.TriggerHapticVibrationEx<TRole>( + TRole role, + float durationSeconds = 0.01f, + float frequency = 85f, + float amplitude = 0.125f, + float startSecondsFromNow = 0f) +``` + +* Bug Fix + - [ViveInput] Fix issue that TriggerHapticPulse is not working + - [Utility] Fix bug in IndexedSet indexer setter. + - [WaveVRModule] Fix VIU example freezes after launched + - [OculusVRModule] Fix OculusVRModule not recognizing GearVR or OculusGO correctly + - [ExternalCamera] Fix not working with SteamVR v2 + - [ExternalCamera] Fix SteamVR_ExternalCamera setting sceneResolutionScale incorrectly in some cases + - [ExternalCamera] Fix potential RenderTexture created by SteamVR_ExternalCamera having incorrect ColorSpace + + +## Changes for v1.10.1: + +* New Features + - SteamVR Plugin v2.0/v2.1 support + - SteamVR New Input System support ([Guide](https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki/SteamVR-Input-System-Support)) + +* Improvement + - Now compatible with Google VR SDK v1.170.0 + - Add ControllerAxis.Joystick for Windows Mixed Reality Motion Controller + - Extend ControllerButton (DPadXXX are virtual buttons simulated from trackpad/thumbstick values) + - BKey (Menu) + - BkeyTouch (MenuTouch) + - Bumper (Axis3) + - BumperTouch (Axis3Touch) + - ProximitySensor + - DPadLeft + - DPadLeftTouch + - DPadUp + - DPadUpTouch + - DPadRight + - DPadRightTouch + - DPadDown + - DPadDownTouch + - DPadUpperLeft + - DPadUpperLeftTouch + - DPadUpperRight + - DPadUpperRightTouch + - DPadLowerRight + - DPadLowerRightTouch + - DPadLowerLeft + - DPadLowerLeftTouch + +* Known Issue + - When working with SteamVR Plugin v2, VIU can get poses or send vibration pulses for all connected devices, but only able to connect button inputs from up to 2 Vive Controllers or 10 Vive Trackers (due to the limitation of SteamVR input sources). If you know how to work around, please let us know. + + +## Changes for v1.9.0: + +* New Features + - Wave VR Plugin v2.1.0 support + - Add Oculus Go support (requires Oculus VR plugin) + +* Improvement + - [WaveVRModule] Add 6 DoF Controller Simulator (Experimental) + - [More...](https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki/Wave-VR-6-DoF-Controller-Simulator) + - [RenderModelHook] Now able to load Wave VR generic controller model + - [Example2] Add drop area that using physics collider + - [Example3] Make scroll delta tunable from the Editor + - [issue#49](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/49) + - [VIUSettings] Add WVR virtual arms properties + - [BindingUI] Make un-recognized device visible in the device view (shown in VIVE device icon) + - [issue#51](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/51) + +* Bug Fix + - [VRModule] Fix sometimes SteamVRModule activated but not polling any device pose/input + + +## Changes for v1.8.3: + +* Improvement + - Improve simulator module + - Add instruction UI + - Add group control (devices move alone with camera) + - See [Simulator](https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki/Simulator) for more detail + + - Add ReticlePose.IReticleMaterialChanger interface, better way to indicate different type of pointing object + - Now you can setup default reticle material in ReticlePose property + + - Setup reticle material property in component that implement IReticleMaterialChanger + + - Add support for WaveVR SDK v2.0.37 + +* Bug fix + - Fix tracking device pose not applying scale from the origin transform + - Fix SteamVRModule reporting wrong input-focus state + - Fix ViveRigidPoseTracker broke after re-enabled + - Fix PoseModifier not work correctly ordered by priority value + + +## Changes for v1.8.2 + +* Bug fix + - Fix define symbols sometimes not handle correctly when switching build target + - Disable vr support if device list is empty + - Add code to avoid NullReferenceException in VRModule + - Add SetValueByIndex method to IndexedTable + - Fix StickyGrabbable not working in certain cases + + +## Changes for v1.8.1: + +* New features + - VIVE Focus Support + - Required Unity 5.6 or later version + - Download and install WaveVR SDK Unity plugin from https://hub.vive.com/profile/material-download + - Enable VIVE Focus support under Edit > Preference > VIU Settings + +* Bug fix + - Fix no tracking devices dectected when SteamVR plugin v1.2.3 is installed + - Fix compile error in Unity 2018.1 + - Fix VIUSettings changes not saved into asset data file + + +## Changes for v1.8.0: + +* New features + - Daydream Support + - Simulator + - New VIU Settings to easy setup project supporting device + - Open from Editor -> Preferences -> VIU Settings + + +* Improvement + - Now compatible with SteamVR v1.1.1~v1.2.3 + - Move some properties into VIU Settings + - Removed: + - ViveRoleBindingHelper.OverrideConfigPath + - ViveRoleBindingHelper.BindingConfig.apply_bindings_on_load + - ViveRoleBindingHelper.BindingConfig.toggle_interface_key_code + - ViveRoleBindingHelper.BindingConfig.toggle_interface_modifier + - ViveRoleBindingHelper.BindingConfig.interface_prefab + - Replaced with: + - VIUSettings.bindingConfigFilePath + - VIUSettings.autoLoadBindingConfigOnStart + - VIUSettings.bindingInterfaceSwitchKey + - VIUSettings.bindingInterfaceSwitchKeyModifier + - VIUSettings.bindingInterfaceObject + +* Bug fix + - Fix compiler error caused by wrong define symbols. + +* VIU Settings + - Setting changes is saved in project resource folder named VIUSettings.asset. + - VIU Settings will load default setting automatically if VIUSettings.asset resource not found. + +* Daydream Support + - Requires Android platform support, Unity 5.6 or later and GoogleVR plugin. + - Requires checking the Daydream support toggle in Edit -> Preferences -> VIUSettings + - Beware of Daydream controller have less buttons. + - Remember to define and give the VR origin a headset height for Daydream device user. + +* Simulator + - Simulator is a fake VRModule that spawn/remove fake devices, create fake tracking and fake input events. + - Requires checking the Simulator support toggle in Edit -> Preferences -> VIUSettings + - Simulator only enabled when no VR device detected. + - There are 2 ways to manipulate the fake devices + - Handle events by script manually + - HTC.UnityPlugin.VRModuleManagement.VRModule.Simulator.onUpdateDeviceState + - Invoked each frame when VRModule performs a device state update + - Write device state into currState argument to manipulate devices + - Read-only argument prefState preserved device state in last frame + - Use Keyboard-Mouse control (can be disabled in VIUSettings) + - Add/Remove/Select devices + - [0~9] Add and select device N if device N is not selected, otherwise, deselect it + - [` + 0~5] Add and select device 10+N if device 10+N is not selected, otherwise, deselect it + - [Shift + 0~9] Remove and deselect device N + - [Shift + ` + 0~5] Remove and deselect device 10+N + - Control selected device + - [W] Move selected device forward + - [S] Move selected device backward + - [D] Move selected device right + - [A] Move selected device left + - [E] Move selected device up + - [Q] Move selected device down + - [C] Roll+ selected device + - [Z] Roll- selected device + - [X ] Reset selected device roll + - [ArrowUp] Pitch+ selected device + - [ArrowDown] Pitch- selected device + - [ArrowRight] Yaw+ selected device + - [ArrowLeft] Yaw- selected device + - [MouseMove] Pitch/Yaw selected device + - [MouseLeft] Press Trigger on selected device + - [MouseRight] Press Trackpad on selected device + - [MouseMiddle] Press Grip on selected device + - [Hold Shift + MouseMove] Touch Trackpad on selected device + - Control HMD + - [T] Move hmd forward + - [G] Move hmd backward + - [H] Move hmd right + - [F] Move hmd left + - [Y] Move hmd up + - [R] Move hmd down + - [N] Roll+ hmd + - [V] Roll- hmd + - [B] Reset hmd roll + - [I] Pitch+ hmd + - [K] Pitch- hmd + - [L] Yaw+ hmd + - [J] Yaw- hmd + - Notice that when the simulator is enabled, it is started with 3 fake device + - [0] HMD (selected) + - [1] Right Controller + - [2] Left Controller + + +## Changes for v1.7.3: + +* Bug fix + - [VRModule] Fix compile error in OculusVRModule.cs #14 + - [Pointer3D] Fix **IPointerExit** not handled correctly when disabling a raycaster #16 + - [Pointer3D] Fix **IPointerPressExit**, **IPointerUp** doesn't execute in some cases + - Add **Pointer3DEventData.pressProcessed** flag to ensure Down/Up processed correctly + +* Improvement + - Add new struct type **HTC.UnityPlugin.Utility.RigidPose** to replace **HTC.UnityPlugin.PoseTracker.Pose** + - Utility.RigidPose inherit all members in PoseTracker.Pose + - Add forward, up, right property getter + - Obsolete struct **HTC.UnityPlugin.PoseTracker.Pose** (will be removed in future version) to avoid type ambiguous with UnityEngine.Pose (new type in Unity 2017.2) + - If you somehow want to using HTC.UnityPlugin.PoseTracker and UnityEngine.Pose in your script at the same time, please use full type name or add type alias to avoid ambiguous compile error + ``` csharp + using HTC.UnityPlugin.PoseTracker; + using UnityEngine; + using Pose = UnityEngine.Pose; + + public class MyPoseTracker : BasePoseTracker + { + public Pose m_pose; + ... + } + ``` + - Change some recommended setting value + - Now binding interface switch is recommended as enable only if Steam VR plugin is imported + - Now external camera interface switch is recommended as enable only if Steam VR plugin is imported + - Now VIU system game object will be auto generated only if nessary + + +## Changes for v1.7.2: + +* New features + - Add recommended VR project settings notification window + +* Bug fix + - Fix compile error in Unity 5.5/5.6 + - [VRModule] Fix UnityEngineVRModule not removing disappeared device correctly + - In Unity 2017.2, InputTracking.GetNodeStates sometimes returns ghost nodes at the beginning of play mode. + - [Teleportable] Remove a potential null reference + - This happens when SteamVR plugin is imported and no SteamVR_Camera exist. + +* Improvement + - [Pointer3D] Now Pointer3DInputModule shows status in EventSystem's inspector preview window + - [Pointer3D] Let Pointer3DInputModule behave more consistent with StandaloneInputModule + - Now IPointerEnterHandler / IPointerExitHandler only triggered once for each pointer, pressing buttons won't trigger Enter/Exit anymore. + - [Pointer3D] Add IPointer3DPressEnterHandler / IPointer3DPressExitHandler + - Their behaviours are like IPointerEnterHandler/IPointerExitHandler, but press enter happend when the button is pressed and moved in, and press exit on button released or pointer moved out. + - [SteamVRCameraHook] Fix not expending head-eye-ear correctly + - [VRModule] Fix update timing issue + - This fix VivePoseTracker tracking is delayed in editor playing mode. + + +## Changes for v1.7.1: + +* New features + - [ExternalCameraHook] Add externalcamera.cfg config interface + - The interface is built into project when VIU_EXTERNAL_CAMERA_SWITCH symbol is defined. + - It is automatically activated with the external camera quad view. + + + +* Changes + - Now you can fully disable the binding interface switch by removing the VIU_BINDING_INTERFACE_SWITCH symbol + - That means nologer + +* Bug fix + - [ViveRole] Fix HandRole.ExternalCamera not mapping to tracker in some cases + - [ViveRole] Fix ViveRole.IMap.UnbindAll() to work correctly + - [BindingInterface] Fix some info updating and animation issue + - [VivePose] Now GetPose returns Pose.identity instead of default(Pose) for invalid device + + +## Changes for v1.7.0: + +* New features + - Add notification when new version released on [Github](https://github.com/ViveSoftware/ViveInputUtility-Unity/releases). + - Add **VRModule** class to bridge various VR SDK. It currently supports SteamVR plugin, Oculus VR plugin and Unity native VR/XR interface. + - **void VRModule.Initialize()**: Create and initilize VRModule manager instance. + - **VRModuleActiveEnum VRModule.activeModule**: Returns the activated module. + - **IVRModuleDeviceState VRModule.GetCurrentDeviceState(uint deviceIndex)**: Returns the virtual VR device status. + - **event NewPosesListener VRModule.onNewPoses**: Invoked after virtual VR device status is updated. + - **event DeviceConnectedListener VRModule.onDeviceConnected**: Invoked after virtual VR device is connected/disconnected. + - **event ActiveModuleChangedListener VRModule.onActiveModuleChanged**: Invoked when a VR module is activated. + - New binding interface using overlay UI. By default, the binding interface can be enabled by pressing RightShift + B in play mode. + -  + -  + -  + - Add define symbols + - **VIU_PLUGIN**: Defined when Vive Input Utility plugin is imported in the project. + - **VIU_STEAMVR**: Defined when SteamVR plugin is imported in the project. + - **VIU_OCULUSVR**: Defined when OculusVR plugin (OVRPlugin) is imported in the project. + - **VIU_BINDING_INTERFACE_SWITCH**: Define it to let the project be able to switch binding interface by pressing RightShift + B in play mode. + - **VIU_EXTERNAL_CAMERA_SWITCH**: Define it to let the project be able to switch external camera quad view by pressing RightShift + M in play mode. + - Add new role HandRole.ExternalCamera (Alias for HandRole.Controller3). + - By default, it is mapping to the 3rd controller, if 3rd controller not available, then mapping to the first valid generic tracker. + - ExternalCameraHook uses mapping as the default tracking target. + +* New componts + - [ViveInputVirtualButton] Use this helper component to combine multiple Vive inputs into one virtual button. + +* Improvement + - [ViveInput] Add more controller buttons, use ViveInput.GetPress(role, buttonEnum) to get device button stat + - **System** (Only visible when sendSystemButtonToAllApps option is on) + - **Menu** + - **MenuTouch** + - **Trigger** + - **TriggerTouch** + - **Pad** + - **PadTouch** + - **Grip** + - **GripTouch** + - **CapSenseGrip** + - **CapSenseGripTouch** + - **AKey** + - **AKeyTouch** + - **OuterFaceButton** (Alias for Menu) + - **OuterFaceButtonTouch** (Alias for MenuTouch) + - **InnerFaceButton** (Alias for Grip) + - **InnerFaceButtonTouch** (Alias for GripTouch) + - [ViveInput] Add controller axis enum, use ViveInput.GetAxis(role, axisEnum) to get device axis value + - **PadX** + - **PadY** + - **Trigger** + - **CapSenseGrip** + - **IndexCurl** + - **MiddleCurl** + - **RingCurl** + - **PinkyCurl** + - [ViveRole] Role mapping/binding mechanism is improved and become more flexible. + - Now different devices can bind to same role at the same time. + - If a unconnected device is bound to a role, that role can still map to other connected device. + - [ViveRole] Obsolete functions that retrieve device status and property, use static API in VRModule instead. + - **ViveRole.TryGetDeviceIndexBySerialNumber**: Use VRModule.TryGetDeviceIndex instead. + - **ViveRole.GetModelNumber**: Use VRModule.GetCurrentDeviceState(deviceIndex).modelNumber instead + - **ViveRole.GetSerialNumber**: Use VRModule.GetCurrentDeviceState(deviceIndex).serialNumber instead + - **ViveRole.GetDeviceClass**: Use VRModule.GetCurrentDeviceState(deviceIndex).deviceClass instead + - [ViveRoleBindingsHelper] Now will automatically load bindings from "vive_role_bindings.cfg", no need to be in the scene to work. + - [RenderModelHook] Add override model and shader option. + - [ExternalCameraHook] Now ExternalCameraHook will track the HandRole.ExternalCamera by default. + - [ExternalCameraHook] Now will be added into scene automatically if "externalcamera.cfg" exist when start playing, no need to add to scene manually. + - [ExternalCameraHook] You can now enable static External Camera quad view (without tracking to a device) if + 1. VIU_EXTERNAL_CAMERA_SWITCH symbol is defined. + 2. externalcamera.cfg exist. + 3. RightShift + M pressed in play mode. + - [BasicGrabbable, StickyGrabbable, Draggable] Add unblockable grab/drag option. + +* Bug fix + - [ViveRoleProperty] Fix not handling serialized data right in inspector. + - [PoseEaser] Now use unscaled time instead to avoid from being effected by time scale. + + +## Changes for v1.6.4: + +* Resloves tracking pose not updating in Unity 5.6 + +* Add SnapOnEnable option to ViveRigidPoseTracker component + +* Add mouse button mapping options to ViveRaycaster component + +* Fix crashes when clicking dropdown UI in RoleBindingExample scene + +* Fix auto-bake-lightmap errors in example scenes + +* Correct rigidbody null check in Draggable and Grabbable scripts + + +## Changes for v1.6.3: + +* Fix ViveRoleProperty returns wrong type & value [issue#9](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/9) + +* Now Teleportable component will find target & pivot automatically [issue#8](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/8) + +* Remove warning in LineRenderer + + +## Changes for v1.6.2: + +* Fix remapping errors from HandRoleHandler [issue#1](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/1) + +* Fix ViveRoleProperty.ToRole always returns Invalid [issue#6](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/6) + +* Fix ViveRaycaster not working when app loses focus [issue#7](https://github.com/ViveSoftware/ViveInputUtility-Unity/issues/7) + + +## Changes for v1.6.0: + +* New ViveRole System + - ViveRole is a mapping system that relate logic roles to OpenVR device indices. + - Each role has their own auto-mapping logic, and binding API allow user to customize the relation. + - Both mapping (role, device index) binding (role, device serial number) are one-on-one relation + - When a device serial number is binding to a role, it means that role is always mapping to the specific device + - If the bound device is disconnected, the bound role will not mapping to any device index (invalid). + - Currently there are 4 built-in roles: + - DeviceRole: role that mapping to all 16 devices, ordered exactly same as device index. + - HandRole: role related to standard Vive controllers, with basic RightHand/LeftHand recognition. + - TrackerRole: role related to Vive trackers, first conntected tracker will be mapping to Tracker1. + - BodyRole: role related to devices that tracking human limbs. + - Creating custom role in an instant by adding ViveRoleEnumAttribute to your enum type + - Customizing auto-mapping logic by implementing ViveRoleHandler\<EnumType\> and call ViveRole.AssignMapHandler() + +* New query APIs that accept any ViveRoles, ex. + - Use ViveRole.GetDeviceIndexEx(TrackerRole.Tracker1) to get tracker's device index. + - Use VivePose.GetPoseEx(TrackerRole.Tracker1) to get tracker's tracking data + - Use ViveInput.GetPressEx(TrackerRole.Tracker1, ControllerButton.Trigger) to get tracker's trigger event. + - Use ViveInput.AddListenerEx(TrackerRole.Tracker1, ControllerButton.Trigger, ButtonEventType.Press) to listen tracker's trigger event. + +* New sample scene "RoleBindingExample" + - This sample scene demonstrate how to bind device a role and save/load those bindings + +* New ViveRoleBindingsHelper helper component + - Adding this component to scene to auto-load bindings. + - Call function SaveRoleBindings(filePath) to save bindings manually. + - Call function LoadRoleBindings(filePath) to load bindings manually. + +* New RenderModelHook helper component + - This script creates and handles SteamVR_RenderModel, so you can show render model specified by ViveRole insdead of device index. + +* New ExternalCameraHook helper component + - This script creates and handles SteamVR_ExternalCamera, and let camera tracking device specified by ViveRole insdead of device index. + - Setup step-by-step + 1. Add a file called externalcamera.cfg in the root of your project. (the config file sample can be found [here](https://steamcommunity.com/app/358720/discussions/0/405694031549662100/)) + 2. Add ExternalCameraHook component into your scene. (don't remove the auto-generated SteamVR_Render component) + 3. Select ExternalCameraHook gameobject and set the device role in inspector. (or set in script, ex. ExternalCameraHook.viveRole.SetEx(TrackerRole.Tracker1)) + - If you are using 3rd Vive standard controller as external camera, set to HandRole.Controller3 (recommended) + - If you are using ViveTracker as external camera, set to TrackerRole.Tracker1 (recommended) + 4. (Optional) Bind the external camera tracking device to the role + 1. Open "RoleBindingExample" scene + 2. Scan the specific device (for external camera) + 3. Bind to the specific role (ex. HandRole.Controller3 or TrackerRole.Tracker1) + 4. Save bindings + 5. Back to your project scene + 6. Add ViveRoleBindingsHelper component into your scene. (to load bindings automatically) + 7. Now external camera should always tracking at the device you wanted. + + +## Changes for v1.5.3: + +* Make compatible with SteamVR plugin 1.2.1 +* Fix a bug in ColliderEventCaster that cause crash when disabling event caster and handling events at the same time. +* Change default teleportButton in Teleportable to TeleportButton.Pad instead of TeleportButton.Trigger +* Containers optimize + - Re-write IndexedTable, should be more efficient + - Add read-only interface + + +## Changes for v1.5.2: + +* Make compatible with SteamVR plugin 1.2.0 + + +## Changes for v1.5.1: + +* Update guide document + - Reveal used namespace in some example scripts. + - Add ready-to-used component list. + +* New controllers prefab that handles both hand EventRaycaster, ColliderEventCaster, guidelines and models + - Hide controllers' models when grabbing or dragging + - Enable EventRaycaster on pad touched, otherwise enable ColliderEventCaster + +* Pointer3D + - Expose Pointer3DRaycaster at Pointer3DEventData.raycaster, to get Raycaster from eventData easily. + - Move dragThreshold and clickInterval settings from Pointer3DInputModule to Pointer3DRaycaster. + - Re-design RaySegmentGenerator. Now RaycastMode setting is replaced by applying ProjectionGenerator & ProjectileGenerator component with Pointer3DRaycaster. + Add or enable only one generator at a time, or which generator used by the raycaster is unexpected. + Also customize your own generators by implementing BaseRaySegmentGenerator. + +* ColliderEvent + - Now OnColliderEventClick won't invoke if caster has leaved the pressed object. + - Fix a bug in ColliderEventCaster that doesn't handle hovered colliders correctly. + - Fix a bug that ColliderEventCaster doesn't handle event correctly when disable. + - Add ColliderEventTrigger component, work just like built-in EventTrigger + + +* Add Pointer3DEventData extensions +```csharp + Pointer3DRaycaster PointerEventData.GetRaycaster3D() + bool PointerEventData.TryGetRaycaster3D(out Pointer3DRaycaster raycaster) + TRaycaster3D PointerEventData.GetRaycaster3D<TRaycaster3D>() + bool PointerEventData.TryGetRaycaster3D<TRaycaster3D>(out TRaycaster3D raycaster) +``` + +* Add ColliderEventData extensions +```csharp + TEventCaster ColliderEventData.GetEventCaster<TEventCaster>() + bool ColliderEventData.TryGetEventCaster<TEventCaster>(out TEventCaster eventCaster) +``` + +* Add VivePointerEventData extensions +```csharp + bool PointerEventData.IsViveButton(HandRole hand) + bool PointerEventData.IsViveButton(ControllerButton button) + bool PointerEventData.IsViveButton(HandRole hand, ControllerButton button) + bool PointerEventData.TryGetViveButtonEventData(out VivePointerEventData viveEventData) +``` + +* Add ViveColliderEventData extensions +```csharp + bool ColliderEventData.IsViveButton(HandRole hand) + bool ColliderEventData.IsViveButton(ControllerButton button) + bool ColliderEventData.IsViveButton(HandRole hand, ControllerButton button) + bool ColliderEventData.TryGetViveButtonEventData(out ViveColliderButtonEventData viveEventData) + bool ColliderAxisEventData.IsViveTriggerValue() + bool ColliderAxisEventData.IsViveTriggerValue(HandRole hand) + bool ColliderAxisEventData.TryGetViveTriggerValueEventData(out ViveColliderTriggerValueEventData viveEventData) + bool ColliderAxisEventData.IsVivePadAxis() + bool ColliderAxisEventData.IsVivePadAxis(HandRole hand) + bool ColliderAxisEventData.TryGetVivePadAxisEventData(out ViveColliderPadAxisEventData viveEventData) +``` + +* Improve BasicGrabbable component, and Draggable(in 3D Drag example) as well + - Now grabbed object can collide properly into other colliders. + - Now handles multiple grabbers. + - Add speed factor parameter to adjast grabbed object following speed. + - Add afterGrabbed & beforeRelease event handler. + +* Add dragging state material in MaterialChanger. + +* Fix a bug in Teleportable so that GuideLineDrawer won't draw in wrong position. + +* New containers in Utiliy +```csharp + IndexedSet<TKey> // container that combinds set and list, order is not preserved, removing complexity is O(1) + OrderedIndexedSet<TKey> // container that combinds set and list, order is preserved, removing complexity is O(N) + IndexedTable<TKey, TValue> // container that combinds dictionary and list, order is not preserved, removing complexity is O(1) + OrderedIndexedTable<TKey, TValue> // container that combinds dictionary and list, order is preserved, removing complexity is O(N) +``` + + +## Changes for v1.5.0: + +* Add new raycast mode for Pointer3DRaycaster + - Default : one simple raycast + - Projection : raycast in a constant distance then raycast toward gravity + - Projectile : raycast multiple times alone the projectile curve using initial velocity + +* Add ViveInput.GetCurrentRawControllerState and ViveInput.GetPreviousRawControllerState. + +* BaseRaycastMethod now registered into Pointer3DRaycaster at Start instead of Awake. + +* Remove RequireComponent(typeof(BaseMultiMethodRaycaster)) attribute from BaseRaycastMethod. + +* Pointer3DRaycaster now registered into Pointer3DInputModule at Start instead of Awake. + +* EventCamera for Pointer3DRaycaster now place at root, instead of child of Pointer3DRaycaster. + +* New ColliderEventSyatem. Hover thins using collider (instead of raycast), send button events to them, handle events by EventSystem-like handlers. + - IColliderEventHoverEnterHandler + - IColliderEventHoverExitHandler + - IColliderEventPressDownHandler + - IColliderEventPressUpHandler + - IColliderEventPressEnterHandler + - IColliderEventPressExitHandler + - IColliderEventClickHandler + - IColliderEventDragStartHandler + - IColliderEventDragUpdateHandler + - IColliderEventDragEndHandler + - IColliderEventDropHandler + - IColliderEventAxisChangeHandler + +* New example scene to demonstrate how ColliderEvent works. + - Assets\HTC.UnityPlugin\ViveInputUtility\Examples\5.ColliderEvent\ColliderEvent.unity + +* Update tutorial & guide document. + + +## Changes for v1.4.7: + +* Now HandRole defines more then 2 controllers. + +* Add some comment and description to public API. + + +## Changes for v1.4.6: + +* Fix a bug in the examples, now reticle posed correctly when scaling VROrigin. + + +## Changes for v1.4.5: + +* Fix a rare issue in Pointer3DInputModule when processing event raycast. + + +## Changes for v1.4.4: + +* Remove example 5 & 6 from package for release(still available in full package), since they are not good standard practices in VR for avoiding motion sickness by moving the player. + +* Reset pointer's tranform(to align default laser pointer direction) in examples. + +* Adjust default threshold to proper value in PoseStablizer & Pointer3DInputModule. + +* Fix a bug in Pointer3DRaycaster that causes other input module to drive Pointer3DRaycaster(witch should be only driven by Poinster3DInputModule). + +* Now Pointer3DRaycaster can optionally show event raycast line in editor for debugging. + +* Add step by step tutorial document and example scene. + +* Replace about document with developer guide. + + +## Changes for v1.4.3: + +* Update usage document(rewrite sample code). + +* Add copyright terms. + +* Define new controller button : FullTrigger(consider pressed only when trigger value is 1.0). + +* Fix ViveInput.GetPadPressDelta and ViveInput.GetPadTouchDelta to work properly. + +* Add scroll delta scale property for ViveRaycaster(to adjust scrolling sensitivity). + +* Add PoseEaser effect settings and PoseEaserEditor to show properties. + +* Add ViveInput.TriggerHapticPulse for triggering controller vibration. + + +## Changes for v1.4.2: + +* Update usage document. + +* Reorder parameters in Pose.SetPose. + +* Now click interval can be configured by setting ViveInput.clickInterval. + + +## Changes for v1.4.1: + +* Fix wrong initial status for ViveRole and ViveInput. + +* Example: showLocalAvatar (property for LANGamePlayer) won't hide shadow (hide mesh only) if set to false. + + +## Changes for v1.4.0: + +* Separate PoseTracker module from VivePose. + +* New tracking effect PoseFreezer. + +* Reorganize folders. + + +## Changes for v1.3.0: + +* VivePose is now pure static class (Since Unity 5.3.5 fixed issue with double rendering of canvas on Vive VR, PoseUpdateMode is no longer needed). + +* New components CanvasRaycastMethod and CanvasRaycastTarget. + - CanvasRaycastMethod works like GraphicRaycastMethod, but use CanvasRaycastTarget component to target canvases, instead of asigning canvas property once at a time. + + +## Changes for v1.2.0: + +* Fix misspelling from ConvertRoleExtention to ConvertRoleExtension + +* New containter class IndexedSet\<T\> + +* New class ObjectPool\<T\> and relative class ListPool\<T\>, DictionaryPool\<T\>, IndexedSetPool\<T\>, to reduce allocating new containers. + +* Change some data structure from LinkList to InedexedSet (VivePose, Pointer3DInputModule, BaseMultiMethodRaycaster, BaseVivePoseTracker). + +* Rewrite GraphicRaycastMethod to align GraphicRaycaster's behaviour. + + +## Changes for v1.1.0: + +* New API VivePose.SetPose(). + +* New API VivePose.GetVelocity(). + +* New API VivePose.GetAngularVelocity(). + +* Fix some null reference in VivePose. \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt.meta new file mode 100644 index 0000000000000000000000000000000000000000..727f9420ee3eb27d7033b545daa0a6fb65901d73 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/changelog.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67ffc4c964fcebe4f9d195b3ef320fcb +timeCreated: 1467276720 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf b/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9e29c7657e4161f432e8c34b347b362d3d9c7766 Binary files /dev/null and b/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf differ diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf.meta new file mode 100644 index 0000000000000000000000000000000000000000..dcdd124f8d0b14b6249cc2f4598210e1e3c340b0 --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/guide.pdf.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7303f5121e6ec104f82859f783320466 +timeCreated: 1468465436 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf b/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf new file mode 100644 index 0000000000000000000000000000000000000000..58ffc9d8beffbccda8a01699eda6ae5602fd2d1b Binary files /dev/null and b/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf differ diff --git a/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf.meta b/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf.meta new file mode 100644 index 0000000000000000000000000000000000000000..edd5bac1af3c483f7d8c93ce45dafdf1db4e49bb --- /dev/null +++ b/Assets/HTC.UnityPlugin/ViveInputUtility/tutorial.pdf.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7770767bae85d374c9ece8e027bd68a2 +timeCreated: 1468465436 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HTC.UnityPlugin/package.json b/Assets/HTC.UnityPlugin/package.json new file mode 100644 index 0000000000000000000000000000000000000000..9e1c37574da8c56fdbc65b6e5eea08a1fd574a02 --- /dev/null +++ b/Assets/HTC.UnityPlugin/package.json @@ -0,0 +1,74 @@ +{ + "name": "com.htc.upm.vive-input-utility", + "version": "1.12.1-preview", + "displayName": "VIVE Input Utility", + "description": "The VIVE Input Utility (VIU) is a toolkit for developing VR experiences in Unity, especially with the VIVE/VIVE Pro but also targeting many platforms from a common code base including Oculus Rift, Rift S Go, Quest, Google Daydream, VIVE Wave SDK (e.g. VIVE Focus standalone) and additional VR platforms as supported by Unity such as Microsoft's 'Mixed Reality' VR headsets and more.\n\nCompatible with SteamVR 2.4.0+ and Oculus Integration 16.0+.\n\nView license:\nhttps://github.com/ViveSoftware/ViveInputUtility-Unity/blob/develop/LICENSE.md", + "keywords": [ + "HTC", + "VR", + "Input", + "VIVE", + "Oculus", + "WaveVR", + "Daydream", + "OpenVR", + "Microsoft Mixed Reality" + ], + "author": { + "name": "HTC Corporation", + "email": "vivesoftware@htc.com", + "url": "https://www.htc.com" + }, + "homepage": "https://github.com/ViveSoftware/ViveInputUtility-Unity", + "repository": { + "type": "git", + "url": "https://github.com/ViveSoftware/ViveInputUtility-Unity.git" + }, + "documentationUrl": "https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki", + "samples": [ + { + "displayName": "0. Tutorial", + "description": "This example shows how to build up the basic environment that can interact with Unity built-in UI component.", + "path": "ViveInputUtility/Examples/0.Tutorial" + }, + { + "displayName": "1. UGUI", + "description": "This example extends from 0.Tutorial example to introduce more UI components and developers also can re-use UGUI components from their previous projects to work with Vive Input Utility seamlessly.", + "path": "ViveInputUtility/Examples/1.UGUI" + }, + { + "displayName": "2. 2DDragDrop", + "description": "This example introduces drag and drop action with scripts. Developers can use Vive Controllers to drag and drop game objects in this scene.", + "path": "ViveInputUtility/Examples/2.2DDragDrop" + }, + { + "displayName": "3. 3DDrag", + "description": "", + "path": "ViveInputUtility/Examples/3.3DDrag" + }, + { + "displayName": "4. Teleport", + "description": "This example introduces teleport in 3D space. Developers can use Trackpad to teleport in this scene.", + "path": "ViveInputUtility/Examples/4.Teleport" + }, + { + "displayName": "5. ColliderEvent", + "description": "This example introduces various types of collider events and using Rigidbody script to allow developers to apply forces to the object and control it in a physically realistic way.", + "path": "ViveInputUtility/Examples/5.ColliderEvent" + }, + { + "displayName": "6. ControllerManagerSample", + "description": "This example introduces various ways of controller interactions.", + "path": "ViveInputUtility/Examples/6.ControllerManagerSample" + }, + { + "displayName": "7. RoleBindingExample", + "description": "", + "path": "ViveInputUtility/Examples/7.RoleBindingExample" + } + ], + "unity": "2019.3", + "publishConfig": { + "registry": "https://npm-registry.vive.com" + } +} \ No newline at end of file diff --git a/Assets/HTC.UnityPlugin/package.json.meta b/Assets/HTC.UnityPlugin/package.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..0079e31ea5b0fb764b9b6e57f719b69a660902c1 --- /dev/null +++ b/Assets/HTC.UnityPlugin/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d1be50e3d4aa6a4a8304b2f8d592186 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..7e1ea9dd0353e4efaffb99cad2163d19d7a63a12 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f0a16685ceb41346998f878362642f9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/red.mat b/Assets/Materials/red.mat new file mode 100644 index 0000000000000000000000000000000000000000..409d90d3d838117f7271459ead33b34bd1e4b1c8 --- /dev/null +++ b/Assets/Materials/red.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: red + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/red.mat.meta b/Assets/Materials/red.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..e951d55f1e0396b568be9f820eb5cfdea2df1b8e --- /dev/null +++ b/Assets/Materials/red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2eef9c84ee688748af11bfbb0b92d57 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber.meta b/Assets/Models/Lightsaber.meta new file mode 100644 index 0000000000000000000000000000000000000000..ac279fd8c453bb118f1bf3ad88af6936f90896d2 --- /dev/null +++ b/Assets/Models/Lightsaber.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 03b098f8c5a478f44a9aa16cd20cf255 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Blade Small.fbx b/Assets/Models/Lightsaber/Blade Small.fbx new file mode 100644 index 0000000000000000000000000000000000000000..40bdd0248f77e315860ac9c2c9c4a81468d5faea --- /dev/null +++ b/Assets/Models/Lightsaber/Blade Small.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28eeadbead66d2fb9c9f6aa73c78f6f608d6d5998dc3f115252c3f8afe2d422b +size 17164 diff --git a/Assets/Models/Lightsaber/Blade Small.fbx.meta b/Assets/Models/Lightsaber/Blade Small.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..c6e5182ec58ac7e31fa73089509f94e4b4c0abc6 --- /dev/null +++ b/Assets/Models/Lightsaber/Blade Small.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: d679aa440e3e8284bbf5bc6daa496b7f +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Blade.fbx b/Assets/Models/Lightsaber/Blade.fbx new file mode 100644 index 0000000000000000000000000000000000000000..c4c91eb1b81ee948f4ab53dd7f0d19e0251dfa6e --- /dev/null +++ b/Assets/Models/Lightsaber/Blade.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:686c22fb1926eba5af0390f818968a3308d690c06dc0cc2a00d7e55c1e5932a7 +size 17132 diff --git a/Assets/Models/Lightsaber/Blade.fbx.meta b/Assets/Models/Lightsaber/Blade.fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..c12b245d70d2de96b034d294316602e74998a54f --- /dev/null +++ b/Assets/Models/Lightsaber/Blade.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: d122b058ea637564b9937b70b0b60d86 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Empty_Weapon.prefab b/Assets/Models/Lightsaber/Empty_Weapon.prefab new file mode 100644 index 0000000000000000000000000000000000000000..5bdbd673128b73943a0f6088d5d7e0e4121e0165 --- /dev/null +++ b/Assets/Models/Lightsaber/Empty_Weapon.prefab @@ -0,0 +1,1211 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1024206265645186106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1024206265645186053} + - component: {fileID: 1024206265645186054} + - component: {fileID: 1024206265645186055} + - component: {fileID: 1024206265645186052} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1024206265645186053 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206265645186106} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.4357316, z: 0} + m_LocalScale: {x: 0.043056477, y: 0.43573147, z: 0.043056477} + m_Children: [] + m_Father: {fileID: 6129079827305942452} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1024206265645186054 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206265645186106} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1024206265645186055 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206265645186106} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7c815e0908473d44ab02b5d619d55a0b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &1024206265645186052 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206265645186106} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &1024206266904500110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1024206266904500105} + - component: {fileID: 285659398374442817} + m_Layer: 0 + m_Name: Empty_Weapon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1024206266904500105 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206266904500110} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.052, y: 0.347, z: 0.555} + m_LocalScale: {x: 0.1722259, y: 0.1722259, z: 0.1722259} + m_Children: + - {fileID: 4070888633383977677} + - {fileID: 6129079827305942452} + - {fileID: 2897494068915889731} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &285659398374442817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1024206266904500110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b8f1d2e3f203774dbe049389e195160, type: 3} + m_Name: + m_EditorClassIdentifier: + bladeHolder: {fileID: 8018454244273160612} + maximumSwordSize: 6 + extendSpeed: 0.1 + activateBlade: + actionPath: + needsReinit: 0 +--- !u!1 &2588863670793296920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8735290873317317345} + - component: {fileID: 4720165207568190859} + - component: {fileID: 6353316126267398125} + - component: {fileID: 5300703993832079453} + m_Layer: 0 + m_Name: Cylinder.003 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8735290873317317345 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588863670793296920} + m_LocalRotation: {x: 0.50000006, y: 0.50000006, z: -0.49999997, w: -0.49999994} + m_LocalPosition: {x: 0.1692995, y: 1.4796432, z: 0} + m_LocalScale: {x: 6.627573, y: 6.627573, z: 1.0122122} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4720165207568190859 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588863670793296920} + m_Mesh: {fileID: 6239881831769578202, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &6353316126267398125 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588863670793296920} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5300703993832079453 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588863670793296920} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 6239881831769578202, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &3994266423690106777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7816402407218961577} + - component: {fileID: 4828016280168244636} + - component: {fileID: 3666266826126528161} + - component: {fileID: 2930775898669441642} + m_Layer: 0 + m_Name: Cylinder.004 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7816402407218961577 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3994266423690106777} + m_LocalRotation: {x: 0.50000006, y: 0.50000006, z: -0.49999997, w: -0.49999994} + m_LocalPosition: {x: 0.20836946, y: 1.6187446, z: 0} + m_LocalScale: {x: 5.7802258, y: 5.7802258, z: 2.124029} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4828016280168244636 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3994266423690106777} + m_Mesh: {fileID: 6255687079079774844, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &3666266826126528161 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3994266423690106777} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &2930775898669441642 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3994266423690106777} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 6255687079079774844, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &4607193500509366719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8060077002523452779} + - component: {fileID: 6497466536110664968} + - component: {fileID: 1016211262369250711} + - component: {fileID: 5292503099067756236} + m_Layer: 0 + m_Name: Cylinder.006 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8060077002523452779 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4607193500509366719} + m_LocalRotation: {x: 0.50000006, y: 0.50000006, z: -0.49999997, w: -0.49999994} + m_LocalPosition: {x: -0.21469991, y: 1.6262637, z: 0} + m_LocalScale: {x: 7.7102923, y: 7.7102923, z: 2.124029} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6497466536110664968 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4607193500509366719} + m_Mesh: {fileID: -125435165217083709, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &1016211262369250711 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4607193500509366719} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5292503099067756236 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4607193500509366719} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -125435165217083709, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &4946745978379598788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9167770461104342924} + - component: {fileID: 2475746208548485083} + - component: {fileID: 7939509820115872179} + - component: {fileID: 5255193398003148772} + m_Layer: 0 + m_Name: Cylinder.007 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9167770461104342924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4946745978379598788} + m_LocalRotation: {x: 0.50000006, y: 0.50000006, z: -0.49999997, w: -0.49999994} + m_LocalPosition: {x: -0.17666613, y: 1.6311289, z: 0} + m_LocalScale: {x: 2.090016, y: 2.090016, z: 1.7560337} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2475746208548485083 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4946745978379598788} + m_Mesh: {fileID: 3163171260390484736, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &7939509820115872179 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4946745978379598788} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5255193398003148772 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4946745978379598788} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 3163171260390484736, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &6065650303871997689 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1336625711368218425} + - component: {fileID: 824931230457925916} + - component: {fileID: 3231615066920944133} + - component: {fileID: 902708758522030760} + m_Layer: 0 + m_Name: Cylinder.002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1336625711368218425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6065650303871997689} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0.14506388, z: 0} + m_LocalScale: {x: -15.653595, y: -15.653595, z: -15.653595} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &824931230457925916 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6065650303871997689} + m_Mesh: {fileID: 8691780276856062721, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &3231615066920944133 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6065650303871997689} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &902708758522030760 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6065650303871997689} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 8691780276856062721, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &6311678248064097852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8498585107738275838} + - component: {fileID: 2592371253171393494} + - component: {fileID: 750613610537299062} + - component: {fileID: 9163949215209682642} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8498585107738275838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6311678248064097852} + m_LocalRotation: {x: -0.65942365, y: -0.25526568, z: 0.25526568, w: 0.6594236} + m_LocalPosition: {x: 0.042679973, y: 2.030244, z: 0.21610597} + m_LocalScale: {x: 3.1622748, y: 3.1622748, z: 3.1622748} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2592371253171393494 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6311678248064097852} + m_Mesh: {fileID: 4711208715938537054, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &750613610537299062 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6311678248064097852} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &9163949215209682642 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6311678248064097852} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4711208715938537054, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &6863415010788885974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7596396032499653124} + - component: {fileID: 1204080505279131234} + - component: {fileID: 4139109386753129246} + - component: {fileID: 1543157755855018172} + m_Layer: 0 + m_Name: Cylinder.005 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7596396032499653124 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863415010788885974} + m_LocalRotation: {x: 0.50000006, y: 0.50000006, z: -0.49999997, w: -0.49999994} + m_LocalPosition: {x: 0.16856234, y: 1.6187446, z: 0} + m_LocalScale: {x: 2.6999161, y: 2.6999161, z: 1.7560337} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1204080505279131234 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863415010788885974} + m_Mesh: {fileID: 3390558720134950976, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &4139109386753129246 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863415010788885974} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1543157755855018172 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863415010788885974} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 3390558720134950976, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &7495767558485769368 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2260392365635595949} + - component: {fileID: 4390230917938709755} + - component: {fileID: 193213475344624607} + - component: {fileID: 457723671480172077} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2260392365635595949 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7495767558485769368} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0.14563848, z: 0} + m_LocalScale: {x: 16.028297, y: 16.028297, z: 16.028297} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4390230917938709755 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7495767558485769368} + m_Mesh: {fileID: 2534964839176971238, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &193213475344624607 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7495767558485769368} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &457723671480172077 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7495767558485769368} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 2534964839176971238, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &8018454244273160612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6129079827305942452} + m_Layer: 0 + m_Name: BladeHolder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6129079827305942452 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8018454244273160612} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 2.43, z: 0} + m_LocalScale: {x: 5.806328, y: 5.806328, z: 5.806328} + m_Children: + - {fileID: 1024206265645186053} + m_Father: {fileID: 1024206266904500105} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8195164213138971908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4070888633383977677} + m_Layer: 0 + m_Name: SaberHilt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4070888633383977677 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8195164213138971908} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2260392365635595949} + - {fileID: 2261163973906853104} + - {fileID: 1336625711368218425} + - {fileID: 8735290873317317345} + - {fileID: 7816402407218961577} + - {fileID: 7596396032499653124} + - {fileID: 8060077002523452779} + - {fileID: 9167770461104342924} + - {fileID: 3272702716247650313} + - {fileID: 8498585107738275838} + m_Father: {fileID: 1024206266904500105} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8513924437939519651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2897494068915889731} + m_Layer: 0 + m_Name: GrabOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2897494068915889731 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513924437939519651} + m_LocalRotation: {x: -0.4971997, y: -0.4705732, z: -0.50278467, w: 0.5277887} + m_LocalPosition: {x: -0.04, y: 0.105, z: -0.008} + m_LocalScale: {x: 5.806328, y: 5.806328, z: 5.806328} + m_Children: [] + m_Father: {fileID: 1024206266904500105} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: -86.4, y: 2.96, z: -90} +--- !u!1 &8769304388103166869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3272702716247650313} + - component: {fileID: 479452075584445741} + - component: {fileID: 2798621764991036033} + - component: {fileID: 6824196312100971821} + m_Layer: 0 + m_Name: Cylinder.009 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3272702716247650313 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8769304388103166869} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0.0067347866, y: 1.989141, z: 0} + m_LocalScale: {x: 22.586874, y: 22.586874, z: 25.407076} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &479452075584445741 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8769304388103166869} + m_Mesh: {fileID: 3525479140033381557, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &2798621764991036033 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8769304388103166869} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &6824196312100971821 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8769304388103166869} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 3525479140033381557, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!1 &8824313711635627219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2261163973906853104} + - component: {fileID: 4254295122867517833} + - component: {fileID: 6188184843366660212} + - component: {fileID: 5253046765385729815} + m_Layer: 0 + m_Name: Cylinder.001 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2261163973906853104 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8824313711635627219} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0.00012563542, y: 2.0322967, z: 0} + m_LocalScale: {x: 22.381943, y: 22.381943, z: 59.01478} + m_Children: [] + m_Father: {fileID: 4070888633383977677} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4254295122867517833 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8824313711635627219} + m_Mesh: {fileID: -7387706064836869012, guid: 2e0427b29f4946d499452abb5d082636, type: 3} +--- !u!23 &6188184843366660212 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8824313711635627219} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 24bfbe9714f42b249a6c541bfc877041, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5253046765385729815 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8824313711635627219} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -7387706064836869012, guid: 2e0427b29f4946d499452abb5d082636, type: 3} diff --git a/Assets/Models/Lightsaber/Empty_Weapon.prefab.meta b/Assets/Models/Lightsaber/Empty_Weapon.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..03fe98b3631e850688681e251a8427fb6f982ce3 --- /dev/null +++ b/Assets/Models/Lightsaber/Empty_Weapon.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed822531a62870c4a80255f2ff09d819 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Lightsabers(s).blend b/Assets/Models/Lightsaber/Lightsabers(s).blend new file mode 100644 index 0000000000000000000000000000000000000000..5ce26ae4a2c8fe3f8b9b8365ec4b91a4892e6cf4 --- /dev/null +++ b/Assets/Models/Lightsaber/Lightsabers(s).blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddbc9e30b1b602c1938345b61d37d560b387cbc52de6743819fb76242d6a9486 +size 1233992 diff --git a/Assets/Models/Lightsaber/Lightsabers(s).blend.meta b/Assets/Models/Lightsaber/Lightsabers(s).blend.meta new file mode 100644 index 0000000000000000000000000000000000000000..5ad0e7a8a53c4db6ac7f78d8a89eea20d1999a8b --- /dev/null +++ b/Assets/Models/Lightsaber/Lightsabers(s).blend.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: 4f57d85ae8604454ab2b4e4aacb4a098 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Lightsabers(s).fbx b/Assets/Models/Lightsaber/Lightsabers(s).fbx new file mode 100644 index 0000000000000000000000000000000000000000..7ff34e42cf2703032ef63bfb5919c90ac796119d --- /dev/null +++ b/Assets/Models/Lightsaber/Lightsabers(s).fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8f7c61137556529c0fd0071cf381442b7a48a6ea80032f4ded7f0ae26f245e4 +size 152300 diff --git a/Assets/Models/Lightsaber/Lightsabers(s).fbx.meta b/Assets/Models/Lightsaber/Lightsabers(s).fbx.meta new file mode 100644 index 0000000000000000000000000000000000000000..99929745bac22b1fafa78ba30be265f3f1142215 --- /dev/null +++ b/Assets/Models/Lightsaber/Lightsabers(s).fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: 2e0427b29f4946d499452abb5d082636 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 1 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Materials.meta b/Assets/Models/Lightsaber/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..67337e0271a5b6cf8b567567e705bdf5dcece099 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 377c63aa9ad56444ba0d4fe98978b17e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Materials/Blade.mat b/Assets/Models/Lightsaber/Materials/Blade.mat new file mode 100644 index 0000000000000000000000000000000000000000..3a4215f3250bf22690264bac1b62555c05efe6a5 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Blade.mat @@ -0,0 +1,126 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blade + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _EMISSION _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0, g: 0.34083128, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0.07041359, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &3028129319729652296 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/Models/Lightsaber/Materials/Blade.mat.meta b/Assets/Models/Lightsaber/Materials/Blade.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..d3c2d9db158d4af7d8cff09258803ed3422736dd --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Blade.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c815e0908473d44ab02b5d619d55a0b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Materials/Shining Material.mat b/Assets/Models/Lightsaber/Materials/Shining Material.mat new file mode 100644 index 0000000000000000000000000000000000000000..911d089158e14c90916bbcd9c852b82ba2f53b30 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Shining Material.mat @@ -0,0 +1,126 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5142272834448995901 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Shining Material + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _EMISSION _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.7254902, g: 0.18039216, b: 0.16862746, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 11.92935, g: 1.4180715, b: 0.92652327, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Models/Lightsaber/Materials/Shining Material.mat.meta b/Assets/Models/Lightsaber/Materials/Shining Material.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..7160611418ac30cfd1a7b6aaacfef956002a5c94 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Shining Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec739259ec61f5d4ba3ed6d34fd802a6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Materials/Test.mat b/Assets/Models/Lightsaber/Materials/Test.mat new file mode 100644 index 0000000000000000000000000000000000000000..57428d6c3fa0cee563b8b4efe8114b9b76b414df --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Test.mat @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Test + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Shininess: 0.7 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Emission: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 0} + - _EmissionColor: {r: 0.21960783, g: 0.21960783, b: 0.21960783, a: 0} + - _SpecColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Models/Lightsaber/Materials/Test.mat.meta b/Assets/Models/Lightsaber/Materials/Test.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..3b8c54aa64bf54d2040cffd77726cb771808d975 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/Test.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0e79c79f49c9be846b3cdae07f6d4bde +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Lightsaber/Materials/dark.mat b/Assets/Models/Lightsaber/Materials/dark.mat new file mode 100644 index 0000000000000000000000000000000000000000..fd9d2d96dfa146c26cb697ce7b49fab1cf27fb3a --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/dark.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: dark + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Models/Lightsaber/Materials/dark.mat.meta b/Assets/Models/Lightsaber/Materials/dark.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..4fb5464e18c7b8164d728bc363b10cddb83b78f6 --- /dev/null +++ b/Assets/Models/Lightsaber/Materials/dark.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24bfbe9714f42b249a6c541bfc877041 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 0000000000000000000000000000000000000000..9fec700edc9ef35151e9601e56e353afee4b74d2 --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e87d20bac64125848b39d9a547700e51 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SimpleGrab.cs b/Assets/Scripts/SimpleGrab.cs new file mode 100644 index 0000000000000000000000000000000000000000..155e1464377482427193d5f2ca0d172ab2fbe94e --- /dev/null +++ b/Assets/Scripts/SimpleGrab.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Valve.VR; +using Valve.VR.InteractionSystem; + +public class SimpleGrab : MonoBehaviour +{ + private Interactable interactable; + + // Start is called before the first frame update + void Start() + { + interactable = GetComponent<Interactable>(); + } + + // Update is called once per frame + private void HandHoverBegin (Hand hand){ + hand.ShowGrabHint(); + } + + private void HandHoverEnd (Hand hand){ + hand.HideGrabHint(); + } + + private void HandHoverUpdate(Hand hand){ + GrabTypes grabType = hand.GetBestGrabbingType(); + bool isGrabEnding = hand.IsGrabEnding(gameObject); + + + if (interactable.attachedToHand == null && grabType != GrabTypes.None){ + hand.AttachObject(gameObject, grabType); + hand.HoverLock(interactable); + hand.HideGrabHint(); + } + else if (isGrabEnding) { + hand.DetachObject(gameObject); + hand.HoverUnlock(interactable); + } + } + +} diff --git a/Assets/Scripts/SimpleGrab.cs.meta b/Assets/Scripts/SimpleGrab.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2458efab0747defbf5706ae37a3983be3955471a --- /dev/null +++ b/Assets/Scripts/SimpleGrab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0edba32e99441684e89c78d7fee5d180 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/WeaponManager.cs b/Assets/Scripts/WeaponManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..f805e6fed067ccbdb6a3403daa8a2a04bd543124 --- /dev/null +++ b/Assets/Scripts/WeaponManager.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Valve.VR; +using Valve.VR.InteractionSystem; + +public class WeaponManager : MonoBehaviour +{ + [Tooltip("Hello I am a test Tooltip.")] + public GameObject bladeHolder; + + + // Blade is extended or not. + private bool weaponTurnedOn; + + + private float minimumSwordSize = 0.0f; + + [Tooltip("The maximum extension of the Blade.")] + public float maximumSwordSize; + + [Tooltip("The extend speed in seconds.")] + public float extendSpeed = 0.1f ; + + // Start is called before the first frame update + public SteamVR_Action_Boolean activateBlade; + + private Interactable interactable; + + void Start() { + interactable = GetComponent<Interactable>(); + } + void Awake() + { + UpdateWeapon(); + } + + // Update is called once per frame + void Update() + { + if (interactable.attachedToHand != null){ + SteamVR_Input_Sources source = interactable.attachedToHand.handType; + + Debug.Log(source.ToString()); + + if (activateBlade[source].stateDown){ + weaponTurnedOn = !weaponTurnedOn; + Debug.Log("Weapon state changed"); + } + } + UpdateWeapon(); + + } + + void UpdateWeapon() + { + float extendDelta = maximumSwordSize / extendSpeed; + float currentSize = bladeHolder.transform.localScale.y; + + if(weaponTurnedOn) + { + bladeHolder.transform.localScale = new Vector3(bladeHolder.transform.localScale.x, Mathf.Clamp(currentSize + (extendDelta * -Time.deltaTime), minimumSwordSize, maximumSwordSize), bladeHolder.transform.localScale.z); + } + else + { + bladeHolder.transform.localScale = new Vector3(bladeHolder.transform.localScale.x, Mathf.Clamp(currentSize + (extendDelta * Time.deltaTime), minimumSwordSize, maximumSwordSize), bladeHolder.transform.localScale.z); + + } + } +} diff --git a/Assets/Scripts/WeaponManager.cs.meta b/Assets/Scripts/WeaponManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3f86b4043df64717a879ed0e519fb2adba0ae729 --- /dev/null +++ b/Assets/Scripts/WeaponManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b8f1d2e3f203774dbe049389e195160 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerButtonHints.mat b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerButtonHints.mat index 41c6160bc2b4c764c957c1069f19c7b9f914bf7d..bb8eacd3098e936eba513e0a4bfca66d49f2206b 100644 --- a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerButtonHints.mat +++ b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerButtonHints.mat @@ -1,137 +1,138 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-6798356609545366105 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPControllerButtonHints - m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 5 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 1 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Unlit/Texture - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - PixelSnap: 0 - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _ColorMask: 15 - - _Cull: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _Glossiness: 0.5 - - _InvFade: 0.5 - - _Metallic: 0 - - _Mode: 2 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SampleGI: 0 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Stencil: 0 - - _StencilComp: 8 - - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 0.1254902} - - _Color: {r: 1, g: 1, b: 1, a: 0.1254902} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SceneTint: {r: 0.64705884, g: 0.64705884, b: 0.64705884, a: 1} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6798356609545366105 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPControllerButtonHints + m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Unlit/Texture + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ColorMask: 15 + - _Cull: 0 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _Glossiness: 0.5 + - _InvFade: 0.5 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SampleGI: 0 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0.1254902} + - _Color: {r: 1, g: 1, b: 1, a: 0.1254902} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SceneTint: {r: 0.64705884, g: 0.64705884, b: 0.64705884, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintAnchor.mat b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintAnchor.mat index 0356d82db054d207d68fa26fba50fd3472f204d7..9f83b30d500498f1fa10acc12e7cfa5438d6a938 100644 --- a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintAnchor.mat +++ b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintAnchor.mat @@ -1,136 +1,137 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-6903812706632878421 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPControllerTextHintAnchor - m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 6 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _EnvironmentReflections: 1 - - _FogMultiplier: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _SampleGI: 0 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _WorkflowMode: 1 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.854902, g: 0.854902, b: 0.854902, a: 1} - - _Color: {r: 0.854902, g: 0.854902, b: 0.854902, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SceneTint: {r: 1, g: 1, b: 1, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6903812706632878421 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPControllerTextHintAnchor + m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 6 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _FogMultiplier: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.854902, g: 0.854902, b: 0.854902, a: 1} + - _Color: {r: 0.854902, g: 0.854902, b: 0.854902, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SceneTint: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintLine.mat b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintLine.mat index 917a2a3ea3774dc250aaefef27b21a45017a6fb1..2fda7c86797ce49c4d349b1650e2f3752301f18e 100644 --- a/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintLine.mat +++ b/Assets/SteamVR/InteractionSystem/Hints/Materials/URPControllerTextHintLine.mat @@ -1,137 +1,138 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-458418814011274066 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPControllerTextHintLine - m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 6 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - PixelSnap: 0 - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _EnvironmentReflections: 1 - - _FogMultiplier: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _SampleGI: 0 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _WorkflowMode: 1 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.85490197, g: 0.85490197, b: 0.85490197, a: 1} - - _Color: {r: 0.85490197, g: 0.85490197, b: 0.85490197, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SceneTint: {r: 1, g: 1, b: 1, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-458418814011274066 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPControllerTextHintLine + m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 6 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _FogMultiplier: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.85490197, g: 0.85490197, b: 0.85490197, a: 1} + - _Color: {r: 0.85490197, g: 0.85490197, b: 0.85490197, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SceneTint: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Samples/BuggyBuddy/URPLightCone_Blue.mat b/Assets/SteamVR/InteractionSystem/Samples/BuggyBuddy/URPLightCone_Blue.mat index 3c1af121a7cd55d9ac7e2c9ba88bf34ccdcabbfd..ee1964ad40378d7596841435fd49190067863c90 100644 --- a/Assets/SteamVR/InteractionSystem/Samples/BuggyBuddy/URPLightCone_Blue.mat +++ b/Assets/SteamVR/InteractionSystem/Samples/BuggyBuddy/URPLightCone_Blue.mat @@ -1,89 +1,90 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-5253305620105459673 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPLightCone_Blue - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: _FADING_ON _SOFTPARTICLES_ON - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - <noninit>: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: b59c47dc5498503429f0715942782fb2, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - <noninit>: 0 - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 2 - - _Cutoff: 0.42 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _InvFade: 1 - - _Mode: 0 - - _QueueOffset: 0 - - _Rim: 1 - - _SoftParticlesEnabled: 1 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _ZWrite: 0 - m_Colors: - - <noninit>: {r: 0, g: 2.0182498, b: 1e-45, a: -1.8497637e-28} - - _BaseColor: {r: 0, g: 0.89716387, b: 1, a: 0.5019608} - - _BaseColorAddSubDiff: {r: -1, g: 1, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0.9138589, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0} - - _TintColor: {r: 0.18944637, g: 0.30681607, b: 0.53676474, a: 0.5} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5253305620105459673 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPLightCone_Blue + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: _FADING_ON _SOFTPARTICLES_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - <noninit>: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: b59c47dc5498503429f0715942782fb2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - <noninit>: 0 + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.42 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _InvFade: 1 + - _Mode: 0 + - _QueueOffset: 0 + - _Rim: 1 + - _SoftParticlesEnabled: 1 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _ZWrite: 0 + m_Colors: + - <noninit>: {r: 0, g: 2.0182498, b: 1e-45, a: -1.8497637e-28} + - _BaseColor: {r: 0, g: 0.89716387, b: 1, a: 0.5019608} + - _BaseColorAddSubDiff: {r: -1, g: 1, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0.8151159, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0} + - _TintColor: {r: 0.18944637, g: 0.30681607, b: 0.53676474, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMat.mat b/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMat.mat index 75248aebf857a7ce09b5cef9052eaa13594d10f3..af6f9936359b01f2f5c4d0effa6573e8e3b6420e 100644 --- a/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMat.mat +++ b/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMat.mat @@ -1,106 +1,140 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPflowerMat - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: _ENVIRONMENTREFLECTIONS_OFF _METALLICSPECGLOSSMAP _NORMALMAP - _RECEIVE_SHADOWS_OFF - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3051 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - <noninit>: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BaseMap: - m_Texture: {fileID: 2800000, guid: abf6d945eaf1e3448b2c5264c0b1be0f, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: abf6d945eaf1e3448b2c5264c0b1be0f, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - <noninit>: 0 - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _Darken: 0 - - _DstBlend: 10 - - _EnvironmentReflections: 0 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossinessSource: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _QueueOffset: -1 - - _ReceiveShadows: 0 - - _SampleGI: 0 - - _SeeThru: 0 - - _Shininess: 0 - - _Smoothness: 0 - - _SmoothnessSource: 0 - - _SmoothnessTextureChannel: 0 - - _SpecSource: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _WorkflowMode: 1 - - _ZWrite: 0 - m_Colors: - - <noninit>: {r: 0, g: 2.018452, b: 1e-45, a: -7.580562e+31} - - _BaseColor: {r: 1, g: 0.36764705, b: 0.36764705, a: 1} - - _Color: {r: 1, g: 0.36764705, b: 0.36764705, a: 1} - - _EmissionColor: {r: 0.0078125, g: 0.0078125, b: 0.0078125, a: 1} - - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} - - _TintColor: {r: 0.2647059, g: 0.26977685, b: 1, a: 1} ---- !u!114 &8842152256039333566 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPflowerMat + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _ENVIRONMENTREFLECTIONS_OFF _METALLICSPECGLOSSMAP _NORMALMAP + _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2999 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - <noninit>: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: abf6d945eaf1e3448b2c5264c0b1be0f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: abf6d945eaf1e3448b2c5264c0b1be0f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - <noninit>: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _EnvironmentReflections: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: -1 + - _ReceiveShadows: 0 + - _SampleGI: 0 + - _SeeThru: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - <noninit>: {r: 0, g: 2.018452, b: 1e-45, a: -7.580562e+31} + - _BaseColor: {r: 1, g: 0.36764705, b: 0.36764705, a: 1} + - _Color: {r: 1, g: 0.36764705, b: 0.36764705, a: 1} + - _EmissionColor: {r: 0.00060468266, g: 0.00060468266, b: 0.00060468266, a: 1} + - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + - _TintColor: {r: 0.2647059, g: 0.26977685, b: 1, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &8842152256039333566 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMatOp.mat b/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMatOp.mat index 3e6188e4e2685fa488de87460b06fd3cc875a4dc..92b1b9c418e2962efc6c6fc5ff8e5213ef97e457 100644 --- a/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMatOp.mat +++ b/Assets/SteamVR/InteractionSystem/Samples/Materials/URPflowerMatOp.mat @@ -1,120 +1,136 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-7948604790826447513 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPflowerMatOp - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: _EMISSION _RECEIVE_SHADOWS_OFF - m_LightmapFlags: 2 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 1 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - <noninit>: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - <noninit>: 0 - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _EnvironmentReflections: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 1 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _ReceiveShadows: 0 - - _SeeThru: 0 - - _Smoothness: 1 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _WorkflowMode: 1 - - _ZWrite: 0 - m_Colors: - - <noninit>: {r: 0, g: 2.018452, b: 1e-45, a: -7.580562e+31} - - _BaseColor: {r: 0, g: 0, b: 0, a: 0.39607844} - - _Color: {r: 0.5147059, g: 0.5147059, b: 0.5147059, a: 1} - - _EmissionColor: {r: 0.11662913, g: 0.11662913, b: 0.11662913, a: 1} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _TintColor: {r: 1, g: 0.2647059, b: 0.2647059, a: 1} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7948604790826447513 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPflowerMatOp + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _EMISSION _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - <noninit>: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - <noninit>: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 1 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 0 + - _SeeThru: 0 + - _Smoothness: 1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - <noninit>: {r: 0, g: 2.018452, b: 1e-45, a: -7.580562e+31} + - _BaseColor: {r: 0, g: 0, b: 0, a: 0.39607844} + - _Color: {r: 0.5147059, g: 0.5147059, b: 0.5147059, a: 1} + - _EmissionColor: {r: 0.012800075, g: 0.012800075, b: 0.012800075, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _TintColor: {r: 1, g: 0.2647059, b: 0.2647059, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Samples/Squishy/Materials/URPSquish.mat b/Assets/SteamVR/InteractionSystem/Samples/Squishy/Materials/URPSquish.mat index fa8d2d782c606372f8811b5fe4197ea37aebd529..a4f269bbc23f477ad9a08dfc6e4550b6da269ddf 100644 --- a/Assets/SteamVR/InteractionSystem/Samples/Squishy/Materials/URPSquish.mat +++ b/Assets/SteamVR/InteractionSystem/Samples/Squishy/Materials/URPSquish.mat @@ -1,139 +1,155 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-1347264278434823338 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPSquish - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: _NORMALMAP _OCCLUSIONMAP _SPECULAR_SETUP - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2050 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - <noninit>: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BaseMap: - m_Texture: {fileID: 2800000, guid: 5818e400cbb286541b34bfe13232431f, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Goo: - m_Texture: {fileID: 2800000, guid: 1250643187cd6e84f873b5efc80f049d, type: 3} - m_Scale: {x: 2, y: 2} - m_Offset: {x: 0, y: 0} - - _GooN: - m_Texture: {fileID: 2800000, guid: cc667b3995f186347b95c15abbb1c3c8, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: 5818e400cbb286541b34bfe13232431f, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Metallic: - m_Texture: {fileID: 2800000, guid: f8f6383ff3580e748824e6b7f2b7b776, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 2800000, guid: f8f6383ff3580e748824e6b7f2b7b776, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Normal: - m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 2800000, guid: cc667b3995f186347b95c15abbb1c3c8, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - <noninit>: 0 - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _Deform: 0 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _EnvironmentReflections: 1 - - _FlowFac: -0.51 - - _GlossMapScale: 1 - - _Glossiness: 0.904 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _PinchDeform: 0 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Rough: 0.064 - - _Smoothness: 0.22 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Surface: 0 - - _UVSec: 0 - - _WorkflowMode: 0 - - _ZWrite: 1 - m_Colors: - - <noninit>: {r: 0, g: 2.0183642, b: 1e-45, a: 6.480812e-26} - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 0.26647326, g: 0.31617647, b: 0.1720372, a: 1} - - _ColorA: {r: 1, g: 0.6558823, b: 0.1397059, a: 1} - - _ColorB: {r: 1, g: 0, b: 0, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _Flow: {r: 0, g: 0.5, b: 0, a: -0.7} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1347264278434823338 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPSquish + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _OCCLUSIONMAP _SPECULAR_SETUP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - <noninit>: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 5818e400cbb286541b34bfe13232431f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Goo: + m_Texture: {fileID: 2800000, guid: 1250643187cd6e84f873b5efc80f049d, type: 3} + m_Scale: {x: 2, y: 2} + m_Offset: {x: 0, y: 0} + - _GooN: + m_Texture: {fileID: 2800000, guid: cc667b3995f186347b95c15abbb1c3c8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 5818e400cbb286541b34bfe13232431f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Metallic: + m_Texture: {fileID: 2800000, guid: f8f6383ff3580e748824e6b7f2b7b776, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: f8f6383ff3580e748824e6b7f2b7b776, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Normal: + m_Texture: {fileID: 2800000, guid: c7ddd637fe41c13448eb3ad8620e2735, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: cc667b3995f186347b95c15abbb1c3c8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - <noninit>: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _Deform: 0 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FlowFac: -0.51 + - _GlossMapScale: 1 + - _Glossiness: 0.904 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _PinchDeform: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Rough: 0.064 + - _Smoothness: 0.22 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 0 + - _ZWrite: 1 + m_Colors: + - <noninit>: {r: 0, g: 2.0183642, b: 1e-45, a: 6.480812e-26} + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0.26647326, g: 0.31617647, b: 0.1720372, a: 1} + - _ColorA: {r: 1, g: 0.6558823, b: 0.1397059, a: 1} + - _ColorB: {r: 1, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flow: {r: 0, g: 0.5, b: 0, a: -0.7} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlighted.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlighted.mat index e3fb408c50b153a8e7b102d62f23b9222bbdd43e..9d7f2237f289cde40aeb4bab0a2bc382eb5fa948 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlighted.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlighted.mat @@ -1,149 +1,150 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaHighlighted - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 1 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Standard - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.641 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0.126 - - _Metallic: 0.368 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.358 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 2 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} - - _EmissionColor: {r: 0.039546248, g: 0.039546248, b: 0.039546248, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _TintColor: {r: 0.064310014, g: 0.56794316, b: 0.59, a: 1} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} ---- !u!114 &8145728955799669849 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaHighlighted + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Standard + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.641 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0.126 + - _Metallic: 0.368 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.358 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 2 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} + - _EmissionColor: {r: 0.003060855, g: 0.003060855, b: 0.003060855, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _TintColor: {r: 0.064310014, g: 0.56794316, b: 0.59, a: 1} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &8145728955799669849 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedBright.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedBright.mat index 67fbaba1a97a369de5f9160b437c621736b65e8d..186d91516b723589f0c852332ff57a3d45db0c19 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedBright.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedBright.mat @@ -1,149 +1,150 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaHighlightedBright - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Standard - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.745 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0.126 - - _Metallic: 0.368 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.454 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 2 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} - - _EmissionColor: {r: 0.25824147, g: 0.91758215, b: 1, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _TintColor: {r: 0, g: 0.7932589, b: 0.828, a: 0.551} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} ---- !u!114 &7842083890065120162 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaHighlightedBright + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Standard + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.745 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0.126 + - _Metallic: 0.368 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.454 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 2 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.18325105, g: 0.7196769, b: 0.743, a: 0.61960787} + - _EmissionColor: {r: 0.054238077, g: 0.8226541, b: 1, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _TintColor: {r: 0, g: 0.7932589, b: 0.828, a: 0.551} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &7842083890065120162 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedLow.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedLow.mat index 7812d03cf8b05fa2d22a24ca75014385182cdb15..ca67bc67621aca09ef192cc7619f2c63b2d18181 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedLow.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaHighlightedLow.mat @@ -1,149 +1,150 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaHighlightedLow - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Standard - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.553 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0.126 - - _Metallic: 0.368 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.358 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 2 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.121098585, g: 0.4755873, b: 0.491, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.121098585, g: 0.4755873, b: 0.491, a: 0.61960787} - - _EmissionColor: {r: 0.11285155, g: 0.40098342, b: 0.437, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _TintColor: {r: 0.06504, g: 0.262328, b: 0.271, a: 0.691} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} ---- !u!114 &8330944033304508712 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaHighlightedLow + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Standard + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.553 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0.126 + - _Metallic: 0.368 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.358 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 2 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.121098585, g: 0.4755873, b: 0.491, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.121098585, g: 0.4755873, b: 0.491, a: 0.61960787} + - _EmissionColor: {r: 0.012134307, g: 0.13355862, b: 0.16029145, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _TintColor: {r: 0.06504, g: 0.262328, b: 0.271, a: 0.691} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &8330944033304508712 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaLocked.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaLocked.mat index 37388679372be773271e51f3e0b50c377562839e..a4db000a340bcb68e4661cfc1f11773e177ea30a 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaLocked.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaLocked.mat @@ -1,159 +1,160 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8814237953614768270 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaLocked - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: 934c5a234f38a8243a04fbdbc71693ef, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FalloffTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Illum: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShadowTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMask: 15 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.641 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _Emission: 0.01 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.126 - - _GlossyReflections: 1 - - _Metallic: 0.368 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.358 - - _SmoothnessTextureChannel: 0 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _Stencil: 0 - - _StencilComp: 8 - - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bEnableMetallic: 0 - - g_bReceiveShadows: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.7867738, g: 0.5544188, b: 0.1388565, a: 0.5} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.7867738, g: 0.5544188, b: 0.1388565, a: 0.5} - - _EmissionColor: {r: 0.7867738, g: 0.5544188, b: 0.1388565, a: 0.5} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _Specular: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.7867738, g: 0.5544187, b: 0.13885644, a: 0.45490196} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8814237953614768270 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaLocked + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: 934c5a234f38a8243a04fbdbc71693ef, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FalloffTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Illum: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ShadowTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.641 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _Emission: 0.01 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.126 + - _GlossyReflections: 1 + - _Metallic: 0.368 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.358 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bEnableMetallic: 0 + - g_bReceiveShadows: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.7867738, g: 0.5544188, b: 0.1388565, a: 0.5} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.7867738, g: 0.5544188, b: 0.1388565, a: 0.5} + - _EmissionColor: {r: 0.5816518, g: 0.26791197, b: 0.017145377, a: 0.5} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _Specular: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.7867738, g: 0.5544187, b: 0.13885644, a: 0.45490196} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisible.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisible.mat index acb0bb51c288f899df19824a2aba5d119136c370..1ca6441749537e0e0a1c3f6e515d9dab6639cfcd 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisible.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisible.mat @@ -1,170 +1,171 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8478907122853063746 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaVisible - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Standard - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FalloffTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Illum: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShadowTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMask: 15 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.641 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _Emission: 0.01 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.358 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 2 - - _SrcBlend: 5 - - _Stencil: 0 - - _StencilComp: 8 - - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bEnableMetallic: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} - - _EmissionColor: {r: 0.26, g: 0.32999998, b: 0.37, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _Specular: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.22033198, g: 0.41133347, b: 0.516, a: 0.453} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8478907122853063746 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaVisible + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Standard + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FalloffTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Illum: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ShadowTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.641 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _Emission: 0.01 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.358 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 2 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bEnableMetallic: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} + - _EmissionColor: {r: 0.05497173, g: 0.08898153, b: 0.11280479, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _Specular: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.22033198, g: 0.41133347, b: 0.516, a: 0.453} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleBright.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleBright.mat index c7ae31d8e047e4ea9c42e860bcd83bb5ffefcdcd..f32b34f9b2f3cc0c773fa35dfa079318f1a0f5c3 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleBright.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleBright.mat @@ -1,169 +1,170 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-5684076641651466169 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaVisibleBright - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FalloffTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Illum: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShadowTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMask: 15 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.706 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _Emission: 0.01 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.38 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Stencil: 0 - - _StencilComp: 8 - - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bEnableMetallic: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} - - _EmissionColor: {r: 0.52702695, g: 0.6689188, b: 0.75, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _Specular: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.376465, g: 0.6063015, b: 0.731, a: 0.591} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5684076641651466169 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaVisibleBright + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FalloffTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Illum: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ShadowTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.706 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _Emission: 0.01 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.38 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bEnableMetallic: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.26374358, g: 0.6344103, b: 0.834, a: 0.61960787} + - _EmissionColor: {r: 0.23991506, g: 0.4049951, b: 0.5225216, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _Specular: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.376465, g: 0.6063015, b: 0.731, a: 0.591} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleLow.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleLow.mat index 245055ab2c9dde75390598bdaac21de6e25cd691..3d9e1501568ae616dae34eecafe058adfed51181 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleLow.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportAreaVisibleLow.mat @@ -1,170 +1,171 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-1073600979912063023 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportAreaVisibleLow - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - OriginalShader: Standard - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FalloffTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _Illum: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShadowTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMask: 15 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.505 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _Emission: 0.01 - - _EmissionScaleUI: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.358 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 2 - - _SrcBlend: 5 - - _Stencil: 0 - - _StencilComp: 8 - - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bEnableMetallic: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.18468371, g: 0.44423932, b: 0.584, a: 0.61960787} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.18468371, g: 0.44423932, b: 0.584, a: 0.61960787} - - _EmissionColor: {r: 0.096270256, g: 0.12218918, b: 0.137, a: 1} - - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - - _Specular: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.123541996, g: 0.2294351, b: 0.289, a: 1} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1073600979912063023 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportAreaVisibleLow + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + OriginalShader: Standard + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FalloffTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Illum: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: f33ccd07f9433f44f8c5430938b168ac, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ShadowTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.505 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _Emission: 0.01 + - _EmissionScaleUI: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.358 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 2 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bEnableMetallic: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.18468371, g: 0.44423932, b: 0.584, a: 0.61960787} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.18468371, g: 0.44423932, b: 0.584, a: 0.61960787} + - _EmissionColor: {r: 0.009453715, g: 0.013817938, b: 0.016753944, a: 1} + - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + - _Specular: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.123541996, g: 0.2294351, b: 0.289, a: 1} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlaySpace.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlaySpace.mat index 97a537f72d2feae725ffdaa90524f486a2e3f37f..5e01edfc202e61bedb1832f0e8767ffdc4b9d2ff 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlaySpace.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlaySpace.mat @@ -1,147 +1,148 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-4289032840873988415 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPlaySpace - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0.734 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _FogMultiplier: 1 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 2 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.25 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 0.45280647, g: 0.9191189, b: 0.45602244, a: 0.5} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0.45280647, g: 0.9191189, b: 0.45602244, a: 0.5} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _TintColor: {r: 0.295302, g: 0.534, b: 0.29694816, a: 1} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4289032840873988415 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPlaySpace + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0.734 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _FogMultiplier: 1 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.25 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 0.45280647, g: 0.9191189, b: 0.45602244, a: 0.5} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.45280647, g: 0.9191189, b: 0.45602244, a: 0.5} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _TintColor: {r: 0.295302, g: 0.534, b: 0.29694816, a: 1} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlayspaceVisualize.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlayspaceVisualize.mat index 73e160c931c4321e475f1954e9bad4a7341e4aca..991a75dd881a9c503b70f4dc3d4ec0e5085aed59 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlayspaceVisualize.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPlayspaceVisualize.mat @@ -1,117 +1,118 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPlayspaceVisualize - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 0.4509804, g: 0.91764706, b: 0.45490196, a: 0.409} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 0.409} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.4528006, g: 0.9191176, b: 0.45601654, a: 0.5} ---- !u!114 &8806228652130810946 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPlayspaceVisualize + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.4509804, g: 0.91764706, b: 0.45490196, a: 0.409} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0.409} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.4528006, g: 0.9191176, b: 0.45601654, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &8806228652130810946 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointHighlighted.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointHighlighted.mat index 16a82ead328b11e44902ed2d179698d769213fd8..03fc4872497b1e0156e4c81a0f5120fd8e4f1156 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointHighlighted.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointHighlighted.mat @@ -1,119 +1,120 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-1633497149923874356 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPointHighlighted - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.25 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 0.4509804, g: 0.91764706, b: 0.45490196, a: 0.5019608} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.4528006, g: 0.9191176, b: 0.45601654, a: 0.5} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1633497149923874356 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPointHighlighted + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.25 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.4509804, g: 0.91764706, b: 0.45490196, a: 0.5019608} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.4528006, g: 0.9191176, b: 0.45601654, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointInvalid.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointInvalid.mat index f41f8fd64c5a54dcdffa1e01b70eaf6c34a50ae3..4d38b9cbc968ba25a48aae80b95b18184728d060 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointInvalid.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointInvalid.mat @@ -1,146 +1,147 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPointInvalid - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - g_tOverrideLightmap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 2 - - _OcclusionStrength: 1 - - _OcclusionStrengthDirectDiffuse: 1 - - _OcclusionStrengthDirectSpecular: 1 - - _OcclusionStrengthIndirectDiffuse: 1 - - _OcclusionStrengthIndirectSpecular: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.504 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularMode: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - - g_bReceiveShadows: 1 - - g_bUnlit: 1 - - g_bWorldAlignedTexture: 0 - - g_flCubeMapScalar: 1 - - g_flReflectanceBias: 0 - - g_flReflectanceMax: 1 - - g_flReflectanceMin: 0 - - g_flReflectanceScale: 1 - m_Colors: - - _BaseColor: {r: 1, g: 0.13333334, b: 0.22352941, a: 0.5019608} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _TintColor: {r: 1, g: 0.13235295, b: 0.22210923, a: 0.578} - - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} - - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} - - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} - - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} - - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} ---- !u!114 &3918793284573391820 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPointInvalid + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - g_tOverrideLightmap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _OcclusionStrengthDirectDiffuse: 1 + - _OcclusionStrengthDirectSpecular: 1 + - _OcclusionStrengthIndirectDiffuse: 1 + - _OcclusionStrengthIndirectSpecular: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.504 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularMode: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + - g_bReceiveShadows: 1 + - g_bUnlit: 1 + - g_bWorldAlignedTexture: 0 + - g_flCubeMapScalar: 1 + - g_flReflectanceBias: 0 + - g_flReflectanceMax: 1 + - g_flReflectanceMin: 0 + - g_flReflectanceScale: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0.13333334, b: 0.22352941, a: 0.5019608} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _TintColor: {r: 1, g: 0.13235295, b: 0.22210923, a: 0.578} + - g_vWorldAlignedNormalTangentU: {r: -1, g: 0, b: 0, a: 0} + - g_vWorldAlignedNormalTangentV: {r: 0, g: 0, b: 1, a: 0} + - g_vWorldAlignedTextureNormal: {r: 0, g: 1, b: 0, a: 0} + - g_vWorldAlignedTexturePosition: {r: 0, g: 0, b: 0, a: 0} + - g_vWorldAlignedTextureSize: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &3918793284573391820 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointLocked.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointLocked.mat index 45eba934c33ef23e6b7dbb8b793915c713227439..7138785ad892bee2ee41a14ea7696723e4239429 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointLocked.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointLocked.mat @@ -1,119 +1,120 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPointLocked - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.25 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 0.7882353, g: 0.5529412, b: 0.13725491, a: 0.5019608} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.78677076, g: 0.55441344, b: 0.13885127, a: 0.5} ---- !u!114 &6968387836844925423 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPointLocked + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.25 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.7882353, g: 0.5529412, b: 0.13725491, a: 0.5019608} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.78677076, g: 0.55441344, b: 0.13885127, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &6968387836844925423 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointVisible.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointVisible.mat index 4943b9d879a3abfa80abdd57b583adeac8a793f4..9eb35b4d9e2f59bfb1188899bd4a5ab635240de6 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointVisible.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointVisible.mat @@ -1,119 +1,120 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-1432194099116309605 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPointVisible - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 1 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.388 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _InvFade: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.25 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 0.13725491, g: 0.6509804, b: 0.7882353, a: 0.5019608} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 0.13884604, g: 0.6527148, b: 0.7867677, a: 0.5} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1432194099116309605 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPointVisible + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ebc38d834b57e9d4d992de0a5470615a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.388 + - _Darken: 0 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.25 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.13725491, g: 0.6509804, b: 0.7882353, a: 0.5019608} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.13884604, g: 0.6527148, b: 0.7867677, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointer.mat b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointer.mat index 24a2d968017cfc21c23caa340aa9c3adf3ea8849..c0dc83312f9769c9bc61c7069788a90f9282831e 100644 --- a/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointer.mat +++ b/Assets/SteamVR/InteractionSystem/Teleport/Materials URP/URPTeleportPointer.mat @@ -1,119 +1,120 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8739648260452248667 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: URPTeleportPointer - m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3050 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - PixelSnap: 0 - - _AlphaClip: 0 - - _Blend: 2 - - _BlendOp: 0 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 0 - - _Cull: 0 - - _Cutoff: 0.5 - - _Darken: 0 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 0.5 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 1 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _Glossiness: 0.5 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _SeeThru: 0.35 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SrcBlend: 5 - - _Surface: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 0.5019608} - - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - _TintColor: {r: 1, g: 1, b: 1, a: 1} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8739648260452248667 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: URPTeleportPointer + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 2 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _Darken: 0 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _Glossiness: 0.5 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SeeThru: 0.35 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SrcBlend: 5 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0.5019608} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR/Resources/SteamVR_HoverHighlight_URP.mat b/Assets/SteamVR/Resources/SteamVR_HoverHighlight_URP.mat index 6d31e4cd7144441771fcf4f081f71952ff0697e5..bfcf7457019267c05c08b7e010233cbd1428fecd 100644 --- a/Assets/SteamVR/Resources/SteamVR_HoverHighlight_URP.mat +++ b/Assets/SteamVR/Resources/SteamVR_HoverHighlight_URP.mat @@ -1,141 +1,142 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8718944119123872729 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: SteamVR_HoverHighlight_URP - m_Shader: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3} - m_ShaderKeywords: _COLOROVERLAY_ON _RECEIVE_SHADOWS_OFF - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2051 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: ad562515403c3204cbdc9f1d5f899bfa, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: ad562515403c3204cbdc9f1d5f899bfa, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - Vector1_48F29B53: 0 - - Vector1_4E87E868: 10 - - Vector1_BC878080: 4 - - Vector1_E4DC2276: 1 - - _Alpha: 1 - - _AlphaClip: 0 - - _ApplyFog: 1 - - _Blend: 2 - - _BlendOp: 0 - - _Border: 10 - - _BumpScale: 1 - - _CameraFadingEnabled: 0 - - _CameraFarFadeDistance: 2 - - _CameraNearFadeDistance: 1 - - _ColorMode: 3 - - _CompensateScale: 1 - - _Coverage: 0 - - _Cull: 2 - - _Cutoff: 0.446 - - _DetailNormalMapScale: 1 - - _DistortionBlend: 1 - - _DistortionEnabled: 0 - - _DistortionStrength: 1 - - _DistortionStrengthScaled: 0.1 - - _DstBlend: 0 - - _FlipbookBlending: 0 - - _FlipbookMode: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _OutlineInScreenSpace: 0 - - _OutlineThickness: 1.1 - - _Parallax: 0.02 - - _QueueOffset: -1 - - _ReadMask: 1 - - _ReceiveShadows: 0 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SoftParticlesEnabled: 0 - - _SoftParticlesFarFadeDistance: 1 - - _SoftParticlesNearFadeDistance: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _StencilCompare: 6 - - _StencilRef: 1 - - _Surface: 0 - - _UVSec: 0 - - _ZTest: 8 - - _ZWrite: 1 - - g_flCornerAdjust: 0.5 - - g_flOutlineWidth: 0.005 - m_Colors: - - Color_B9F825DD: {r: 1, g: 0.93979645, b: 0, a: 0} - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} - - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0.65882355, b: 0.7490196, a: 1} - - _MainColor: {r: 1, g: 1, b: 0, a: 0} - - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - - g_vOutlineColor: {r: 0.94509804, g: 0.92156863, b: 0, a: 1} +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8718944119123872729 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SteamVR_HoverHighlight_URP + m_Shader: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3} + m_ShaderKeywords: _COLOROVERLAY_ON _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 1999 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ad562515403c3204cbdc9f1d5f899bfa, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: ad562515403c3204cbdc9f1d5f899bfa, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - Vector1_48F29B53: 0 + - Vector1_4E87E868: 10 + - Vector1_BC878080: 4 + - Vector1_E4DC2276: 1 + - _Alpha: 1 + - _AlphaClip: 0 + - _ApplyFog: 1 + - _Blend: 2 + - _BlendOp: 0 + - _Border: 10 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 3 + - _CompensateScale: 1 + - _Coverage: 0 + - _Cull: 2 + - _Cutoff: 0.446 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 1 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _OutlineInScreenSpace: 0 + - _OutlineThickness: 1.1 + - _Parallax: 0.02 + - _QueueOffset: -1 + - _ReadMask: 1 + - _ReceiveShadows: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _StencilCompare: 6 + - _StencilRef: 1 + - _Surface: 0 + - _UVSec: 0 + - _ZTest: 8 + - _ZWrite: 1 + - g_flCornerAdjust: 0.5 + - g_flOutlineWidth: 0.005 + m_Colors: + - Color_B9F825DD: {r: 1, g: 0.93979645, b: 0, a: 0} + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0.39157256, b: 0.5209957, a: 1} + - _MainColor: {r: 1, g: 1, b: 0, a: 0} + - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - g_vOutlineColor: {r: 0.94509804, g: 0.92156863, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/SteamVR_Input.meta b/Assets/SteamVR_Input.meta new file mode 100644 index 0000000000000000000000000000000000000000..f9f5fcd0f98076b5e43eacb8b292a38be3e6ea88 --- /dev/null +++ b/Assets/SteamVR_Input.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5aaa862d1b1e5a040890ec22a03e4520 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses.meta b/Assets/SteamVR_Input/ActionSetClasses.meta new file mode 100644 index 0000000000000000000000000000000000000000..155578d62da3f8b5ccbb7c7af5dda387f5f0e6eb --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3c21bcd32fa18c243a55a4dff904a7ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs new file mode 100644 index 0000000000000000000000000000000000000000..1e2799c082963f12564afd6d067bf877714fa19d --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_NewSet : Valve.VR.SteamVR_ActionSet + { + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..996bf292600a0fd4358809e606cf09cfa8c301fc --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_NewSet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9d27ced0fa375c42a3546077c82cb25 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs new file mode 100644 index 0000000000000000000000000000000000000000..688bc53695347215fc4d2004eb8592b9eed231ad --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_VR_Game : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Boolean GrabAction + { + get + { + return SteamVR_Actions.vR_Game_GrabAction; + } + } + + public virtual SteamVR_Action_Boolean WieldedObjectInteract + { + get + { + return SteamVR_Actions.vR_Game_WieldedObjectInteract; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..06c4593258d0dab81d1e334476a052e023040e20 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_VR_Game.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b1b57065bb01fb4b8365e49dbfb7ba5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs new file mode 100644 index 0000000000000000000000000000000000000000..ca2dda470f57b0ace2f6c821df2ba50b77bbc153 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_buggy : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Vector2 Steering + { + get + { + return SteamVR_Actions.buggy_Steering; + } + } + + public virtual SteamVR_Action_Single Throttle + { + get + { + return SteamVR_Actions.buggy_Throttle; + } + } + + public virtual SteamVR_Action_Boolean Brake + { + get + { + return SteamVR_Actions.buggy_Brake; + } + } + + public virtual SteamVR_Action_Boolean Reset + { + get + { + return SteamVR_Actions.buggy_Reset; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4eed4ec7e267bbff00f4594df2eaf5b13cf915c1 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_buggy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d674247304372d84e95996771409642a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs new file mode 100644 index 0000000000000000000000000000000000000000..12b14d8a77456b592568aa4e5abb567e5581fd6c --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs @@ -0,0 +1,116 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_default : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Boolean InteractUI + { + get + { + return SteamVR_Actions.default_InteractUI; + } + } + + public virtual SteamVR_Action_Boolean Teleport + { + get + { + return SteamVR_Actions.default_Teleport; + } + } + + public virtual SteamVR_Action_Boolean GrabPinch + { + get + { + return SteamVR_Actions.default_GrabPinch; + } + } + + public virtual SteamVR_Action_Boolean GrabGrip + { + get + { + return SteamVR_Actions.default_GrabGrip; + } + } + + public virtual SteamVR_Action_Pose Pose + { + get + { + return SteamVR_Actions.default_Pose; + } + } + + public virtual SteamVR_Action_Skeleton SkeletonLeftHand + { + get + { + return SteamVR_Actions.default_SkeletonLeftHand; + } + } + + public virtual SteamVR_Action_Skeleton SkeletonRightHand + { + get + { + return SteamVR_Actions.default_SkeletonRightHand; + } + } + + public virtual SteamVR_Action_Single Squeeze + { + get + { + return SteamVR_Actions.default_Squeeze; + } + } + + public virtual SteamVR_Action_Boolean HeadsetOnHead + { + get + { + return SteamVR_Actions.default_HeadsetOnHead; + } + } + + public virtual SteamVR_Action_Boolean SnapTurnLeft + { + get + { + return SteamVR_Actions.default_SnapTurnLeft; + } + } + + public virtual SteamVR_Action_Boolean SnapTurnRight + { + get + { + return SteamVR_Actions.default_SnapTurnRight; + } + } + + public virtual SteamVR_Action_Vibration Haptic + { + get + { + return SteamVR_Actions.default_Haptic; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..66a767b05828e6ffc1b796a7fdfa6e7098a33bba --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_default.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a05293c548ba28b46a1f15ec76d80c84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs new file mode 100644 index 0000000000000000000000000000000000000000..cef9c627c76dcc783c346517d81cc95b38110346 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs @@ -0,0 +1,356 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_htc_viu : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Boolean viu_press_00 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_00; + } + } + + public virtual SteamVR_Action_Boolean viu_press_01 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_01; + } + } + + public virtual SteamVR_Action_Boolean viu_press_02 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_02; + } + } + + public virtual SteamVR_Action_Boolean viu_press_03 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_03; + } + } + + public virtual SteamVR_Action_Boolean viu_press_04 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_04; + } + } + + public virtual SteamVR_Action_Boolean viu_press_05 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_05; + } + } + + public virtual SteamVR_Action_Boolean viu_press_06 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_06; + } + } + + public virtual SteamVR_Action_Boolean viu_press_07 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_07; + } + } + + public virtual SteamVR_Action_Boolean viu_press_31 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_31; + } + } + + public virtual SteamVR_Action_Boolean viu_press_32 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_32; + } + } + + public virtual SteamVR_Action_Boolean viu_press_33 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_33; + } + } + + public virtual SteamVR_Action_Boolean viu_press_34 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_34; + } + } + + public virtual SteamVR_Action_Boolean viu_press_35 + { + get + { + return SteamVR_Actions.htc_viu_viu_press_35; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_00 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_00; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_01 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_01; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_02 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_02; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_03 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_03; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_04 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_04; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_05 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_05; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_06 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_06; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_07 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_07; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_31 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_31; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_32 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_32; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_33 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_33; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_34 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_34; + } + } + + public virtual SteamVR_Action_Boolean viu_touch_35 + { + get + { + return SteamVR_Actions.htc_viu_viu_touch_35; + } + } + + public virtual SteamVR_Action_Single viu_axis_0x + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_0x; + } + } + + public virtual SteamVR_Action_Single viu_axis_0y + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_0y; + } + } + + public virtual SteamVR_Action_Single viu_axis_1x + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_1x; + } + } + + public virtual SteamVR_Action_Single viu_axis_1y + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_1y; + } + } + + public virtual SteamVR_Action_Single viu_axis_2x + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_2x; + } + } + + public virtual SteamVR_Action_Single viu_axis_2y + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_2y; + } + } + + public virtual SteamVR_Action_Single viu_axis_3x + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_3x; + } + } + + public virtual SteamVR_Action_Single viu_axis_3y + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_3y; + } + } + + public virtual SteamVR_Action_Single viu_axis_4x + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_4x; + } + } + + public virtual SteamVR_Action_Single viu_axis_4y + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_4y; + } + } + + public virtual SteamVR_Action_Vector2 viu_axis_0xy + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_0xy; + } + } + + public virtual SteamVR_Action_Vector2 viu_axis_1xy + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_1xy; + } + } + + public virtual SteamVR_Action_Vector2 viu_axis_2xy + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_2xy; + } + } + + public virtual SteamVR_Action_Vector2 viu_axis_3xy + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_3xy; + } + } + + public virtual SteamVR_Action_Vector2 viu_axis_4xy + { + get + { + return SteamVR_Actions.htc_viu_viu_axis_4xy; + } + } + + public virtual SteamVR_Action_Vibration viu_vib_01 + { + get + { + return SteamVR_Actions.htc_viu_viu_vib_01; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7ca6d844f9772ae3c024cb4322a5afd8c392c277 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_htc_viu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27dadcff567926e448f6b42a0b980911 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs new file mode 100644 index 0000000000000000000000000000000000000000..3f343374a7c1f96788a6fedcaac194a33c3f8686 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_mixedreality : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Pose ExternalCamera + { + get + { + return SteamVR_Actions.mixedreality_ExternalCamera; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..dd43f1a6f3201ba48bac6e4203d64a8308a8b092 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_mixedreality.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba2ecc3d4faf6ec4180ac0abd9992781 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs new file mode 100644 index 0000000000000000000000000000000000000000..fc5d99061984ea50a758727bc9c8372e4f9a42b8 --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public class SteamVR_Input_ActionSet_platformer : Valve.VR.SteamVR_ActionSet + { + + public virtual SteamVR_Action_Vector2 Move + { + get + { + return SteamVR_Actions.platformer_Move; + } + } + + public virtual SteamVR_Action_Boolean Jump + { + get + { + return SteamVR_Actions.platformer_Jump; + } + } + } +} diff --git a/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs.meta b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2aeb8442ab5732fceb2e219ee9ab9c8346570dfb --- /dev/null +++ b/Assets/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_platformer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c042065f21cc02439b296e57ff7b0ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/SteamVR_Actions.asmdef b/Assets/SteamVR_Input/SteamVR_Actions.asmdef new file mode 100644 index 0000000000000000000000000000000000000000..72aa284eb30c8e73ee69231490f1ccbedece1a26 --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Actions.asmdef @@ -0,0 +1,16 @@ +{ + "name": "SteamVR_Actions", + "references": [ + "SteamVR" + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [ + "Android" + ], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Assets/SteamVR_Input/SteamVR_Actions.asmdef.meta b/Assets/SteamVR_Input/SteamVR_Actions.asmdef.meta new file mode 100644 index 0000000000000000000000000000000000000000..59cbf4cc1c365cc7e6643428ff5a3d8a41d14946 --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Actions.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7447f80097d69444bb2d3983ffeee8c7 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs b/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs new file mode 100644 index 0000000000000000000000000000000000000000..cc8561b64db2b177e44cd6b9a4b605a54e67d6e6 --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs @@ -0,0 +1,109 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public partial class SteamVR_Actions + { + + private static SteamVR_Input_ActionSet_default p__default; + + private static SteamVR_Input_ActionSet_platformer p_platformer; + + private static SteamVR_Input_ActionSet_buggy p_buggy; + + private static SteamVR_Input_ActionSet_mixedreality p_mixedreality; + + private static SteamVR_Input_ActionSet_NewSet p_NewSet; + + private static SteamVR_Input_ActionSet_VR_Game p_VR_Game; + + private static SteamVR_Input_ActionSet_htc_viu p_htc_viu; + + public static SteamVR_Input_ActionSet_default _default + { + get + { + return SteamVR_Actions.p__default.GetCopy<SteamVR_Input_ActionSet_default>(); + } + } + + public static SteamVR_Input_ActionSet_platformer platformer + { + get + { + return SteamVR_Actions.p_platformer.GetCopy<SteamVR_Input_ActionSet_platformer>(); + } + } + + public static SteamVR_Input_ActionSet_buggy buggy + { + get + { + return SteamVR_Actions.p_buggy.GetCopy<SteamVR_Input_ActionSet_buggy>(); + } + } + + public static SteamVR_Input_ActionSet_mixedreality mixedreality + { + get + { + return SteamVR_Actions.p_mixedreality.GetCopy<SteamVR_Input_ActionSet_mixedreality>(); + } + } + + public static SteamVR_Input_ActionSet_NewSet NewSet + { + get + { + return SteamVR_Actions.p_NewSet.GetCopy<SteamVR_Input_ActionSet_NewSet>(); + } + } + + public static SteamVR_Input_ActionSet_VR_Game VR_Game + { + get + { + return SteamVR_Actions.p_VR_Game.GetCopy<SteamVR_Input_ActionSet_VR_Game>(); + } + } + + public static SteamVR_Input_ActionSet_htc_viu htc_viu + { + get + { + return SteamVR_Actions.p_htc_viu.GetCopy<SteamVR_Input_ActionSet_htc_viu>(); + } + } + + private static void StartPreInitActionSets() + { + SteamVR_Actions.p__default = ((SteamVR_Input_ActionSet_default)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_default>("/actions/default"))); + SteamVR_Actions.p_platformer = ((SteamVR_Input_ActionSet_platformer)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_platformer>("/actions/platformer"))); + SteamVR_Actions.p_buggy = ((SteamVR_Input_ActionSet_buggy)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_buggy>("/actions/buggy"))); + SteamVR_Actions.p_mixedreality = ((SteamVR_Input_ActionSet_mixedreality)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_mixedreality>("/actions/mixedreality"))); + SteamVR_Actions.p_NewSet = ((SteamVR_Input_ActionSet_NewSet)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_NewSet>("/actions/NewSet"))); + SteamVR_Actions.p_VR_Game = ((SteamVR_Input_ActionSet_VR_Game)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_VR_Game>("/actions/VR_Game"))); + SteamVR_Actions.p_htc_viu = ((SteamVR_Input_ActionSet_htc_viu)(SteamVR_ActionSet.Create<SteamVR_Input_ActionSet_htc_viu>("/actions/htc_viu"))); + Valve.VR.SteamVR_Input.actionSets = new Valve.VR.SteamVR_ActionSet[] { + SteamVR_Actions._default, + SteamVR_Actions.platformer, + SteamVR_Actions.buggy, + SteamVR_Actions.mixedreality, + SteamVR_Actions.NewSet, + SteamVR_Actions.VR_Game, + SteamVR_Actions.htc_viu}; + } + } +} diff --git a/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs.meta b/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ad62ba9a8e7192f21c500ab18ccbe5fa3a2a54f3 --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_ActionSets.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cf0b4e57a3b42ab4981952575b3ca391 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/SteamVR_Input_Actions.cs b/Assets/SteamVR_Input/SteamVR_Input_Actions.cs new file mode 100644 index 0000000000000000000000000000000000000000..4e8d4ebacba532d967f78c59388aaa59d92679bf --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_Actions.cs @@ -0,0 +1,978 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public partial class SteamVR_Actions + { + + private static SteamVR_Action_Boolean p_default_InteractUI; + + private static SteamVR_Action_Boolean p_default_Teleport; + + private static SteamVR_Action_Boolean p_default_GrabPinch; + + private static SteamVR_Action_Boolean p_default_GrabGrip; + + private static SteamVR_Action_Pose p_default_Pose; + + private static SteamVR_Action_Skeleton p_default_SkeletonLeftHand; + + private static SteamVR_Action_Skeleton p_default_SkeletonRightHand; + + private static SteamVR_Action_Single p_default_Squeeze; + + private static SteamVR_Action_Boolean p_default_HeadsetOnHead; + + private static SteamVR_Action_Boolean p_default_SnapTurnLeft; + + private static SteamVR_Action_Boolean p_default_SnapTurnRight; + + private static SteamVR_Action_Vibration p_default_Haptic; + + private static SteamVR_Action_Vector2 p_platformer_Move; + + private static SteamVR_Action_Boolean p_platformer_Jump; + + private static SteamVR_Action_Vector2 p_buggy_Steering; + + private static SteamVR_Action_Single p_buggy_Throttle; + + private static SteamVR_Action_Boolean p_buggy_Brake; + + private static SteamVR_Action_Boolean p_buggy_Reset; + + private static SteamVR_Action_Pose p_mixedreality_ExternalCamera; + + private static SteamVR_Action_Boolean p_vR_Game_GrabAction; + + private static SteamVR_Action_Boolean p_vR_Game_WieldedObjectInteract; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_00; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_01; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_02; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_03; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_04; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_05; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_06; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_07; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_31; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_32; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_33; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_34; + + private static SteamVR_Action_Boolean p_htc_viu_viu_press_35; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_00; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_01; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_02; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_03; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_04; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_05; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_06; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_07; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_31; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_32; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_33; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_34; + + private static SteamVR_Action_Boolean p_htc_viu_viu_touch_35; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_0x; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_0y; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_1x; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_1y; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_2x; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_2y; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_3x; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_3y; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_4x; + + private static SteamVR_Action_Single p_htc_viu_viu_axis_4y; + + private static SteamVR_Action_Vector2 p_htc_viu_viu_axis_0xy; + + private static SteamVR_Action_Vector2 p_htc_viu_viu_axis_1xy; + + private static SteamVR_Action_Vector2 p_htc_viu_viu_axis_2xy; + + private static SteamVR_Action_Vector2 p_htc_viu_viu_axis_3xy; + + private static SteamVR_Action_Vector2 p_htc_viu_viu_axis_4xy; + + private static SteamVR_Action_Vibration p_htc_viu_viu_vib_01; + + public static SteamVR_Action_Boolean default_InteractUI + { + get + { + return SteamVR_Actions.p_default_InteractUI.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean default_Teleport + { + get + { + return SteamVR_Actions.p_default_Teleport.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean default_GrabPinch + { + get + { + return SteamVR_Actions.p_default_GrabPinch.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean default_GrabGrip + { + get + { + return SteamVR_Actions.p_default_GrabGrip.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Pose default_Pose + { + get + { + return SteamVR_Actions.p_default_Pose.GetCopy<SteamVR_Action_Pose>(); + } + } + + public static SteamVR_Action_Skeleton default_SkeletonLeftHand + { + get + { + return SteamVR_Actions.p_default_SkeletonLeftHand.GetCopy<SteamVR_Action_Skeleton>(); + } + } + + public static SteamVR_Action_Skeleton default_SkeletonRightHand + { + get + { + return SteamVR_Actions.p_default_SkeletonRightHand.GetCopy<SteamVR_Action_Skeleton>(); + } + } + + public static SteamVR_Action_Single default_Squeeze + { + get + { + return SteamVR_Actions.p_default_Squeeze.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Boolean default_HeadsetOnHead + { + get + { + return SteamVR_Actions.p_default_HeadsetOnHead.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean default_SnapTurnLeft + { + get + { + return SteamVR_Actions.p_default_SnapTurnLeft.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean default_SnapTurnRight + { + get + { + return SteamVR_Actions.p_default_SnapTurnRight.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Vibration default_Haptic + { + get + { + return SteamVR_Actions.p_default_Haptic.GetCopy<SteamVR_Action_Vibration>(); + } + } + + public static SteamVR_Action_Vector2 platformer_Move + { + get + { + return SteamVR_Actions.p_platformer_Move.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Boolean platformer_Jump + { + get + { + return SteamVR_Actions.p_platformer_Jump.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Vector2 buggy_Steering + { + get + { + return SteamVR_Actions.p_buggy_Steering.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Single buggy_Throttle + { + get + { + return SteamVR_Actions.p_buggy_Throttle.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Boolean buggy_Brake + { + get + { + return SteamVR_Actions.p_buggy_Brake.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean buggy_Reset + { + get + { + return SteamVR_Actions.p_buggy_Reset.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Pose mixedreality_ExternalCamera + { + get + { + return SteamVR_Actions.p_mixedreality_ExternalCamera.GetCopy<SteamVR_Action_Pose>(); + } + } + + public static SteamVR_Action_Boolean vR_Game_GrabAction + { + get + { + return SteamVR_Actions.p_vR_Game_GrabAction.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean vR_Game_WieldedObjectInteract + { + get + { + return SteamVR_Actions.p_vR_Game_WieldedObjectInteract.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_00 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_00.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_01 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_01.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_02 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_02.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_03 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_03.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_04 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_04.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_05 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_05.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_06 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_06.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_07 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_07.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_31 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_31.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_32 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_32.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_33 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_33.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_34 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_34.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_press_35 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_press_35.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_00 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_00.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_01 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_01.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_02 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_02.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_03 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_03.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_04 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_04.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_05 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_05.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_06 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_06.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_07 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_07.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_31 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_31.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_32 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_32.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_33 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_33.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_34 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_34.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Boolean htc_viu_viu_touch_35 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_touch_35.GetCopy<SteamVR_Action_Boolean>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_0x + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_0x.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_0y + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_0y.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_1x + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_1x.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_1y + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_1y.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_2x + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_2x.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_2y + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_2y.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_3x + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_3x.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_3y + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_3y.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_4x + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_4x.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Single htc_viu_viu_axis_4y + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_4y.GetCopy<SteamVR_Action_Single>(); + } + } + + public static SteamVR_Action_Vector2 htc_viu_viu_axis_0xy + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_0xy.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Vector2 htc_viu_viu_axis_1xy + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_1xy.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Vector2 htc_viu_viu_axis_2xy + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_2xy.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Vector2 htc_viu_viu_axis_3xy + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_3xy.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Vector2 htc_viu_viu_axis_4xy + { + get + { + return SteamVR_Actions.p_htc_viu_viu_axis_4xy.GetCopy<SteamVR_Action_Vector2>(); + } + } + + public static SteamVR_Action_Vibration htc_viu_viu_vib_01 + { + get + { + return SteamVR_Actions.p_htc_viu_viu_vib_01.GetCopy<SteamVR_Action_Vibration>(); + } + } + + private static void InitializeActionArrays() + { + Valve.VR.SteamVR_Input.actions = new Valve.VR.SteamVR_Action[] { + SteamVR_Actions.default_InteractUI, + SteamVR_Actions.default_Teleport, + SteamVR_Actions.default_GrabPinch, + SteamVR_Actions.default_GrabGrip, + SteamVR_Actions.default_Pose, + SteamVR_Actions.default_SkeletonLeftHand, + SteamVR_Actions.default_SkeletonRightHand, + SteamVR_Actions.default_Squeeze, + SteamVR_Actions.default_HeadsetOnHead, + SteamVR_Actions.default_SnapTurnLeft, + SteamVR_Actions.default_SnapTurnRight, + SteamVR_Actions.default_Haptic, + SteamVR_Actions.platformer_Move, + SteamVR_Actions.platformer_Jump, + SteamVR_Actions.buggy_Steering, + SteamVR_Actions.buggy_Throttle, + SteamVR_Actions.buggy_Brake, + SteamVR_Actions.buggy_Reset, + SteamVR_Actions.mixedreality_ExternalCamera, + SteamVR_Actions.vR_Game_GrabAction, + SteamVR_Actions.vR_Game_WieldedObjectInteract, + SteamVR_Actions.htc_viu_viu_press_00, + SteamVR_Actions.htc_viu_viu_press_01, + SteamVR_Actions.htc_viu_viu_press_02, + SteamVR_Actions.htc_viu_viu_press_03, + SteamVR_Actions.htc_viu_viu_press_04, + SteamVR_Actions.htc_viu_viu_press_05, + SteamVR_Actions.htc_viu_viu_press_06, + SteamVR_Actions.htc_viu_viu_press_07, + SteamVR_Actions.htc_viu_viu_press_31, + SteamVR_Actions.htc_viu_viu_press_32, + SteamVR_Actions.htc_viu_viu_press_33, + SteamVR_Actions.htc_viu_viu_press_34, + SteamVR_Actions.htc_viu_viu_press_35, + SteamVR_Actions.htc_viu_viu_touch_00, + SteamVR_Actions.htc_viu_viu_touch_01, + SteamVR_Actions.htc_viu_viu_touch_02, + SteamVR_Actions.htc_viu_viu_touch_03, + SteamVR_Actions.htc_viu_viu_touch_04, + SteamVR_Actions.htc_viu_viu_touch_05, + SteamVR_Actions.htc_viu_viu_touch_06, + SteamVR_Actions.htc_viu_viu_touch_07, + SteamVR_Actions.htc_viu_viu_touch_31, + SteamVR_Actions.htc_viu_viu_touch_32, + SteamVR_Actions.htc_viu_viu_touch_33, + SteamVR_Actions.htc_viu_viu_touch_34, + SteamVR_Actions.htc_viu_viu_touch_35, + SteamVR_Actions.htc_viu_viu_axis_0x, + SteamVR_Actions.htc_viu_viu_axis_0y, + SteamVR_Actions.htc_viu_viu_axis_1x, + SteamVR_Actions.htc_viu_viu_axis_1y, + SteamVR_Actions.htc_viu_viu_axis_2x, + SteamVR_Actions.htc_viu_viu_axis_2y, + SteamVR_Actions.htc_viu_viu_axis_3x, + SteamVR_Actions.htc_viu_viu_axis_3y, + SteamVR_Actions.htc_viu_viu_axis_4x, + SteamVR_Actions.htc_viu_viu_axis_4y, + SteamVR_Actions.htc_viu_viu_axis_0xy, + SteamVR_Actions.htc_viu_viu_axis_1xy, + SteamVR_Actions.htc_viu_viu_axis_2xy, + SteamVR_Actions.htc_viu_viu_axis_3xy, + SteamVR_Actions.htc_viu_viu_axis_4xy, + SteamVR_Actions.htc_viu_viu_vib_01}; + Valve.VR.SteamVR_Input.actionsIn = new Valve.VR.ISteamVR_Action_In[] { + SteamVR_Actions.default_InteractUI, + SteamVR_Actions.default_Teleport, + SteamVR_Actions.default_GrabPinch, + SteamVR_Actions.default_GrabGrip, + SteamVR_Actions.default_Pose, + SteamVR_Actions.default_SkeletonLeftHand, + SteamVR_Actions.default_SkeletonRightHand, + SteamVR_Actions.default_Squeeze, + SteamVR_Actions.default_HeadsetOnHead, + SteamVR_Actions.default_SnapTurnLeft, + SteamVR_Actions.default_SnapTurnRight, + SteamVR_Actions.platformer_Move, + SteamVR_Actions.platformer_Jump, + SteamVR_Actions.buggy_Steering, + SteamVR_Actions.buggy_Throttle, + SteamVR_Actions.buggy_Brake, + SteamVR_Actions.buggy_Reset, + SteamVR_Actions.mixedreality_ExternalCamera, + SteamVR_Actions.vR_Game_GrabAction, + SteamVR_Actions.vR_Game_WieldedObjectInteract, + SteamVR_Actions.htc_viu_viu_press_00, + SteamVR_Actions.htc_viu_viu_press_01, + SteamVR_Actions.htc_viu_viu_press_02, + SteamVR_Actions.htc_viu_viu_press_03, + SteamVR_Actions.htc_viu_viu_press_04, + SteamVR_Actions.htc_viu_viu_press_05, + SteamVR_Actions.htc_viu_viu_press_06, + SteamVR_Actions.htc_viu_viu_press_07, + SteamVR_Actions.htc_viu_viu_press_31, + SteamVR_Actions.htc_viu_viu_press_32, + SteamVR_Actions.htc_viu_viu_press_33, + SteamVR_Actions.htc_viu_viu_press_34, + SteamVR_Actions.htc_viu_viu_press_35, + SteamVR_Actions.htc_viu_viu_touch_00, + SteamVR_Actions.htc_viu_viu_touch_01, + SteamVR_Actions.htc_viu_viu_touch_02, + SteamVR_Actions.htc_viu_viu_touch_03, + SteamVR_Actions.htc_viu_viu_touch_04, + SteamVR_Actions.htc_viu_viu_touch_05, + SteamVR_Actions.htc_viu_viu_touch_06, + SteamVR_Actions.htc_viu_viu_touch_07, + SteamVR_Actions.htc_viu_viu_touch_31, + SteamVR_Actions.htc_viu_viu_touch_32, + SteamVR_Actions.htc_viu_viu_touch_33, + SteamVR_Actions.htc_viu_viu_touch_34, + SteamVR_Actions.htc_viu_viu_touch_35, + SteamVR_Actions.htc_viu_viu_axis_0x, + SteamVR_Actions.htc_viu_viu_axis_0y, + SteamVR_Actions.htc_viu_viu_axis_1x, + SteamVR_Actions.htc_viu_viu_axis_1y, + SteamVR_Actions.htc_viu_viu_axis_2x, + SteamVR_Actions.htc_viu_viu_axis_2y, + SteamVR_Actions.htc_viu_viu_axis_3x, + SteamVR_Actions.htc_viu_viu_axis_3y, + SteamVR_Actions.htc_viu_viu_axis_4x, + SteamVR_Actions.htc_viu_viu_axis_4y, + SteamVR_Actions.htc_viu_viu_axis_0xy, + SteamVR_Actions.htc_viu_viu_axis_1xy, + SteamVR_Actions.htc_viu_viu_axis_2xy, + SteamVR_Actions.htc_viu_viu_axis_3xy, + SteamVR_Actions.htc_viu_viu_axis_4xy}; + Valve.VR.SteamVR_Input.actionsOut = new Valve.VR.ISteamVR_Action_Out[] { + SteamVR_Actions.default_Haptic, + SteamVR_Actions.htc_viu_viu_vib_01}; + Valve.VR.SteamVR_Input.actionsVibration = new Valve.VR.SteamVR_Action_Vibration[] { + SteamVR_Actions.default_Haptic, + SteamVR_Actions.htc_viu_viu_vib_01}; + Valve.VR.SteamVR_Input.actionsPose = new Valve.VR.SteamVR_Action_Pose[] { + SteamVR_Actions.default_Pose, + SteamVR_Actions.mixedreality_ExternalCamera}; + Valve.VR.SteamVR_Input.actionsBoolean = new Valve.VR.SteamVR_Action_Boolean[] { + SteamVR_Actions.default_InteractUI, + SteamVR_Actions.default_Teleport, + SteamVR_Actions.default_GrabPinch, + SteamVR_Actions.default_GrabGrip, + SteamVR_Actions.default_HeadsetOnHead, + SteamVR_Actions.default_SnapTurnLeft, + SteamVR_Actions.default_SnapTurnRight, + SteamVR_Actions.platformer_Jump, + SteamVR_Actions.buggy_Brake, + SteamVR_Actions.buggy_Reset, + SteamVR_Actions.vR_Game_GrabAction, + SteamVR_Actions.vR_Game_WieldedObjectInteract, + SteamVR_Actions.htc_viu_viu_press_00, + SteamVR_Actions.htc_viu_viu_press_01, + SteamVR_Actions.htc_viu_viu_press_02, + SteamVR_Actions.htc_viu_viu_press_03, + SteamVR_Actions.htc_viu_viu_press_04, + SteamVR_Actions.htc_viu_viu_press_05, + SteamVR_Actions.htc_viu_viu_press_06, + SteamVR_Actions.htc_viu_viu_press_07, + SteamVR_Actions.htc_viu_viu_press_31, + SteamVR_Actions.htc_viu_viu_press_32, + SteamVR_Actions.htc_viu_viu_press_33, + SteamVR_Actions.htc_viu_viu_press_34, + SteamVR_Actions.htc_viu_viu_press_35, + SteamVR_Actions.htc_viu_viu_touch_00, + SteamVR_Actions.htc_viu_viu_touch_01, + SteamVR_Actions.htc_viu_viu_touch_02, + SteamVR_Actions.htc_viu_viu_touch_03, + SteamVR_Actions.htc_viu_viu_touch_04, + SteamVR_Actions.htc_viu_viu_touch_05, + SteamVR_Actions.htc_viu_viu_touch_06, + SteamVR_Actions.htc_viu_viu_touch_07, + SteamVR_Actions.htc_viu_viu_touch_31, + SteamVR_Actions.htc_viu_viu_touch_32, + SteamVR_Actions.htc_viu_viu_touch_33, + SteamVR_Actions.htc_viu_viu_touch_34, + SteamVR_Actions.htc_viu_viu_touch_35}; + Valve.VR.SteamVR_Input.actionsSingle = new Valve.VR.SteamVR_Action_Single[] { + SteamVR_Actions.default_Squeeze, + SteamVR_Actions.buggy_Throttle, + SteamVR_Actions.htc_viu_viu_axis_0x, + SteamVR_Actions.htc_viu_viu_axis_0y, + SteamVR_Actions.htc_viu_viu_axis_1x, + SteamVR_Actions.htc_viu_viu_axis_1y, + SteamVR_Actions.htc_viu_viu_axis_2x, + SteamVR_Actions.htc_viu_viu_axis_2y, + SteamVR_Actions.htc_viu_viu_axis_3x, + SteamVR_Actions.htc_viu_viu_axis_3y, + SteamVR_Actions.htc_viu_viu_axis_4x, + SteamVR_Actions.htc_viu_viu_axis_4y}; + Valve.VR.SteamVR_Input.actionsVector2 = new Valve.VR.SteamVR_Action_Vector2[] { + SteamVR_Actions.platformer_Move, + SteamVR_Actions.buggy_Steering, + SteamVR_Actions.htc_viu_viu_axis_0xy, + SteamVR_Actions.htc_viu_viu_axis_1xy, + SteamVR_Actions.htc_viu_viu_axis_2xy, + SteamVR_Actions.htc_viu_viu_axis_3xy, + SteamVR_Actions.htc_viu_viu_axis_4xy}; + Valve.VR.SteamVR_Input.actionsVector3 = new Valve.VR.SteamVR_Action_Vector3[0]; + Valve.VR.SteamVR_Input.actionsSkeleton = new Valve.VR.SteamVR_Action_Skeleton[] { + SteamVR_Actions.default_SkeletonLeftHand, + SteamVR_Actions.default_SkeletonRightHand}; + Valve.VR.SteamVR_Input.actionsNonPoseNonSkeletonIn = new Valve.VR.ISteamVR_Action_In[] { + SteamVR_Actions.default_InteractUI, + SteamVR_Actions.default_Teleport, + SteamVR_Actions.default_GrabPinch, + SteamVR_Actions.default_GrabGrip, + SteamVR_Actions.default_Squeeze, + SteamVR_Actions.default_HeadsetOnHead, + SteamVR_Actions.default_SnapTurnLeft, + SteamVR_Actions.default_SnapTurnRight, + SteamVR_Actions.platformer_Move, + SteamVR_Actions.platformer_Jump, + SteamVR_Actions.buggy_Steering, + SteamVR_Actions.buggy_Throttle, + SteamVR_Actions.buggy_Brake, + SteamVR_Actions.buggy_Reset, + SteamVR_Actions.vR_Game_GrabAction, + SteamVR_Actions.vR_Game_WieldedObjectInteract, + SteamVR_Actions.htc_viu_viu_press_00, + SteamVR_Actions.htc_viu_viu_press_01, + SteamVR_Actions.htc_viu_viu_press_02, + SteamVR_Actions.htc_viu_viu_press_03, + SteamVR_Actions.htc_viu_viu_press_04, + SteamVR_Actions.htc_viu_viu_press_05, + SteamVR_Actions.htc_viu_viu_press_06, + SteamVR_Actions.htc_viu_viu_press_07, + SteamVR_Actions.htc_viu_viu_press_31, + SteamVR_Actions.htc_viu_viu_press_32, + SteamVR_Actions.htc_viu_viu_press_33, + SteamVR_Actions.htc_viu_viu_press_34, + SteamVR_Actions.htc_viu_viu_press_35, + SteamVR_Actions.htc_viu_viu_touch_00, + SteamVR_Actions.htc_viu_viu_touch_01, + SteamVR_Actions.htc_viu_viu_touch_02, + SteamVR_Actions.htc_viu_viu_touch_03, + SteamVR_Actions.htc_viu_viu_touch_04, + SteamVR_Actions.htc_viu_viu_touch_05, + SteamVR_Actions.htc_viu_viu_touch_06, + SteamVR_Actions.htc_viu_viu_touch_07, + SteamVR_Actions.htc_viu_viu_touch_31, + SteamVR_Actions.htc_viu_viu_touch_32, + SteamVR_Actions.htc_viu_viu_touch_33, + SteamVR_Actions.htc_viu_viu_touch_34, + SteamVR_Actions.htc_viu_viu_touch_35, + SteamVR_Actions.htc_viu_viu_axis_0x, + SteamVR_Actions.htc_viu_viu_axis_0y, + SteamVR_Actions.htc_viu_viu_axis_1x, + SteamVR_Actions.htc_viu_viu_axis_1y, + SteamVR_Actions.htc_viu_viu_axis_2x, + SteamVR_Actions.htc_viu_viu_axis_2y, + SteamVR_Actions.htc_viu_viu_axis_3x, + SteamVR_Actions.htc_viu_viu_axis_3y, + SteamVR_Actions.htc_viu_viu_axis_4x, + SteamVR_Actions.htc_viu_viu_axis_4y, + SteamVR_Actions.htc_viu_viu_axis_0xy, + SteamVR_Actions.htc_viu_viu_axis_1xy, + SteamVR_Actions.htc_viu_viu_axis_2xy, + SteamVR_Actions.htc_viu_viu_axis_3xy, + SteamVR_Actions.htc_viu_viu_axis_4xy}; + } + + private static void PreInitActions() + { + SteamVR_Actions.p_default_InteractUI = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/InteractUI"))); + SteamVR_Actions.p_default_Teleport = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/Teleport"))); + SteamVR_Actions.p_default_GrabPinch = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/GrabPinch"))); + SteamVR_Actions.p_default_GrabGrip = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/GrabGrip"))); + SteamVR_Actions.p_default_Pose = ((SteamVR_Action_Pose)(SteamVR_Action.Create<SteamVR_Action_Pose>("/actions/default/in/Pose"))); + SteamVR_Actions.p_default_SkeletonLeftHand = ((SteamVR_Action_Skeleton)(SteamVR_Action.Create<SteamVR_Action_Skeleton>("/actions/default/in/SkeletonLeftHand"))); + SteamVR_Actions.p_default_SkeletonRightHand = ((SteamVR_Action_Skeleton)(SteamVR_Action.Create<SteamVR_Action_Skeleton>("/actions/default/in/SkeletonRightHand"))); + SteamVR_Actions.p_default_Squeeze = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/default/in/Squeeze"))); + SteamVR_Actions.p_default_HeadsetOnHead = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/HeadsetOnHead"))); + SteamVR_Actions.p_default_SnapTurnLeft = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/SnapTurnLeft"))); + SteamVR_Actions.p_default_SnapTurnRight = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/default/in/SnapTurnRight"))); + SteamVR_Actions.p_default_Haptic = ((SteamVR_Action_Vibration)(SteamVR_Action.Create<SteamVR_Action_Vibration>("/actions/default/out/Haptic"))); + SteamVR_Actions.p_platformer_Move = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/platformer/in/Move"))); + SteamVR_Actions.p_platformer_Jump = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/platformer/in/Jump"))); + SteamVR_Actions.p_buggy_Steering = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/buggy/in/Steering"))); + SteamVR_Actions.p_buggy_Throttle = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/buggy/in/Throttle"))); + SteamVR_Actions.p_buggy_Brake = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/buggy/in/Brake"))); + SteamVR_Actions.p_buggy_Reset = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/buggy/in/Reset"))); + SteamVR_Actions.p_mixedreality_ExternalCamera = ((SteamVR_Action_Pose)(SteamVR_Action.Create<SteamVR_Action_Pose>("/actions/mixedreality/in/ExternalCamera"))); + SteamVR_Actions.p_vR_Game_GrabAction = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/VR_Game/in/GrabAction"))); + SteamVR_Actions.p_vR_Game_WieldedObjectInteract = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/VR_Game/in/WieldedObjectInteract"))); + SteamVR_Actions.p_htc_viu_viu_press_00 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_00"))); + SteamVR_Actions.p_htc_viu_viu_press_01 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_01"))); + SteamVR_Actions.p_htc_viu_viu_press_02 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_02"))); + SteamVR_Actions.p_htc_viu_viu_press_03 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_03"))); + SteamVR_Actions.p_htc_viu_viu_press_04 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_04"))); + SteamVR_Actions.p_htc_viu_viu_press_05 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_05"))); + SteamVR_Actions.p_htc_viu_viu_press_06 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_06"))); + SteamVR_Actions.p_htc_viu_viu_press_07 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_07"))); + SteamVR_Actions.p_htc_viu_viu_press_31 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_31"))); + SteamVR_Actions.p_htc_viu_viu_press_32 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_32"))); + SteamVR_Actions.p_htc_viu_viu_press_33 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_33"))); + SteamVR_Actions.p_htc_viu_viu_press_34 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_34"))); + SteamVR_Actions.p_htc_viu_viu_press_35 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_press_35"))); + SteamVR_Actions.p_htc_viu_viu_touch_00 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_00"))); + SteamVR_Actions.p_htc_viu_viu_touch_01 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_01"))); + SteamVR_Actions.p_htc_viu_viu_touch_02 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_02"))); + SteamVR_Actions.p_htc_viu_viu_touch_03 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_03"))); + SteamVR_Actions.p_htc_viu_viu_touch_04 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_04"))); + SteamVR_Actions.p_htc_viu_viu_touch_05 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_05"))); + SteamVR_Actions.p_htc_viu_viu_touch_06 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_06"))); + SteamVR_Actions.p_htc_viu_viu_touch_07 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_07"))); + SteamVR_Actions.p_htc_viu_viu_touch_31 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_31"))); + SteamVR_Actions.p_htc_viu_viu_touch_32 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_32"))); + SteamVR_Actions.p_htc_viu_viu_touch_33 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_33"))); + SteamVR_Actions.p_htc_viu_viu_touch_34 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_34"))); + SteamVR_Actions.p_htc_viu_viu_touch_35 = ((SteamVR_Action_Boolean)(SteamVR_Action.Create<SteamVR_Action_Boolean>("/actions/htc_viu/in/viu_touch_35"))); + SteamVR_Actions.p_htc_viu_viu_axis_0x = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_0x"))); + SteamVR_Actions.p_htc_viu_viu_axis_0y = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_0y"))); + SteamVR_Actions.p_htc_viu_viu_axis_1x = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_1x"))); + SteamVR_Actions.p_htc_viu_viu_axis_1y = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_1y"))); + SteamVR_Actions.p_htc_viu_viu_axis_2x = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_2x"))); + SteamVR_Actions.p_htc_viu_viu_axis_2y = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_2y"))); + SteamVR_Actions.p_htc_viu_viu_axis_3x = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_3x"))); + SteamVR_Actions.p_htc_viu_viu_axis_3y = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_3y"))); + SteamVR_Actions.p_htc_viu_viu_axis_4x = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_4x"))); + SteamVR_Actions.p_htc_viu_viu_axis_4y = ((SteamVR_Action_Single)(SteamVR_Action.Create<SteamVR_Action_Single>("/actions/htc_viu/in/viu_axis_4y"))); + SteamVR_Actions.p_htc_viu_viu_axis_0xy = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/htc_viu/in/viu_axis_0xy"))); + SteamVR_Actions.p_htc_viu_viu_axis_1xy = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/htc_viu/in/viu_axis_1xy"))); + SteamVR_Actions.p_htc_viu_viu_axis_2xy = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/htc_viu/in/viu_axis_2xy"))); + SteamVR_Actions.p_htc_viu_viu_axis_3xy = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/htc_viu/in/viu_axis_3xy"))); + SteamVR_Actions.p_htc_viu_viu_axis_4xy = ((SteamVR_Action_Vector2)(SteamVR_Action.Create<SteamVR_Action_Vector2>("/actions/htc_viu/in/viu_axis_4xy"))); + SteamVR_Actions.p_htc_viu_viu_vib_01 = ((SteamVR_Action_Vibration)(SteamVR_Action.Create<SteamVR_Action_Vibration>("/actions/htc_viu/out/viu_vib_01"))); + } + } +} diff --git a/Assets/SteamVR_Input/SteamVR_Input_Actions.cs.meta b/Assets/SteamVR_Input/SteamVR_Input_Actions.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..169b589bf9203ed0615adf5f2d8513a40fadd64e --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_Actions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 252a46aa73bdaad4c84de35eab4db7c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs b/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs new file mode 100644 index 0000000000000000000000000000000000000000..eb7781e151a09744fe9f4f805e335e846a983979 --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Valve.VR +{ + using System; + using UnityEngine; + + + public partial class SteamVR_Actions + { + + public static void PreInitialize() + { + SteamVR_Actions.StartPreInitActionSets(); + SteamVR_Input.PreinitializeActionSetDictionaries(); + SteamVR_Actions.PreInitActions(); + SteamVR_Actions.InitializeActionArrays(); + SteamVR_Input.PreinitializeActionDictionaries(); + SteamVR_Input.PreinitializeFinishActionSets(); + } + } +} diff --git a/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs.meta b/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e52b00457896c3181ff50055abb8e175a0cdc57a --- /dev/null +++ b/Assets/SteamVR_Input/SteamVR_Input_Initialization.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a01e3356e2eb1e94aa342beeda87f596 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/actions.json b/Assets/StreamingAssets/SteamVR/actions.json index 938a982a6c147c77d668528f3959082a0a66e3f3..bb922289fa097b8bd25819185889e947e9e0678f 100644 --- a/Assets/StreamingAssets/SteamVR/actions.json +++ b/Assets/StreamingAssets/SteamVR/actions.json @@ -81,12 +81,230 @@ "name": "/actions/mixedreality/in/ExternalCamera", "type": "pose", "requirement": "optional" + }, + { + "name": "/actions/VR_Game/in/GrabAction", + "type": "boolean" + }, + { + "name": "/actions/VR_Game/in/WieldedObjectInteract", + "type": "boolean" + }, + { + "name": "/actions/htc_viu/in/viu_press_00", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_01", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_02", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_03", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_04", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_05", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_06", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_07", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_31", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_32", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_33", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_34", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_press_35", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_00", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_01", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_02", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_03", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_04", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_05", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_06", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_07", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_31", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_32", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_33", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_34", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_touch_35", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4x", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4y", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_0xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_1xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_2xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_3xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/in/viu_axis_4xy", + "type": "vector2", + "requirement": "optional" + }, + { + "name": "/actions/htc_viu/out/viu_vib_01", + "type": "vibration", + "requirement": "optional" } ], "action_sets": [ { "name": "/actions/default", - "usage": "single" + "usage": "leftright" }, { "name": "/actions/platformer", @@ -99,6 +317,18 @@ { "name": "/actions/mixedreality", "usage": "single" + }, + { + "name": "/actions/NewSet", + "usage": "single" + }, + { + "name": "/actions/VR_Game", + "usage": "single" + }, + { + "name": "/actions/htc_viu", + "usage": "leftright" } ], "default_bindings": [ @@ -153,6 +383,46 @@ { "controller_type": "vive_tracker_camera", "binding_url": "binding_vive_tracker_camera.json" + }, + { + "controller_type": "knuckles_ev1", + "binding_url": "bindings_knuckles_ev1.json" + }, + { + "controller_type": "vive_tracker", + "binding_url": "bindings_vive_tracker.json" + }, + { + "controller_type": "vive_tracker_handed", + "binding_url": "bindings_vive_tracker_handed.json" + }, + { + "controller_type": "vive_tracker_left_foot", + "binding_url": "bindings_vive_tracker_left_foot.json" + }, + { + "controller_type": "vive_tracker_right_foot", + "binding_url": "bindings_vive_tracker_right_foot.json" + }, + { + "controller_type": "vive_tracker_left_shoulder", + "binding_url": "bindings_vive_tracker_left_shoulder.json" + }, + { + "controller_type": "vive_tracker_right_shoulder", + "binding_url": "bindings_vive_tracker_right_shoulder.json" + }, + { + "controller_type": "vive_tracker_waist", + "binding_url": "bindings_vive_tracker_waist.json" + }, + { + "controller_type": "vive_tracker_chest", + "binding_url": "bindings_vive_tracker_chest.json" + }, + { + "controller_type": "vive_tracker_keyboard", + "binding_url": "bindings_vive_tracker_keyboard.json" } ], "localization": [ @@ -169,7 +439,51 @@ "/actions/default/out/Haptic": "Haptic", "/actions/platformer/in/Jump": "Jump", "/actions/default/in/SnapTurnLeft": "Snap Turn (Left)", - "/actions/default/in/SnapTurnRight": "Snap Turn (Right)" + "/actions/default/in/SnapTurnRight": "Snap Turn (Right)", + "/actions/VR_Game/in/GrabAction": "GrabAction", + "/actions/VR_Game/in/WieldedObjectInteract": "WieldedObjectInteract", + "/actions/htc_viu/in/viu_press_00": "Press00 (System)", + "/actions/htc_viu/in/viu_press_01": "Press01 (ApplicationMenu)", + "/actions/htc_viu/in/viu_press_02": "Press02 (Grip)", + "/actions/htc_viu/in/viu_press_03": "Press03 (DPadLeft)", + "/actions/htc_viu/in/viu_press_04": "Press04 (DPadUp)", + "/actions/htc_viu/in/viu_press_05": "Press05 (DPadRight)", + "/actions/htc_viu/in/viu_press_06": "Press06 (DPadDown)", + "/actions/htc_viu/in/viu_press_07": "Press07 (A)", + "/actions/htc_viu/in/viu_press_31": "Press31 (ProximitySensor)", + "/actions/htc_viu/in/viu_press_32": "Press32 (Touchpad)", + "/actions/htc_viu/in/viu_press_33": "Press33 (Trigger)", + "/actions/htc_viu/in/viu_press_34": "Press34 (CapSenseGrip)", + "/actions/htc_viu/in/viu_press_35": "Press35 (Bumper)", + "/actions/htc_viu/in/viu_touch_00": "Touch00 (System)", + "/actions/htc_viu/in/viu_touch_01": "Touch01 (ApplicationMenu)", + "/actions/htc_viu/in/viu_touch_02": "Touch02 (Grip)", + "/actions/htc_viu/in/viu_touch_03": "Touch03 (DPadLeft)", + "/actions/htc_viu/in/viu_touch_04": "Touch04 (DPadUp)", + "/actions/htc_viu/in/viu_touch_05": "Touch05 (DPadRight)", + "/actions/htc_viu/in/viu_touch_06": "Touch06 (DPadDown)", + "/actions/htc_viu/in/viu_touch_07": "Touch07 (A)", + "/actions/htc_viu/in/viu_touch_31": "Touch31 (ProximitySensor)", + "/actions/htc_viu/in/viu_touch_32": "Touch32 (Touchpad)", + "/actions/htc_viu/in/viu_touch_33": "Touch33 (Trigger)", + "/actions/htc_viu/in/viu_touch_34": "Touch34 (CapSenseGrip)", + "/actions/htc_viu/in/viu_touch_35": "Touch35 (Bumper)", + "/actions/htc_viu/in/viu_axis_0x": "Axis0 X (TouchpadX)", + "/actions/htc_viu/in/viu_axis_0y": "Axis0 Y (TouchpadY)", + "/actions/htc_viu/in/viu_axis_1x": "Axis1 X (Trigger)", + "/actions/htc_viu/in/viu_axis_1y": "Axis1 Y", + "/actions/htc_viu/in/viu_axis_2x": "Axis2 X (CapSenseGrip)", + "/actions/htc_viu/in/viu_axis_2y": "Axis2 Y", + "/actions/htc_viu/in/viu_axis_3x": "Axis3 X (IndexCurl)", + "/actions/htc_viu/in/viu_axis_3y": "Axis3 Y (MiddleCurl)", + "/actions/htc_viu/in/viu_axis_4x": "Axis4 X (RingCurl)", + "/actions/htc_viu/in/viu_axis_4y": "Axis4 Y (PinkyCurl)", + "/actions/htc_viu/in/viu_axis_0xy": "Axis0 X&Y (Touchpad)", + "/actions/htc_viu/in/viu_axis_1xy": "Axis1 X&Y", + "/actions/htc_viu/in/viu_axis_2xy": "Axis2 X&Y (Thumbstick)", + "/actions/htc_viu/in/viu_axis_3xy": "Axis3 X&Y", + "/actions/htc_viu/in/viu_axis_4xy": "Axis4 X&Y", + "/actions/htc_viu/out/viu_vib_01": "Vibration" } ] } \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_holographic_hmd.json b/Assets/StreamingAssets/SteamVR/binding_holographic_hmd.json index 866c38080f1d08898c05575a67b966dc0a5c066d..35c436f605140e54bc68bfd63c16e4107e109e1e 100644 --- a/Assets/StreamingAssets/SteamVR/binding_holographic_hmd.json +++ b/Assets/StreamingAssets/SteamVR/binding_holographic_hmd.json @@ -1,27 +1,43 @@ { - "alias_info" : {}, - "bindings" : { - "/actions/default" : { - "chords" : [], - "haptics" : [], - "poses" : [], - "skeleton" : [], - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/default/in/headsetonhead" - } - }, - "mode" : "button", - "path" : "/user/head/proximity" + "controller_type": "holographic_hmd", + "description": "", + "name": "holographic_hmd defaults", + "bindings": { + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" } - ] - } - }, - "controller_type" : "holographic_hmd", - "description" : "", - "name" : "holographic_hmd defaults", - "options" : {}, - "simulated_actions" : [] -} + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_index_hmd.json b/Assets/StreamingAssets/SteamVR/binding_index_hmd.json index 24b53e21fd30b35b26e54568f5b051e52f0385c3..ba2d8816e0d40d3c16e0f756a07df671d5e5e82f 100644 --- a/Assets/StreamingAssets/SteamVR/binding_index_hmd.json +++ b/Assets/StreamingAssets/SteamVR/binding_index_hmd.json @@ -1,27 +1,25 @@ { - "alias_info": {}, + "controller_type": "indexhmd", + "description": "", + "name": "index hmd defaults", "bindings": { "/actions/default": { "chords": [], - "haptics": [], - "poses": [], - "skeleton": [], "sources": [ { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, "inputs": { "click": { "output": "/actions/default/in/headsetonhead" } - }, - "mode": "button", - "path": "/user/head/proximity" + } } - ] + ], + "poses": [], + "haptics": [], + "skeleton": [] } - }, - "controller_type": "indexhmd", - "description": "", - "name": "index hmd defaults", - "options": {}, - "simulated_actions": [] -} + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_rift.json b/Assets/StreamingAssets/SteamVR/binding_rift.json index 4a7bb542e10b47a9675eb5f384ee7d9e9b3ba2bb..d5e57caff0288000a16c108e27db216f004c95b2 100644 --- a/Assets/StreamingAssets/SteamVR/binding_rift.json +++ b/Assets/StreamingAssets/SteamVR/binding_rift.json @@ -1,27 +1,43 @@ { - "alias_info" : {}, - "bindings" : { - "/actions/default" : { - "chords" : [], - "haptics" : [], - "poses" : [], - "skeleton" : [], - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/default/in/headsetonhead" - } - }, - "mode" : "button", - "path" : "/user/head/proximity" + "controller_type": "rift", + "description": "", + "name": "rift defaults", + "bindings": { + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" } - ] - } - }, - "controller_type" : "rift", - "description" : "", - "name" : "rift defaults", - "options" : {}, - "simulated_actions" : [] -} + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_vive.json b/Assets/StreamingAssets/SteamVR/binding_vive.json index a4ad3429fcd412fbcd8662a55873aa29291a5240..1a4be7e649c6af2861236a6354e71210dc973efd 100644 --- a/Assets/StreamingAssets/SteamVR/binding_vive.json +++ b/Assets/StreamingAssets/SteamVR/binding_vive.json @@ -1,27 +1,43 @@ { - "alias_info" : {}, - "bindings" : { - "/actions/default" : { - "chords" : [], - "haptics" : [], - "poses" : [], - "skeleton" : [], - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/default/in/headsetonhead" - } - }, - "mode" : "button", - "path" : "/user/head/proximity" + "controller_type": "vive", + "description": "", + "name": "vive defaults", + "bindings": { + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" } - ] - } - }, - "controller_type" : "vive", - "description" : "", - "name" : "vive defaults", - "options" : {}, - "simulated_actions" : [] -} + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_vive_cosmos.json b/Assets/StreamingAssets/SteamVR/binding_vive_cosmos.json index 36b618f52c18d4e549f610a36f19a8dd81252916..b1fd439dbe8d9bbc8b8c197031e0fc77895234d8 100644 --- a/Assets/StreamingAssets/SteamVR/binding_vive_cosmos.json +++ b/Assets/StreamingAssets/SteamVR/binding_vive_cosmos.json @@ -1,27 +1,43 @@ { - "alias_info": {}, + "controller_type": "vive_cosmos", + "description": "", + "name": "vive cosmos hmd defaults", "bindings": { "/actions/default": { "chords": [], - "haptics": [], - "poses": [], - "skeleton": [], "sources": [ { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, "inputs": { "click": { "output": "/actions/default/in/headsetonhead" } - }, + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", "mode": "button", - "path": "/user/head/proximity" + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + } } - ] + ], + "poses": [], + "haptics": [], + "skeleton": [] } - }, - "controller_type": "vive_cosmos", - "description": "", - "name": "vive cosmos hmd defaults", - "options": {}, - "simulated_actions": [] -} + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_vive_pro.json b/Assets/StreamingAssets/SteamVR/binding_vive_pro.json index 43ba0d33f83d784fbd54b29bde56b2e1a18d697c..44de439d731ac7397133966a6042c77d5dca4efe 100644 --- a/Assets/StreamingAssets/SteamVR/binding_vive_pro.json +++ b/Assets/StreamingAssets/SteamVR/binding_vive_pro.json @@ -1,27 +1,43 @@ { - "alias_info" : {}, - "bindings" : { - "/actions/default" : { - "chords" : [], - "haptics" : [], - "poses" : [], - "skeleton" : [], - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/default/in/headsetonhead" - } - }, - "mode" : "button", - "path" : "/user/head/proximity" + "controller_type": "vive_pro", + "description": "", + "name": "vive_pro defaults", + "bindings": { + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" } - ] - } - }, - "controller_type" : "vive_pro", - "description" : "", - "name" : "vive_pro defaults", - "options" : {}, - "simulated_actions" : [] -} + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/head/proximity", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_31" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/binding_vive_tracker_camera.json b/Assets/StreamingAssets/SteamVR/binding_vive_tracker_camera.json index 75e401e8dad3d21ff323a5f88d73861a96628129..af50d91b8b8e8e25634e3dc08327550294879836 100644 --- a/Assets/StreamingAssets/SteamVR/binding_vive_tracker_camera.json +++ b/Assets/StreamingAssets/SteamVR/binding_vive_tracker_camera.json @@ -1,22 +1,82 @@ { - "alias_info" : {}, + "controller_type": "vive_tracker_camera", + "description": "", + "name": "tracker_forcamera", "bindings": { "/actions/mixedreality": { - "haptics": [ - ], + "chords": [], + "sources": [], "poses": [ { "output": "/actions/mixedreality/in/ExternalCamera", "path": "/user/camera/pose/raw" } ], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], "sources": [ - ] + { + "path": "/user/camera/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/camera/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/camera/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/camera/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/camera/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/camera/output/haptic" + } + ], + "skeleton": [] } - }, - "controller_type" : "vive_tracker_camera", - "description" : "", - "name" : "tracker_forcamera", - "options" : {}, - "simulated_actions" : [] -} + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_holographic_controller.json b/Assets/StreamingAssets/SteamVR/bindings_holographic_controller.json index 3b822a4bd95f7983ca5c97bf307fcbd571e404de..9a0d6dc18f952f5f5ccaab752b5f31d1ff63c5d5 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_holographic_controller.json +++ b/Assets/StreamingAssets/SteamVR/bindings_holographic_controller.json @@ -1,307 +1,498 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/trackpad" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/trackpad" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/trackpad" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/trackpad" - } - ] - }, - "/actions/default" : { - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" - } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" - }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" - } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trigger" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trigger" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.95", - "click_deactivate_threshold": "0.9" - }, - "path": "/user/hand/left/input/trigger" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.95", - "click_deactivate_threshold": "0.9" - }, - "path": "/user/hand/right/input/trigger" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "path": "/user/hand/left/input/grip" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "path": "/user/hand/right/input/grip" + "controller_type": "holographic_controller", + "description": "", + "name": "Default bindings for Windows Mixed Reality Controllers", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.95", + "click_deactivate_threshold": "0.9" }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } - }, - "mode": "trigger", - "path": "/user/hand/left/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.95", + "click_deactivate_threshold": "0.9" }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } - }, - "mode": "trigger", - "path": "/user/hand/right/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trackpad" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trackpad" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" - }, - "path": "/user/hand/left/input/joystick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/right/input/joystick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" }, - "path": "/user/hand/left/input/joystick" + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + } + } + }, + { + "path": "/user/hand/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" - }, - "path": "/user/hand/right/input/joystick" - } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - } - ] - } - }, - "controller_type" : "holographic_controller", - "description" : "", - "name" : "Default bindings for Windows Mixed Reality Controllers" -} + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_knuckles.json b/Assets/StreamingAssets/SteamVR/bindings_knuckles.json index 8a4e53a6f8b2ab39c995896d6d19f028eb7c0f20..f9d0db385c45c2d82a4d5ac73061e0d5f9b5d2f2 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_knuckles.json +++ b/Assets/StreamingAssets/SteamVR/bindings_knuckles.json @@ -1,326 +1,647 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/thumbstick" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/thumbstick" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/a" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/a" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/b" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/b" - } - ] - }, - "/actions/default" : { - "chords" : [], - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" - } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" - }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" - } - ], - "skeleton" : [ - { - "output" : "/actions/default/in/skeletonlefthand", - "path" : "/user/hand/left/input/skeleton/left" - }, - { - "output" : "/actions/default/in/skeletonrighthand", - "path" : "/user/hand/right/input/skeleton/right" - } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trigger" - }, - { - "inputs": { - "force": { - "output": "/actions/default/in/squeeze" - } - }, - "mode": "force_sensor", - "path": "/user/hand/left/input/grip" - }, - { - "inputs": { - "force": { - "output": "/actions/default/in/squeeze" - } - }, - "mode": "force_sensor", - "path": "/user/hand/right/input/grip" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trackpad" + "controller_type": "knuckles", + "description": "", + "name": "knuckles_default", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/right/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/left/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/left/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "force_sensor", + "parameters": {}, + "inputs": { + "force": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "force_sensor", + "parameters": {}, + "inputs": { + "force": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/thumbstick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trigger" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/thumbstick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trackpad" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/thumbstick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" - }, - "path": "/user/hand/left/input/thumbstick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/thumbstick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/right/input/thumbstick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" - }, - "path": "/user/hand/left/input/thumbstick" + "inputs": { + "grab": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" - }, - "path": "/user/hand/right/input/thumbstick" + "inputs": { + "grab": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/pinch", + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" }, - { - "inputs": { - "grab": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "grab", - "parameters": { - "force_hold_threshold": "0.02", - "force_release_threshold": "0.01" - }, - "path": "/user/hand/left/input/grip" + "inputs": { + "grab": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/pinch", + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" }, - { - "inputs": { - "grab": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "grab", - "parameters": { - "force_hold_threshold": "0.02", - "force_release_threshold": "0.01" - }, - "path": "/user/hand/right/input/grip" + "inputs": { + "grab": { + "output": "/actions/default/in/grabpinch" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [ + { + "output": "/actions/default/in/skeletonlefthand", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/default/in/skeletonrighthand", + "path": "/user/hand/right/input/skeleton/right" + } + ] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/right/input/system", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/left/input/system", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/left/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": { + "force_input": "force" }, - { - "inputs": { - "grab": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "grab", - "parameters": { - "force_hold_threshold": "0.02", - "force_release_threshold": "0.01" + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" }, - "path": "/user/hand/left/input/pinch" + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": { + "force_input": "force" }, - { - "inputs": { - "grab": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "grab", - "parameters": { - "force_hold_threshold": "0.02", - "force_release_threshold": "0.01" - }, - "path": "/user/hand/right/input/pinch" - } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/thumbstick" + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/thumbstick" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/trigger" - } - ] - } - }, - "controller_type" : "knuckles", - "description" : "", - "name" : "knuckles_default" -} + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/left/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/thumbstick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_2xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/finger/index", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + } + }, + { + "path": "/user/hand/left/input/finger/index", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + } + }, + { + "path": "/user/hand/right/input/finger/middle", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + } + }, + { + "path": "/user/hand/left/input/finger/middle", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + } + }, + { + "path": "/user/hand/right/input/finger/ring", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/left/input/finger/ring", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/right/input/finger/pinky", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + }, + { + "path": "/user/hand/left/input/finger/pinky", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json b/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json new file mode 100644 index 0000000000000000000000000000000000000000..71ff3bab47aab84fe86057a8e86f65d2a93fd700 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json @@ -0,0 +1,250 @@ +{ + "controller_type": "knuckles_ev1", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/left/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + }, + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/left/input/finger/index", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + } + }, + { + "path": "/user/hand/left/input/finger/ring", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/left/input/finger/pinky", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + }, + { + "path": "/user/hand/left/input/finger/middle", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + } + }, + { + "path": "/user/hand/right/input/finger/ring", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/right/input/finger/pinky", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + }, + { + "path": "/user/hand/right/input/finger/middle", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3y" + } + } + }, + { + "path": "/user/hand/right/input/finger/index", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_3x" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json.meta b/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..14e9eb3683811582bcbb9d29e6da4c3e3fb75c89 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_knuckles_ev1.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 59e5222e3d03cbf4fadac10280ac2c00 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_logitech_stylus.json b/Assets/StreamingAssets/SteamVR/bindings_logitech_stylus.json index c3ba50dd18935fb46a7d9f46ab0c099532c1d771..9da37b5a40e3a84fc457fd07a0bda310c87c6d99 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_logitech_stylus.json +++ b/Assets/StreamingAssets/SteamVR/bindings_logitech_stylus.json @@ -1,269 +1,294 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/primary" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/primary" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - }, - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/left/input/touchstrip" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - }, - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/right/input/touchstrip" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/menu" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/menu" + "controller_type": "vive_controller", + "description": "", + "name": "vive_controller", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/primary", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" } - ] - }, - "/actions/default" : { - "chords" : [], - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" + } + }, + { + "path": "/user/hand/right/input/primary", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" + } + }, + { + "path": "/user/hand/left/input/touchstrip", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" + "position": { + "output": "/actions/buggy/in/steering" } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/left/input/primary" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } + } + }, + { + "path": "/user/hand/right/input/touchstrip", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" }, - "mode": "button", - "path": "/user/hand/left/input/grip" + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/primary", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/primary", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7", + "force_input": "value" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.75", - "click_deactivate_threshold": "0.7", - "force_input": "value" - }, - "path": "/user/hand/left/input/primary" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/primary", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/primary", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/primary" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/left/input/touchstrip", + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } + "inputs": { + "center": { + "output": "/actions/default/in/teleport" }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.75", - "click_deactivate_threshold": "0.7" + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/right/input/primary" - }, - { - "inputs": { - "center": { - "output": "/actions/default/in/teleport" - }, - "east": { - "output": "/actions/default/in/snapturnright" - }, - "north": { - "output": "/actions/default/in/teleport" - }, - "south": { - "output": "/actions/default/in/teleport" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "north": { + "output": "/actions/default/in/teleport" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "90", - "overlap_pct": "15", - "sub_mode": "click" + "south": { + "output": "/actions/default/in/teleport" }, - "path": "/user/hand/left/input/touchstrip" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/touchstrip", + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" }, - { - "inputs": { - "center": { - "output": "/actions/default/in/teleport" - }, - "east": { - "output": "/actions/default/in/snapturnright" - }, - "north": { - "output": "/actions/default/in/teleport" - }, - "south": { - "output": "/actions/default/in/teleport" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "90", - "overlap_pct": "15", - "sub_mode": "click" + "inputs": { + "center": { + "output": "/actions/default/in/teleport" }, - "path": "/user/hand/right/input/touchstrip" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "button", - "path": "/user/hand/right/input/grip" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "north": { + "output": "/actions/default/in/teleport" }, - "mode": "trigger", - "path": "/user/hand/left/input/tip" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "south": { + "output": "/actions/default/in/teleport" }, - "mode": "trigger", - "path": "/user/hand/right/input/tip" + "west": { + "output": "/actions/default/in/snapturnleft" + } } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/touchstrip" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/touchstrip" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/left/input/touchstrip" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/right/input/touchstrip" + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" } - ] - } - }, - "controller_type" : "vive_controller", - "description" : "", - "name" : "vive_controller" -} + } + }, + { + "path": "/user/hand/left/input/tip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/tip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/touchstrip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/right/input/touchstrip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/left/input/touchstrip", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/touchstrip", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json b/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json index 7850056a15e481fc44e0ccb7f355fdd9722ab19d..6c1d3f83efe0f47e1cdd5f1a787b04048fe1ada9 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json +++ b/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json @@ -1,315 +1,580 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/x" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/x" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/y" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/y" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/a" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/b" - } - ] - }, - "/actions/default" : { - "chords" : [], - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" - } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" - }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" - } - ], - "skeleton" : [ - { - "output" : "/actions/default/in/skeletonlefthand", - "path" : "/user/hand/left/input/skeleton/left" - }, - { - "output" : "/actions/default/in/skeletonrighthand", - "path" : "/user/hand/right/input/skeleton/right" - } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trigger" + "controller_type": "oculus_touch", + "description": "", + "name": "oculus_touch", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/x", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/right/input/x", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/left/input/y", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/y", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7" - }, - "path": "/user/hand/left/input/grip" + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7", + "force_input": "value" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7", - "force_input": "value" - }, - "path": "/user/hand/left/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7" - }, - "path": "/user/hand/right/input/trigger" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" - }, - "path": "/user/hand/left/input/joystick" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" - }, - "path": "/user/hand/right/input/joystick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/left/input/joystick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } - }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" - }, - "path": "/user/hand/right/input/joystick" + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [ + { + "output": "/actions/default/in/skeletonlefthand", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/default/in/skeletonrighthand", + "path": "/user/hand/right/input/skeleton/right" + } + ] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + }, + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + }, + "position": { + "output": "/actions/platformer/in/move" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7" + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" }, - "path": "/user/hand/right/input/grip" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } - }, - "mode": "trigger", - "path": "/user/hand/left/input/grip" + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/left/input/x", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/left/input/y", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" }, - "mode": "trigger", - "path": "/user/hand/right/input/grip" - } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - }, - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - }, - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - } - ] - } - }, - "controller_type" : "oculus_touch", - "description" : "", - "name" : "oculus_touch" -} + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + }, + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_02" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_07" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_01" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_2x" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_34" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_34" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_34" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_34" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json b/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json index 4732d0067824d9b152c2582683cae5716b28e70f..6170f39363caa6fa42c4ee6f572d7abed4557038 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json @@ -1,289 +1,470 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - }, - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/left/input/trackpad" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - }, - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/right/input/trackpad" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/application_menu" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/application_menu" - } - ] - }, - "/actions/default" : { - "chords" : [], - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" - } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" - }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" - } - ], - "skeleton" : [ - { - "output" : "/actions/default/in/skeletonlefthand", - "path" : "/user/hand/left/input/skeleton/left" + "controller_type": "vive_controller", + "description": "", + "name": "vive_controller", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" }, - { - "output" : "/actions/default/in/skeletonrighthand", - "path" : "/user/hand/right/input/skeleton/right" - } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" }, - "mode": "button", - "path": "/user/hand/left/input/trigger" + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.05", + "click_deactivate_threshold": "0", + "force_input": "force" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.05", - "click_deactivate_threshold": "0", - "force_input": "force" - }, - "path": "/user/hand/left/input/grip" + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7", + "force_input": "value" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.75", - "click_deactivate_threshold": "0.7", - "force_input": "value" - }, - "path": "/user/hand/left/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } + "inputs": { + "center": { + "output": "/actions/default/in/teleport" }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.75", - "click_deactivate_threshold": "0.7" + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/right/input/trigger" - }, - { - "inputs": { - "center": { - "output": "/actions/default/in/teleport" - }, - "east": { - "output": "/actions/default/in/snapturnright" - }, - "north": { - "output": "/actions/default/in/teleport" - }, - "south": { - "output": "/actions/default/in/teleport" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "north": { + "output": "/actions/default/in/teleport" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "90", - "overlap_pct": "15", - "sub_mode": "click" + "south": { + "output": "/actions/default/in/teleport" }, - "path": "/user/hand/left/input/trackpad" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" }, - { - "inputs": { - "center": { - "output": "/actions/default/in/teleport" - }, - "east": { - "output": "/actions/default/in/snapturnright" - }, - "north": { - "output": "/actions/default/in/teleport" - }, - "south": { - "output": "/actions/default/in/teleport" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "inputs": { + "center": { + "output": "/actions/default/in/teleport" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "90", - "overlap_pct": "15", - "sub_mode": "click" + "east": { + "output": "/actions/default/in/snapturnright" }, - "path": "/user/hand/right/input/trackpad" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.05", - "click_deactivate_threshold": "0", - "force_input": "force" + "north": { + "output": "/actions/default/in/teleport" }, - "path": "/user/hand/right/input/grip" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "south": { + "output": "/actions/default/in/teleport" }, - "mode": "trigger", - "path": "/user/hand/left/input/trigger" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.05", + "click_deactivate_threshold": "0", + "force_input": "force" }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [ + { + "output": "/actions/default/in/skeletonlefthand", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/default/in/skeletonrighthand", + "path": "/user/hand/right/input/skeleton/right" + } + ] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/platformer/in/move" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + } + } + }, + { + "path": "/user/hand/left/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" }, - "mode": "trigger", - "path": "/user/hand/right/input/trigger" - } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/trackpad" + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/trackpad" + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/trackpad", + "mode": "trackpad", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/left/input/trackpad" + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" }, - { - "inputs" : { - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "trackpad", - "path" : "/user/hand/right/input/trackpad" - } - ] - } - }, - "controller_type" : "vive_controller", - "description" : "", - "name" : "vive_controller" -} + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.55", + "click_deactivate_threshold": "0.45", + "haptic_amplitude": "0.2" + }, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "haptic_amplitude": "0" + }, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_cosmos_controller.json b/Assets/StreamingAssets/SteamVR/bindings_vive_cosmos_controller.json index 2b2193aece5397fbf8b41ca2494775735c312173..eef48a72fff1715afc620060f497b7304bbdccc3 100644 --- a/Assets/StreamingAssets/SteamVR/bindings_vive_cosmos_controller.json +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_cosmos_controller.json @@ -1,289 +1,514 @@ { - "bindings" : { - "/actions/buggy" : { - "sources" : [ - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/left/input/trigger" - }, - { - "inputs" : { - "pull" : { - "output" : "/actions/buggy/in/throttle" - } - }, - "mode" : "trigger", - "path" : "/user/hand/right/input/trigger" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" - }, - { - "inputs" : { - "position" : { - "output" : "/actions/buggy/in/steering" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/x" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/left/input/y" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/brake" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/a" - }, - { - "inputs" : { - "click" : { - "output" : "/actions/buggy/in/reset" - } - }, - "mode" : "button", - "path" : "/user/hand/right/input/b" - } - ] - }, - "/actions/default" : { - "chords" : [], - "haptics" : [ - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/left/output/haptic" - }, - { - "output" : "/actions/default/out/haptic", - "path" : "/user/hand/right/output/haptic" - } - ], - "poses" : [ - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/left/pose/raw" - }, - { - "output" : "/actions/default/in/pose", - "path" : "/user/hand/right/pose/raw" - } - ], - "skeleton" : [ - { - "output" : "/actions/default/in/skeletonlefthand", - "path" : "/user/hand/left/input/skeleton/left" - }, - { - "output" : "/actions/default/in/skeletonrighthand", - "path" : "/user/hand/right/input/skeleton/right" - } - ], - "sources": [ - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/left/input/trigger" + "controller_type": "vive_cosmos_controller", + "description": "", + "name": "vive_cosmos_controller", + "bindings": { + "/actions/buggy": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/buggy/in/throttle" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "position": { + "output": "/actions/buggy/in/steering" + } + } + }, + { + "path": "/user/hand/left/input/x", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/left/input/y", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/brake" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/buggy/in/reset" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/default": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7", + "force_input": "value" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } - }, - "mode": "button", - "path": "/user/hand/left/input/grip" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7", - "force_input": "value" - }, - "path": "/user/hand/left/input/trigger" + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/interactui" - } - }, - "mode": "button", - "path": "/user/hand/right/input/trigger" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabpinch" - } - }, - "mode": "button", - "parameters": { - "click_activate_threshold": "0.8", - "click_deactivate_threshold": "0.7" - }, - "path": "/user/hand/right/input/trigger" + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" - }, - "path": "/user/hand/left/input/joystick" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" }, - { - "inputs": { - "north": { - "output": "/actions/default/in/teleport" - } + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "25", - "overlap_pct": "30", - "sub_mode": "touch" + "west": { + "output": "/actions/default/in/snapturnleft" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + } + } + ], + "poses": [ + { + "output": "/actions/default/in/pose", + "path": "/user/hand/left/pose/raw" + }, + { + "output": "/actions/default/in/pose", + "path": "/user/hand/right/pose/raw" + } + ], + "haptics": [ + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/default/out/haptic", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [ + { + "output": "/actions/default/in/skeletonlefthand", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/default/in/skeletonrighthand", + "path": "/user/hand/right/input/skeleton/right" + } + ] + }, + "/actions/platformer": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" }, - "path": "/user/hand/right/input/joystick" - }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "position": { + "output": "/actions/platformer/in/move" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/platformer/in/jump" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" + "position": { + "output": "/actions/platformer/in/move" + } + } + } + ], + "poses": [], + "haptics": [], + "skeleton": [] + }, + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" }, - "path": "/user/hand/left/input/joystick" - }, - { - "inputs": { - "east": { - "output": "/actions/default/in/snapturnright" - }, - "west": { - "output": "/actions/default/in/snapturnleft" - } + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" }, - "mode": "dpad", - "parameters": { - "deadzone_pct": "85", - "overlap_pct": "0", - "sub_mode": "touch" + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/left/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" }, - "path": "/user/hand/right/input/joystick" - }, - { - "inputs": { - "click": { - "output": "/actions/default/in/grabgrip" - } + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" }, - "mode": "button", - "path": "/user/hand/right/input/grip" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/left/input/x", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + } + } + }, + { + "path": "/user/hand/left/input/y", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/left/input/bumper", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_35" + } + } + }, + { + "path": "/user/hand/left/input/joystick_cap/raw_value", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/left/input/trigger_cap/raw_value", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "trigger", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" }, - "mode": "trigger", - "path": "/user/hand/left/input/trigger" - }, - { - "inputs": { - "pull": { - "output": "/actions/default/in/squeeze" - } + "pull": { + "output": "/actions/htc_viu/in/viu_axis_1x" + }, + "touch": { + "output": "/actions/htc_viu/in/viu_touch_33" + } + } + }, + { + "path": "/user/hand/right/input/joystick", + "mode": "joystick", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" }, - "mode": "trigger", - "path": "/user/hand/right/input/trigger" - } - ] - }, - "/actions/platformer" : { - "sources" : [ - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - }, - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/left/input/joystick" + "position": { + "output": "/actions/htc_viu/in/viu_axis_0xy" }, - { - "inputs" : { - "click" : { - "output" : "/actions/platformer/in/jump" - }, - "position" : { - "output" : "/actions/platformer/in/move" - } - }, - "mode" : "joystick", - "path" : "/user/hand/right/input/joystick" - } - ] - } - }, - "controller_type" : "vive_cosmos_controller", - "description" : "", - "name" : "vive_cosmos_controller" -} + "touch": { + "output": "/actions/htc_viu/in/viu_touch_32" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/a", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_07" + } + } + }, + { + "path": "/user/hand/right/input/b", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/right/input/bumper", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_35" + } + } + }, + { + "path": "/user/hand/right/input/joystick_cap/raw_value", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4x" + } + } + }, + { + "path": "/user/hand/right/input/trigger_cap/raw_value", + "mode": "trigger", + "parameters": {}, + "inputs": { + "pull": { + "output": "/actions/htc_viu/in/viu_axis_4y" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json new file mode 100644 index 0000000000000000000000000000000000000000..8ffafe41379d075a6bade24827f134fef94b0539 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json @@ -0,0 +1,122 @@ +{ + "controller_type": "vive_tracker", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/right/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/left/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + }, + { + "path": "/user/hand/right/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..12ef128f8f0f176816a861a662801edb180c7232 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39c3996f373faf34294b28acd52e9389 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json new file mode 100644 index 0000000000000000000000000000000000000000..4ea5459993340dc36600b7df11574cc94a161074 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_chest", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/chest/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/chest/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/chest/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/chest/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/chest/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/chest/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..bf71fc2b375851c4ed481ce53857bd0fa0a956e8 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_chest.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba456a494b4171c479792940da3fdc21 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json new file mode 100644 index 0000000000000000000000000000000000000000..6f4369f9398abb2051222c2ab3a028ffbac6220c --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json @@ -0,0 +1,122 @@ +{ + "controller_type": "vive_tracker_handed", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/hand/left/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/right/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/hand/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/hand/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/hand/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/hand/left/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + }, + { + "path": "/user/hand/right/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/hand/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..f20cd53575eda30457456ca4479e4b85d71ef78e --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_handed.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c0583a18c2ff7344ab4319b90bd0433f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json new file mode 100644 index 0000000000000000000000000000000000000000..f450bb033113d65145824acad0f8d6ff4dc3773e --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_keyboard", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/keyboard/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/keyboard/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/keyboard/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/keyboard/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/keyboard/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/keyboard/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..a9d0c16a065be801cf69a612493e5c86cb07e368 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_keyboard.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8baa8750716a1ae4484da99d01e9e015 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json new file mode 100644 index 0000000000000000000000000000000000000000..8e6c9a4f9429e0907d44cc92c37f1858324eb94b --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_left_foot", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/foot/left/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/foot/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/foot/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/foot/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/foot/left/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/foot/left/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..3d930bd7c92cb1d568ee74ceb392f6db89e6f7e0 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_foot.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c75effade4bcdb84c8bc8b46b8097f89 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json new file mode 100644 index 0000000000000000000000000000000000000000..36a4c82c85f7180346858b7fa7f055f43384a438 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_left_shoulder", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/shoulder/left/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/shoulder/left/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/shoulder/left/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/shoulder/left/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/shoulder/left/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/shoulder/left/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..3745a981b7366c39a2d0a023ffd5c30bc931b216 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_left_shoulder.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d36a9219068063e4088e73f8f7d78776 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json new file mode 100644 index 0000000000000000000000000000000000000000..bb1138325d75910cc25183b40d8a69f9f4801021 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_right_foot", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/foot/right/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/foot/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/foot/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/foot/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/foot/right/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/foot/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..5d0d4942f5bed3a9a3530530ba46334345d387e1 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_foot.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f20a2324d4ce79b48b374bd3261abad4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json new file mode 100644 index 0000000000000000000000000000000000000000..6d5170a8cc0cc3edd323a31d85fe6b93385e1543 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_right_shoulder", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/shoulder/right/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/shoulder/right/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/shoulder/right/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/shoulder/right/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/shoulder/right/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/shoulder/right/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..c1facad70337dad9b2806ed518da786cb3da5b68 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_right_shoulder.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7700a39cb4ede604eb59ed39a0f91b20 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json new file mode 100644 index 0000000000000000000000000000000000000000..a26acda766f9d57f81aad3c83d6821b9b40900a2 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json @@ -0,0 +1,68 @@ +{ + "controller_type": "vive_tracker_waist", + "bindings": { + "/actions/htc_viu": { + "chords": [], + "sources": [ + { + "path": "/user/waist/input/power", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_00" + } + } + }, + { + "path": "/user/waist/input/trigger", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_33" + } + } + }, + { + "path": "/user/waist/input/grip", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_02" + } + } + }, + { + "path": "/user/waist/input/application_menu", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_01" + } + } + }, + { + "path": "/user/waist/input/thumb", + "mode": "button", + "parameters": {}, + "inputs": { + "click": { + "output": "/actions/htc_viu/in/viu_press_32" + } + } + } + ], + "poses": [], + "haptics": [ + { + "output": "/actions/htc_viu/out/viu_vib_01", + "path": "/user/waist/output/haptic" + } + ], + "skeleton": [] + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json.meta b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json.meta new file mode 100644 index 0000000000000000000000000000000000000000..793d680fccd172297537827272f90ecb7252b364 --- /dev/null +++ b/Assets/StreamingAssets/SteamVR/bindings_vive_tracker_waist.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b0d6006478ae7846a548161094bf4de +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/XRGeneralSettings.asset b/Assets/XR/XRGeneralSettings.asset index cca11cdc32984d20e5833429a44b63ae344ae024..ac58ae4ae761116da7b0ac877fa9c90755092b8c 100644 --- a/Assets/XR/XRGeneralSettings.asset +++ b/Assets/XR/XRGeneralSettings.asset @@ -86,12 +86,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d2dc886499c26824283350fa532d087d, type: 3} m_Name: XRGeneralSettings m_EditorClassIdentifier: - Keys: 01000000070000001c00000004000000 + Keys: 01000000070000001c000000040000000e000000 Values: - {fileID: -6517218471499782410} - {fileID: -8196854396901781169} - {fileID: 332800863423338148} - {fileID: -6546576050900071261} + - {fileID: 7083650086538713970} --- !u!114 &332800863423338148 MonoBehaviour: m_ObjectHideFlags: 0 @@ -123,6 +124,7 @@ MonoBehaviour: m_AutomaticRunning: 0 m_Loaders: - {fileID: 11400000, guid: 79e3158a315737349b449fcab35654f8, type: 2} + - {fileID: 11400000, guid: df5f618d6a3a64d0c89b2ac2bc89285e, type: 2} --- !u!114 &4897379186331661704 MonoBehaviour: m_ObjectHideFlags: 0 @@ -139,3 +141,33 @@ MonoBehaviour: m_AutomaticLoading: 0 m_AutomaticRunning: 0 m_Loaders: [] +--- !u!114 &6774560715178669091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4c3631f5e58749a59194e0cf6baf6d5, type: 3} + m_Name: WSA Providers + m_EditorClassIdentifier: + m_RequiresSettingsUpdate: 0 + m_AutomaticLoading: 0 + m_AutomaticRunning: 0 + m_Loaders: [] +--- !u!114 &7083650086538713970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: WSA Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: 6774560715178669091} + m_InitManagerOnStart: 1 diff --git a/Packages/manifest.json b/Packages/manifest.json index 69a041eeda5250743c60b4a773ac1e7e703de199..dab1340a34ccf79276700d9f045378e8570c6691 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -9,6 +9,7 @@ "com.unity.probuilder": "4.5.0", "com.unity.progrids": "3.0.3-preview.6", "com.unity.quicksearch": "2.0.2", + "com.unity.render-pipelines.universal": "10.4.0", "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.4", "com.unity.timeline": "1.4.7", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 777fea9aba64a30c6e71c49bee1d20346c5ad9a4..c668f868db31b84c19819f94c1f968cf0b2ed15c 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -113,6 +113,29 @@ "com.unity.quicksearch": { "version": "2.0.2", "depth": 0, + "com.unity.render-pipelines.core": { + "version": "10.4.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.render-pipelines.universal": { + "version": "10.4.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.1.0", + "com.unity.render-pipelines.core": "10.4.0", + "com.unity.shadergraph": "10.4.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.searcher": { + "version": "4.3.1", + "depth": 2, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" @@ -124,6 +147,16 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.shadergraph": { + "version": "10.4.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.render-pipelines.core": "10.4.0", + "com.unity.searcher": "4.3.1" + }, + "url": "https://packages.unity.com" + }, "com.unity.subsystemregistration": { "version": "1.0.6", "depth": 1, @@ -502,4 +535,4 @@ } } } -} +} \ No newline at end of file diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index cc877532365aa7ec1ec474581a820c7adac831e6..6e2a998224c88d7270100427bc28af9ef2ed2aee 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -669,7 +669,7 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 - scriptingDefineSymbols: {} + scriptingDefineSymbols: {1: VIU_OCULUSVR_DESKTOP_SUPPORT;VIU_OPENVR_API;VIU_STEAMVR;VIU_STEAMVR_1_1_1;VIU_STEAMVR_1_2_0_OR_NEWER;VIU_STEAMVR_1_2_1_OR_NEWER;VIU_STEAMVR_1_2_2_OR_NEWER;VIU_STEAMVR_1_2_3_OR_NEWER;VIU_STEAMVR_2_0_0_OR_NEWER;VIU_STEAMVR_2_1_0_OR_NEWER;VIU_STEAMVR_2_2_0_OR_NEWER;VIU_STEAMVR_2_4_0_OR_NEWER;VIU_STEAMVR_2_6_0_OR_NEWER;VIU_XR_GENERAL_SETTINGS;VIU_XR_PACKAGE_METADATA_STORE;VIU_PLUGIN;VIU_OPENVR_SUPPORT} additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: @@ -691,8 +691,8 @@ PlayerSettings: apiCompatibilityLevelPerPlatform: {} m_RenderingPath: 1 m_MobileRenderingPath: 1 - metroPackageName: Template_3D - metroPackageVersion: + metroPackageName: Template3D + metroPackageVersion: 1.0.0.0 metroCertificatePath: metroCertificatePassword: metroCertificateSubject: @@ -700,7 +700,7 @@ PlayerSettings: metroCertificateNotAfter: 0000000000000000 metroApplicationDescription: Template_3D wsaImages: {} - metroTileShortName: + metroTileShortName: VR project metroTileShowName: 0 metroMediumTileShowName: 0 metroLargeTileShowName: 0 diff --git a/ProjectSettings/URPProjectSettings.asset b/ProjectSettings/URPProjectSettings.asset index fa89832b363b20ded9b31545136fca2750af4fdb..3077404f36bd1ba33d41266203bfbdc92530d367 100644 --- a/ProjectSettings/URPProjectSettings.asset +++ b/ProjectSettings/URPProjectSettings.asset @@ -12,4 +12,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} m_Name: m_EditorClassIdentifier: - m_LastMaterialVersion: 1 + m_LastMaterialVersion: 4 diff --git a/SteamVR_SteamVR_vrproject/1/actions.json b/SteamVR_SteamVR_vrproject/1/actions.json new file mode 100644 index 0000000000000000000000000000000000000000..a8a5f75542ca7037d0fe1b223cbb55e6ef7fd741 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/actions.json @@ -0,0 +1,179 @@ +{ + "actions": [ + { + "name": "/actions/default/in/InteractUI", + "type": "boolean" + }, + { + "name": "/actions/default/in/Teleport", + "type": "boolean" + }, + { + "name": "/actions/default/in/GrabPinch", + "type": "boolean" + }, + { + "name": "/actions/default/in/GrabGrip", + "type": "boolean" + }, + { + "name": "/actions/default/in/Pose", + "type": "pose" + }, + { + "name": "/actions/default/in/SkeletonLeftHand", + "type": "skeleton", + "skeleton": "/skeleton/hand/left" + }, + { + "name": "/actions/default/in/SkeletonRightHand", + "type": "skeleton", + "skeleton": "/skeleton/hand/right" + }, + { + "name": "/actions/default/in/Squeeze", + "type": "vector1", + "requirement": "optional" + }, + { + "name": "/actions/default/in/HeadsetOnHead", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/default/in/SnapTurnLeft", + "type": "boolean", + "requirement": "suggested" + }, + { + "name": "/actions/default/in/SnapTurnRight", + "type": "boolean" + }, + { + "name": "/actions/default/out/Haptic", + "type": "vibration" + }, + { + "name": "/actions/platformer/in/Move", + "type": "vector2" + }, + { + "name": "/actions/platformer/in/Jump", + "type": "boolean" + }, + { + "name": "/actions/buggy/in/Steering", + "type": "vector2" + }, + { + "name": "/actions/buggy/in/Throttle", + "type": "vector1" + }, + { + "name": "/actions/buggy/in/Brake", + "type": "boolean" + }, + { + "name": "/actions/buggy/in/Reset", + "type": "boolean" + }, + { + "name": "/actions/mixedreality/in/ExternalCamera", + "type": "pose", + "requirement": "optional" + } + ], + "action_sets": [ + { + "name": "/actions/default", + "usage": "single" + }, + { + "name": "/actions/platformer", + "usage": "single" + }, + { + "name": "/actions/buggy", + "usage": "single" + }, + { + "name": "/actions/mixedreality", + "usage": "single" + }, + { + "name": "/actions/NewSet", + "usage": "single" + } + ], + "default_bindings": [ + { + "controller_type": "vive_controller", + "binding_url": "bindings_vive_controller.json" + }, + { + "controller_type": "oculus_touch", + "binding_url": "bindings_oculus_touch.json" + }, + { + "controller_type": "knuckles", + "binding_url": "bindings_knuckles.json" + }, + { + "controller_type": "holographic_controller", + "binding_url": "bindings_holographic_controller.json" + }, + { + "controller_type": "vive_cosmos_controller", + "binding_url": "bindings_vive_cosmos_controller.json" + }, + { + "controller_type": "logitech_stylus", + "binding_url": "bindings_logitech_stylus.json" + }, + { + "controller_type": "vive_cosmos", + "binding_url": "binding_vive_cosmos.json" + }, + { + "controller_type": "vive", + "binding_url": "binding_vive.json" + }, + { + "controller_type": "indexhmd", + "binding_url": "binding_index_hmd.json" + }, + { + "controller_type": "vive_pro", + "binding_url": "binding_vive_pro.json" + }, + { + "controller_type": "rift", + "binding_url": "binding_rift.json" + }, + { + "controller_type": "holographic_hmd", + "binding_url": "binding_holographic_hmd.json" + }, + { + "controller_type": "vive_tracker_camera", + "binding_url": "binding_vive_tracker_camera.json" + } + ], + "localization": [ + { + "language_tag": "en_US", + "/actions/default/in/GrabGrip": "Grab Grip", + "/actions/default/in/GrabPinch": "Grab Pinch", + "/actions/default/in/HeadsetOnHead": "Headset on head (proximity sensor)", + "/actions/default/in/InteractUI": "Interact With UI", + "/actions/default/in/Pose": "Pose", + "/actions/default/in/SkeletonLeftHand": "Skeleton (Left)", + "/actions/default/in/SkeletonRightHand": "Skeleton (Right)", + "/actions/default/in/Teleport": "Teleport", + "/actions/default/out/Haptic": "Haptic", + "/actions/platformer/in/Jump": "Jump", + "/actions/default/in/SnapTurnLeft": "Snap Turn (Left)", + "/actions/default/in/SnapTurnRight": "Snap Turn (Right)" + } + ] +} \ No newline at end of file diff --git a/SteamVR_SteamVR_vrproject/1/binding_holographic_hmd.json b/SteamVR_SteamVR_vrproject/1/binding_holographic_hmd.json new file mode 100644 index 0000000000000000000000000000000000000000..866c38080f1d08898c05575a67b966dc0a5c066d --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_holographic_hmd.json @@ -0,0 +1,27 @@ +{ + "alias_info" : {}, + "bindings" : { + "/actions/default" : { + "chords" : [], + "haptics" : [], + "poses" : [], + "skeleton" : [], + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/default/in/headsetonhead" + } + }, + "mode" : "button", + "path" : "/user/head/proximity" + } + ] + } + }, + "controller_type" : "holographic_hmd", + "description" : "", + "name" : "holographic_hmd defaults", + "options" : {}, + "simulated_actions" : [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_index_hmd.json b/SteamVR_SteamVR_vrproject/1/binding_index_hmd.json new file mode 100644 index 0000000000000000000000000000000000000000..24b53e21fd30b35b26e54568f5b051e52f0385c3 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_index_hmd.json @@ -0,0 +1,27 @@ +{ + "alias_info": {}, + "bindings": { + "/actions/default": { + "chords": [], + "haptics": [], + "poses": [], + "skeleton": [], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + }, + "controller_type": "indexhmd", + "description": "", + "name": "index hmd defaults", + "options": {}, + "simulated_actions": [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_rift.json b/SteamVR_SteamVR_vrproject/1/binding_rift.json new file mode 100644 index 0000000000000000000000000000000000000000..4a7bb542e10b47a9675eb5f384ee7d9e9b3ba2bb --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_rift.json @@ -0,0 +1,27 @@ +{ + "alias_info" : {}, + "bindings" : { + "/actions/default" : { + "chords" : [], + "haptics" : [], + "poses" : [], + "skeleton" : [], + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/default/in/headsetonhead" + } + }, + "mode" : "button", + "path" : "/user/head/proximity" + } + ] + } + }, + "controller_type" : "rift", + "description" : "", + "name" : "rift defaults", + "options" : {}, + "simulated_actions" : [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_vive.json b/SteamVR_SteamVR_vrproject/1/binding_vive.json new file mode 100644 index 0000000000000000000000000000000000000000..a4ad3429fcd412fbcd8662a55873aa29291a5240 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_vive.json @@ -0,0 +1,27 @@ +{ + "alias_info" : {}, + "bindings" : { + "/actions/default" : { + "chords" : [], + "haptics" : [], + "poses" : [], + "skeleton" : [], + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/default/in/headsetonhead" + } + }, + "mode" : "button", + "path" : "/user/head/proximity" + } + ] + } + }, + "controller_type" : "vive", + "description" : "", + "name" : "vive defaults", + "options" : {}, + "simulated_actions" : [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_vive_cosmos.json b/SteamVR_SteamVR_vrproject/1/binding_vive_cosmos.json new file mode 100644 index 0000000000000000000000000000000000000000..36b618f52c18d4e549f610a36f19a8dd81252916 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_vive_cosmos.json @@ -0,0 +1,27 @@ +{ + "alias_info": {}, + "bindings": { + "/actions/default": { + "chords": [], + "haptics": [], + "poses": [], + "skeleton": [], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/headsetonhead" + } + }, + "mode": "button", + "path": "/user/head/proximity" + } + ] + } + }, + "controller_type": "vive_cosmos", + "description": "", + "name": "vive cosmos hmd defaults", + "options": {}, + "simulated_actions": [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_vive_pro.json b/SteamVR_SteamVR_vrproject/1/binding_vive_pro.json new file mode 100644 index 0000000000000000000000000000000000000000..43ba0d33f83d784fbd54b29bde56b2e1a18d697c --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_vive_pro.json @@ -0,0 +1,27 @@ +{ + "alias_info" : {}, + "bindings" : { + "/actions/default" : { + "chords" : [], + "haptics" : [], + "poses" : [], + "skeleton" : [], + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/default/in/headsetonhead" + } + }, + "mode" : "button", + "path" : "/user/head/proximity" + } + ] + } + }, + "controller_type" : "vive_pro", + "description" : "", + "name" : "vive_pro defaults", + "options" : {}, + "simulated_actions" : [] +} diff --git a/SteamVR_SteamVR_vrproject/1/binding_vive_tracker_camera.json b/SteamVR_SteamVR_vrproject/1/binding_vive_tracker_camera.json new file mode 100644 index 0000000000000000000000000000000000000000..75e401e8dad3d21ff323a5f88d73861a96628129 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/binding_vive_tracker_camera.json @@ -0,0 +1,22 @@ +{ + "alias_info" : {}, + "bindings": { + "/actions/mixedreality": { + "haptics": [ + ], + "poses": [ + { + "output": "/actions/mixedreality/in/ExternalCamera", + "path": "/user/camera/pose/raw" + } + ], + "sources": [ + ] + } + }, + "controller_type" : "vive_tracker_camera", + "description" : "", + "name" : "tracker_forcamera", + "options" : {}, + "simulated_actions" : [] +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_holographic_controller.json b/SteamVR_SteamVR_vrproject/1/bindings_holographic_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..3b822a4bd95f7983ca5c97bf307fcbd571e404de --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_holographic_controller.json @@ -0,0 +1,307 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/trackpad" + } + ] + }, + "/actions/default" : { + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.95", + "click_deactivate_threshold": "0.9" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.95", + "click_deactivate_threshold": "0.9" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + } + ] + } + }, + "controller_type" : "holographic_controller", + "description" : "", + "name" : "Default bindings for Windows Mixed Reality Controllers" +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_knuckles.json b/SteamVR_SteamVR_vrproject/1/bindings_knuckles.json new file mode 100644 index 0000000000000000000000000000000000000000..8a4e53a6f8b2ab39c995896d6d19f028eb7c0f20 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_knuckles.json @@ -0,0 +1,326 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/thumbstick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/thumbstick" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/a" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/a" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/b" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/b" + } + ] + }, + "/actions/default" : { + "chords" : [], + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "skeleton" : [ + { + "output" : "/actions/default/in/skeletonlefthand", + "path" : "/user/hand/left/input/skeleton/left" + }, + { + "output" : "/actions/default/in/skeletonrighthand", + "path" : "/user/hand/right/input/skeleton/right" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "force": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "force_sensor", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "force": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "force_sensor", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/thumbstick" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/thumbstick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/thumbstick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/thumbstick" + }, + { + "inputs": { + "grab": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" + }, + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "grab": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" + }, + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "grab": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" + }, + "path": "/user/hand/left/input/pinch" + }, + { + "inputs": { + "grab": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "grab", + "parameters": { + "force_hold_threshold": "0.02", + "force_release_threshold": "0.01" + }, + "path": "/user/hand/right/input/pinch" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/thumbstick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/thumbstick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/trigger" + } + ] + } + }, + "controller_type" : "knuckles", + "description" : "", + "name" : "knuckles_default" +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_logitech_stylus.json b/SteamVR_SteamVR_vrproject/1/bindings_logitech_stylus.json new file mode 100644 index 0000000000000000000000000000000000000000..c3ba50dd18935fb46a7d9f46ab0c099532c1d771 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_logitech_stylus.json @@ -0,0 +1,269 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/primary" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/primary" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + }, + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/left/input/touchstrip" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + }, + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/right/input/touchstrip" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/menu" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/menu" + } + ] + }, + "/actions/default" : { + "chords" : [], + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/primary" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7", + "force_input": "value" + }, + "path": "/user/hand/left/input/primary" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/primary" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/right/input/primary" + }, + { + "inputs": { + "center": { + "output": "/actions/default/in/teleport" + }, + "east": { + "output": "/actions/default/in/snapturnright" + }, + "north": { + "output": "/actions/default/in/teleport" + }, + "south": { + "output": "/actions/default/in/teleport" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" + }, + "path": "/user/hand/left/input/touchstrip" + }, + { + "inputs": { + "center": { + "output": "/actions/default/in/teleport" + }, + "east": { + "output": "/actions/default/in/snapturnright" + }, + "north": { + "output": "/actions/default/in/teleport" + }, + "south": { + "output": "/actions/default/in/teleport" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" + }, + "path": "/user/hand/right/input/touchstrip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/tip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/tip" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/touchstrip" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/touchstrip" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/left/input/touchstrip" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/right/input/touchstrip" + } + ] + } + }, + "controller_type" : "vive_controller", + "description" : "", + "name" : "vive_controller" +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_oculus_touch.json b/SteamVR_SteamVR_vrproject/1/bindings_oculus_touch.json new file mode 100644 index 0000000000000000000000000000000000000000..7850056a15e481fc44e0ccb7f355fdd9722ab19d --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_oculus_touch.json @@ -0,0 +1,315 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/x" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/x" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/y" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/y" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/a" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/b" + } + ] + }, + "/actions/default" : { + "chords" : [], + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "skeleton" : [ + { + "output" : "/actions/default/in/skeletonlefthand", + "path" : "/user/hand/left/input/skeleton/left" + }, + { + "output" : "/actions/default/in/skeletonrighthand", + "path" : "/user/hand/right/input/skeleton/right" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7", + "force_input": "value" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/grip" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + }, + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + }, + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + } + ] + } + }, + "controller_type" : "oculus_touch", + "description" : "", + "name" : "oculus_touch" +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_vive_controller.json b/SteamVR_SteamVR_vrproject/1/bindings_vive_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..4732d0067824d9b152c2582683cae5716b28e70f --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_vive_controller.json @@ -0,0 +1,289 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + }, + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/left/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + }, + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/right/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/application_menu" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/application_menu" + } + ] + }, + "/actions/default" : { + "chords" : [], + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "skeleton" : [ + { + "output" : "/actions/default/in/skeletonlefthand", + "path" : "/user/hand/left/input/skeleton/left" + }, + { + "output" : "/actions/default/in/skeletonrighthand", + "path" : "/user/hand/right/input/skeleton/right" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.05", + "click_deactivate_threshold": "0", + "force_input": "force" + }, + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7", + "force_input": "value" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.75", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "center": { + "output": "/actions/default/in/teleport" + }, + "east": { + "output": "/actions/default/in/snapturnright" + }, + "north": { + "output": "/actions/default/in/teleport" + }, + "south": { + "output": "/actions/default/in/teleport" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" + }, + "path": "/user/hand/left/input/trackpad" + }, + { + "inputs": { + "center": { + "output": "/actions/default/in/teleport" + }, + "east": { + "output": "/actions/default/in/snapturnright" + }, + "north": { + "output": "/actions/default/in/teleport" + }, + "south": { + "output": "/actions/default/in/teleport" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "90", + "overlap_pct": "15", + "sub_mode": "click" + }, + "path": "/user/hand/right/input/trackpad" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.05", + "click_deactivate_threshold": "0", + "force_input": "force" + }, + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/trackpad" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/trackpad" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/left/input/trackpad" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "trackpad", + "path" : "/user/hand/right/input/trackpad" + } + ] + } + }, + "controller_type" : "vive_controller", + "description" : "", + "name" : "vive_controller" +} diff --git a/SteamVR_SteamVR_vrproject/1/bindings_vive_cosmos_controller.json b/SteamVR_SteamVR_vrproject/1/bindings_vive_cosmos_controller.json new file mode 100644 index 0000000000000000000000000000000000000000..2b2193aece5397fbf8b41ca2494775735c312173 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/bindings_vive_cosmos_controller.json @@ -0,0 +1,289 @@ +{ + "bindings" : { + "/actions/buggy" : { + "sources" : [ + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/left/input/trigger" + }, + { + "inputs" : { + "pull" : { + "output" : "/actions/buggy/in/throttle" + } + }, + "mode" : "trigger", + "path" : "/user/hand/right/input/trigger" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "position" : { + "output" : "/actions/buggy/in/steering" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/x" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/left/input/y" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/brake" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/a" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/buggy/in/reset" + } + }, + "mode" : "button", + "path" : "/user/hand/right/input/b" + } + ] + }, + "/actions/default" : { + "chords" : [], + "haptics" : [ + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/left/output/haptic" + }, + { + "output" : "/actions/default/out/haptic", + "path" : "/user/hand/right/output/haptic" + } + ], + "poses" : [ + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/left/pose/raw" + }, + { + "output" : "/actions/default/in/pose", + "path" : "/user/hand/right/pose/raw" + } + ], + "skeleton" : [ + { + "output" : "/actions/default/in/skeletonlefthand", + "path" : "/user/hand/left/input/skeleton/left" + }, + { + "output" : "/actions/default/in/skeletonrighthand", + "path" : "/user/hand/right/input/skeleton/right" + } + ], + "sources": [ + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/left/input/grip" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7", + "force_input": "value" + }, + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/interactui" + } + }, + "mode": "button", + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabpinch" + } + }, + "mode": "button", + "parameters": { + "click_activate_threshold": "0.8", + "click_deactivate_threshold": "0.7" + }, + "path": "/user/hand/right/input/trigger" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "north": { + "output": "/actions/default/in/teleport" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "25", + "overlap_pct": "30", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/left/input/joystick" + }, + { + "inputs": { + "east": { + "output": "/actions/default/in/snapturnright" + }, + "west": { + "output": "/actions/default/in/snapturnleft" + } + }, + "mode": "dpad", + "parameters": { + "deadzone_pct": "85", + "overlap_pct": "0", + "sub_mode": "touch" + }, + "path": "/user/hand/right/input/joystick" + }, + { + "inputs": { + "click": { + "output": "/actions/default/in/grabgrip" + } + }, + "mode": "button", + "path": "/user/hand/right/input/grip" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/left/input/trigger" + }, + { + "inputs": { + "pull": { + "output": "/actions/default/in/squeeze" + } + }, + "mode": "trigger", + "path": "/user/hand/right/input/trigger" + } + ] + }, + "/actions/platformer" : { + "sources" : [ + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + }, + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/left/input/joystick" + }, + { + "inputs" : { + "click" : { + "output" : "/actions/platformer/in/jump" + }, + "position" : { + "output" : "/actions/platformer/in/move" + } + }, + "mode" : "joystick", + "path" : "/user/hand/right/input/joystick" + } + ] + } + }, + "controller_type" : "vive_cosmos_controller", + "description" : "", + "name" : "vive_cosmos_controller" +} diff --git a/SteamVR_SteamVR_vrproject/1/steamvr_partial_manifest.json b/SteamVR_SteamVR_vrproject/1/steamvr_partial_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..d21be9ce222e90bcbd80cb18adf59da63b3bb472 --- /dev/null +++ b/SteamVR_SteamVR_vrproject/1/steamvr_partial_manifest.json @@ -0,0 +1,7 @@ +{ + "name": "SteamVR_vrproject", + "version": 1, + "overwriteOld": true, + "removeUnused": true, + "imported": false +} \ No newline at end of file diff --git a/unityProject.vrmanifest b/unityProject.vrmanifest new file mode 100644 index 0000000000000000000000000000000000000000..d69ad82babf11d99123c9f65cc1126cd1af15fdf --- /dev/null +++ b/unityProject.vrmanifest @@ -0,0 +1,16 @@ +{ + "source": "Unity", + "applications": [ + { + "app_key": "application.generated.unity.vrproject.exe", + "launch_type": "url", + "url": "steam://launch/", + "action_manifest_path": "C:\\Users\\herke\\OneDrive\\Desktop\\code\\profesional projects\\JEDI Playground\\VR project\\Assets\\StreamingAssets\\SteamVR\\actions.json", + "strings": { + "en_us": { + "name": "VR project [Testing]" + } + } + } + ] +} \ No newline at end of file