clean project

This commit is contained in:
Helar Jaadla
2022-03-07 17:52:41 +02:00
parent a174b45bd2
commit cbeb10ec35
5100 changed files with 837159 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
/************************************************************************************
Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
Your use of this SDK or tool is subject to the Oculus SDK License Agreement, available at
https://developer.oculus.com/licenses/oculussdk/
Unless required by applicable law or agreed to in writing, the Utilities SDK distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
ANY KIND, either express or implied. See the License for the specific language governing
permissions and limitations under the License.
************************************************************************************/
using Oculus.Interaction.Input;
using UnityEngine;
using UnityEngine.Assertions;
using UnityEngine.Serialization;
namespace Oculus.Interaction
{
public class ControllerOffset : MonoBehaviour
{
[SerializeField, Interface(typeof(IController))]
private MonoBehaviour _controller;
public IController Controller { get; private set; }
[SerializeField]
private Vector3 _offset;
[SerializeField]
private Quaternion _rotation = Quaternion.identity;
private Pose _cachedPose = Pose.identity;
protected bool _started = false;
protected virtual void Awake()
{
Controller = _controller as IController;
}
protected virtual void Start()
{
this.BeginStart(ref _started);
Assert.IsNotNull(Controller);
this.EndStart(ref _started);
}
protected virtual void OnEnable()
{
if (_started)
{
Controller.ControllerUpdated += HandleControllerUpdated;
}
}
protected virtual void OnDisable()
{
if (_started)
{
Controller.ControllerUpdated -= HandleControllerUpdated;
}
}
private void HandleControllerUpdated()
{
if (Controller.TryGetPose(out Pose rootPose))
{
GetOffset(ref _cachedPose);
_cachedPose.Postmultiply(rootPose);
transform.SetPose(_cachedPose);
}
}
public void GetOffset(ref Pose pose)
{
pose.position = _offset;
pose.rotation = _rotation;
}
public void GetWorldPose(ref Pose pose)
{
pose.position = this.transform.position;
pose.rotation = this.transform.rotation;
}
#region Inject
public void InjectController(IController controller)
{
_controller = controller as MonoBehaviour;
Controller = controller;
}
public void InjectOffset(Vector3 offset)
{
_offset = offset;
}
public void InjectRotation(Quaternion rotation)
{
_rotation = rotation;
}
public void InjectAllControllerOffset(IController controller,
Vector3 offset, Quaternion rotation)
{
InjectController(controller);
InjectOffset(offset);
InjectRotation(rotation);
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 488896fe86105104a8453d9f173cf62a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,98 @@
/************************************************************************************
Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
Your use of this SDK or tool is subject to the Oculus SDK License Agreement, available at
https://developer.oculus.com/licenses/oculussdk/
Unless required by applicable law or agreed to in writing, the Utilities SDK distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
ANY KIND, either express or implied. See the License for the specific language governing
permissions and limitations under the License.
************************************************************************************/
using Oculus.Interaction.Input;
using UnityEngine;
using UnityEngine.Assertions;
using UnityEngine.Serialization;
namespace Oculus.Interaction
{
public class ControllerPointerPose : MonoBehaviour, IActiveState
{
[SerializeField, Interface(typeof(IController))]
private MonoBehaviour _controller;
public IController Controller { get; private set; }
[SerializeField]
private Vector3 _offset;
protected bool _started = false;
public bool Active { get; private set; }
protected virtual void Awake()
{
Controller = _controller as IController;
}
protected virtual void Start()
{
this.BeginStart(ref _started);
Assert.IsNotNull(Controller);
this.EndStart(ref _started);
}
protected virtual void OnEnable()
{
if (_started)
{
Controller.ControllerUpdated += HandleControllerUpdated;
}
}
protected virtual void OnDisable()
{
if (_started)
{
Controller.ControllerUpdated -= HandleControllerUpdated;
}
}
private void HandleControllerUpdated()
{
IController controller = Controller;
if (controller.TryGetPointerPose(out Pose pose))
{
pose.position += pose.rotation * _offset;
transform.SetPose(pose);
Active = true;
}
else
{
Active = false;
}
}
#region Inject
public void InjectController(IController controller)
{
_controller = controller as MonoBehaviour;
Controller = controller;
}
public void InjectOffset(Vector3 offset)
{
_offset = offset;
}
public void InjectAllHandPointerPose(IController controller,
Vector3 offset)
{
InjectController(controller);
InjectOffset(offset);
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 438e12c9002f2c8489c81a2d3472b18d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,117 @@
/************************************************************************************
Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
Your use of this SDK or tool is subject to the Oculus SDK License Agreement, available at
https://developer.oculus.com/licenses/oculussdk/
Unless required by applicable law or agreed to in writing, the Utilities SDK distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
ANY KIND, either express or implied. See the License for the specific language governing
permissions and limitations under the License.
************************************************************************************/
using Oculus.Interaction.Input;
using System;
using UnityEngine;
using UnityEngine.Assertions;
using UnityEngine.Serialization;
namespace Oculus.Interaction
{
public class ControllerSelector : MonoBehaviour, ISelector
{
public enum ControllerSelectorLogicOperator
{
Any = 0,
All = 1
}
[SerializeField, Interface(typeof(IController))]
private MonoBehaviour _controller;
[SerializeField]
private ControllerButtonUsage _controllerButtonUsage;
[SerializeField]
private ControllerSelectorLogicOperator _requireButtonUsages =
ControllerSelectorLogicOperator.Any;
#region Properties
public ControllerButtonUsage ControllerButtonUsage
{
get
{
return _controllerButtonUsage;
}
set
{
_controllerButtonUsage = value;
}
}
public ControllerSelectorLogicOperator RequireButtonUsages
{
get
{
return _requireButtonUsages;
}
set
{
_requireButtonUsages = value;
}
}
#endregion
public IController Controller { get; private set; }
public event Action WhenSelected = delegate { };
public event Action WhenUnselected = delegate { };
private bool _selected;
protected virtual void Awake()
{
Controller = _controller as IController;
}
protected virtual void Start()
{
Assert.IsNotNull(Controller);
}
protected virtual void Update()
{
bool selected = _requireButtonUsages == ControllerSelectorLogicOperator.All
? Controller.IsButtonUsageAllActive(_controllerButtonUsage)
: Controller.IsButtonUsageAnyActive(_controllerButtonUsage);
if (selected)
{
if (_selected) return;
_selected = true;
WhenSelected();
}
else
{
if (!_selected) return;
_selected = false;
WhenUnselected();
}
}
#region Inject
public void InjectAllControllerSelector(IController controller)
{
InjectController(controller);
}
public void InjectController(IController controller)
{
_controller = controller as MonoBehaviour;;
Controller = controller;
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6d2303af7d4c7114681742031c4a0ac6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: