Replace UltimateXR with HurricaneVR

This commit is contained in:
2024-08-08 17:01:07 +02:00
parent e8658374d6
commit fb21dbbb73
5932 changed files with 358362 additions and 2174150 deletions

View File

@@ -0,0 +1,72 @@
using System.Collections.Generic;
using UnityEngine;
namespace HurricaneVR.Framework.Components
{
public class HVRMeshGlowHighlight : HVRGrabbableHoverBase
{
private readonly HashSet<GameObject> _highlightObjects = new HashSet<GameObject>();
private readonly HashSet<MeshRenderer> _renderers = new HashSet<MeshRenderer>();
void Awake()
{
var meshes = GetComponentsInChildren<MeshFilter>();
foreach (var mesh in meshes)
{
var go = mesh.gameObject;
var meshRenderer = go.GetComponent<MeshRenderer>();
if (meshRenderer)
{
_renderers.Add(meshRenderer);
}
var highlightObj = new GameObject("HighlightMesh");
highlightObj.transform.SetParent(go.transform, false);
var clone = highlightObj.AddComponent<MeshFilter>();
clone.sharedMesh = mesh.sharedMesh;
var newRenderer = highlightObj.AddComponent<MeshRenderer>();
newRenderer.sharedMaterial = Resources.Load<Material>("GrabbableHighlight");
_highlightObjects.Add(highlightObj);
highlightObj.SetActive(false);
}
}
public override void Hover()
{
foreach (var highlight in _highlightObjects)
{
highlight.SetActive(true);
}
foreach (var r in _renderers)
{
r.enabled = false;
}
}
public override void Unhover()
{
foreach (var highlight in _highlightObjects)
{
highlight.SetActive(false);
}
foreach (var r in _renderers)
{
r.enabled = true;
}
}
public override void Enable()
{
}
public override void Disable()
{
}
}
}