forked from cgvr/DeltaVR
65 lines
1.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|