// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using UnityEngine;
using UnityEngine.EventSystems;
namespace Microsoft.MixedReality.Toolkit.Input.Utilities
{
///
/// Helper class for setting up canvases for use in the MRTK.
///
[DisallowMultipleComponent]
[RequireComponent(typeof(Canvas))]
[AddComponentMenu("Scripts/MRTK/Services/CanvasUtility")]
public class CanvasUtility : MonoBehaviour, IMixedRealityPointerHandler
{
private bool oldIsTargetPositionLockedOnFocusLock = false;
public void OnPointerClicked(MixedRealityPointerEventData eventData) { }
public void OnPointerDown(MixedRealityPointerEventData eventData)
{
oldIsTargetPositionLockedOnFocusLock = eventData.Pointer.IsTargetPositionLockedOnFocusLock;
if (!(eventData.Pointer is IMixedRealityNearPointer) && eventData.Pointer.Controller.IsRotationAvailable)
{
eventData.Pointer.IsTargetPositionLockedOnFocusLock = false;
}
}
public void OnPointerDragged(MixedRealityPointerEventData eventData) { }
public void OnPointerUp(MixedRealityPointerEventData eventData)
{
eventData.Pointer.IsTargetPositionLockedOnFocusLock = oldIsTargetPositionLockedOnFocusLock;
}
private void Start()
{
VerifyCanvasConfiguration();
}
///
/// Verifies and updates MRTK related canvas configuration.
///
public void VerifyCanvasConfiguration()
{
Canvas canvas = GetComponent