using System.Collections; using System.Collections.Generic; using UnityEngine; public class HideWall : MonoBehaviour { public float maxRayDistance; [SerializeField] private GameObject target; [SerializeField] private GameObject origin; public Material defaultMaterial; // Material when not hitting "Wall" public Material hitMaterial; // Material when hitting "Wall" public GameObject prevObject; void Update() { Vector3 direction = (target.transform.position - origin.transform.position).normalized; RaycastHit hit; if (Physics.Raycast(origin.transform.position, direction, out hit, maxRayDistance)) { if (hit.collider.CompareTag("Wall")) { if (prevObject == hit.collider.gameObject) { hit.collider.GetComponent().material = hitMaterial; prevObject = hit.collider.gameObject; } else { hit.collider.GetComponent().material = defaultMaterial; } } } } private void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawRay(origin.transform.position, (target.transform.position - origin.transform.position).normalized * maxRayDistance); } }