void FixedUpdate() { Vector3 playerPos = GameObject.FindWithTag("Player").transform.position; Vector3 direction = (playerPos - transform.position); Ray ray = new Ray(transform.position, direction); RaycastHit hit; GameObject HitObject; if (topCamera.isActiveAndEnabled) { if (Physics.Raycast(ray, out hit)) { Debug.DrawRay(transform.position, direction, Color.blue); HitObject = hit.collider.gameObject; if (!hit.collider.CompareTag("Player")) { if (HitObject.CompareTag("VariableTransparency")) { if (HitObject.GetComponent <Renderer>() != null) { Debug.Log(previousHit); if (hit.collider.gameObject != previousHit) { previousHit.GetComponent <Renderer>().material = opaqueMaterial; //Debug.Log("Applied Opaque"); } else { HitObject.GetComponent <Renderer>().material = transparentMaterial; //Debug.Log("Applied Transparent"); } previousHit = HitObject; Debug.Log(previousHit); } } } if (hit.collider.tag == "Player") { //Debug.Log("Hit Player! Call Amberlamps"); Debug.DrawLine(transform.position, playerPos, Color.black); previousHit.GetComponent <Renderer>().material = opaqueMaterial; } } } }