clean project
This commit is contained in:
56
Assets/Oculus/Avatar/Scripts/GazeTarget.cs
Normal file
56
Assets/Oculus/Avatar/Scripts/GazeTarget.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Oculus.Avatar;
|
||||
|
||||
public class GazeTarget : MonoBehaviour
|
||||
{
|
||||
public ovrAvatarGazeTargetType Type;
|
||||
private static ovrAvatarGazeTargets RuntimeTargetList;
|
||||
|
||||
static GazeTarget()
|
||||
{
|
||||
// This size has to match the 'MarshalAs' attribute in the ovrAvatarGazeTargets declaration.
|
||||
RuntimeTargetList.targets = new ovrAvatarGazeTarget[128];
|
||||
RuntimeTargetList.targetCount = 1;
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
UpdateGazeTarget();
|
||||
transform.hasChanged = false;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (transform.hasChanged)
|
||||
{
|
||||
transform.hasChanged = false;
|
||||
UpdateGazeTarget();
|
||||
}
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
UInt32[] targetIds = new UInt32[1];
|
||||
targetIds[0] = (UInt32) transform.GetInstanceID();
|
||||
CAPI.ovrAvatar_RemoveGazeTargets(1, targetIds);
|
||||
}
|
||||
|
||||
private void UpdateGazeTarget()
|
||||
{
|
||||
ovrAvatarGazeTarget target = CreateOvrGazeTarget((UInt32) transform.GetInstanceID(), transform.position, Type);
|
||||
RuntimeTargetList.targets[0] = target;
|
||||
CAPI.ovrAvatar_UpdateGazeTargets(RuntimeTargetList);
|
||||
}
|
||||
|
||||
private ovrAvatarGazeTarget CreateOvrGazeTarget(UInt32 targetId, Vector3 targetPosition, ovrAvatarGazeTargetType targetType)
|
||||
{
|
||||
return new ovrAvatarGazeTarget
|
||||
{
|
||||
id = targetId,
|
||||
// Do coordinate system switch.
|
||||
worldPosition = new Vector3(targetPosition.x, targetPosition.y, -targetPosition.z),
|
||||
type = targetType
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user