forked from cgvr/DeltaVR
implemented shape scanner
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user