Skip to content

Commit

Permalink
Merge branch 'master' of github.com:FJThiel/ubiq
Browse files Browse the repository at this point in the history
  • Loading branch information
FJThiel committed Aug 14, 2023
2 parents fd07f6e + d5a6a5f commit b34758a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
13 changes: 13 additions & 0 deletions Unity/Assets/Runtime/XR/UIInteraction/DesktopRaycasterCursor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,18 @@ public class DesktopRaycasterCursor : MonoBehaviour
{
public new Renderer renderer;

[Tooltip("When enabled, the cursor will scale depending on the distance to the user.")]
public bool ScaleCursor = true;

private DesktopUIRaycaster desktopRaycaster;

private Vector3 localScale;

private void Awake()
{
desktopRaycaster = GetComponent<DesktopUIRaycaster>();

localScale = renderer.transform.localScale;
}

private void OnEnable()
Expand Down Expand Up @@ -39,6 +46,12 @@ private void Update()

private void DesktopRaycaster_OnRaycastHit (Vector3 hit, Vector3 normal)
{
if(ScaleCursor)
{
Vector3 scale = transform.position - hit;
renderer.transform.localScale = localScale * scale.magnitude;
}

renderer.enabled = true;
renderer.transform.position = hit;
renderer.transform.rotation = Quaternion.LookRotation(-normal);
Expand Down
17 changes: 15 additions & 2 deletions Unity/Assets/Runtime/XR/UIInteraction/XRUIRaycasterCursor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,18 @@ public class XRUIRaycasterCursor : MonoBehaviour
{
public new Renderer renderer;

[Tooltip("When enabled, the cursor will scale depending on the distance to the user.")]
public bool ScaleCursor = true;

private XRUIRaycaster xruiRaycaster;

private Vector3 localScale;

private void Awake()
{
xruiRaycaster = GetComponent<XRUIRaycaster>();

localScale = renderer.transform.localScale;
}

private void OnEnable()
Expand All @@ -29,14 +36,20 @@ private void OnDisable()
}
}

private void XRUIRaycaster_OnRaycastHit (Vector3 hit, Vector3 normal)
private void XRUIRaycaster_OnRaycastHit(Vector3 hit, Vector3 normal)
{
if (ScaleCursor)
{
Vector3 scale = transform.position - hit;
renderer.transform.localScale = localScale * scale.magnitude;
}

renderer.enabled = true;
renderer.transform.position = hit;
renderer.transform.rotation = Quaternion.LookRotation(-normal);
}

private void XRUIRaycaster_OnRaycastMiss ()
private void XRUIRaycaster_OnRaycastMiss()
{
renderer.enabled = false;
}
Expand Down

0 comments on commit b34758a

Please sign in to comment.