1
0
forked from cgvr/DeltaVR
Files
DeltaVR3DModelGeneration/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/ShapeScannerRay.cs
2026-01-11 17:48:58 +02:00

65 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShapeScannerRay : MonoBehaviour
{
public Material _activeMaterial;
public Material _passiveMaterial;
private ShapeScanner _scanner;
private MeshRenderer meshRenderer;
private bool _collisionRequired;
void Awake()
{
meshRenderer = GetComponent<MeshRenderer>();
}
// Update is called once per frame
void Update()
{
}
public void Initialize(ShapeScanner scanner, bool collisionRequired, Material activeMaterial, Material passiveMaterial)
{
_scanner = scanner;
_collisionRequired = collisionRequired;
_activeMaterial = activeMaterial;
_passiveMaterial = passiveMaterial;
meshRenderer.material = _passiveMaterial;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "ShapeScannable")
{
meshRenderer.material = _activeMaterial;
if (_collisionRequired)
{
_scanner.IncrementCorrectRayCount();
} else
{
_scanner.DecrementCorrectRayCount();
}
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject.tag == "ShapeScannable")
{
meshRenderer.material = _passiveMaterial;
if (_collisionRequired)
{
_scanner.DecrementCorrectRayCount();
} else
{
_scanner.IncrementCorrectRayCount();
}
}
}
}