using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShapeScannerRay : MonoBehaviour { public Material _activeMaterial; public Material _passiveMaterial; public string scannableTag = "ShapeScannable"; private ShapeScanner _scanner; private MeshRenderer meshRenderer; private bool _collisionRequired; void Awake() { meshRenderer = GetComponent(); } // 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 == scannableTag) { 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(); } } } }