void RaycastToBurnable() { Debug.Log("rdy to burn"); Ray ray = new Ray(); if (npc) { ray.origin = transform.position; ray.direction = transform.forward; } else { ray.origin = Camera.main.transform.position; ray.direction = Camera.main.transform.forward; } RaycastHit hit; GameObject fireEffect; if (Physics.Raycast(ray, out hit)) { // Spawn particle effect at hit point if (fire != null) { fireEffect = Instantiate(fire, hit.point, Quaternion.identity); } else { fireEffect = GameObject.CreatePrimitive(PrimitiveType.Sphere); fireEffect.transform.position = hit.point; particleSystemDuration = 3f; } Destroy(fireEffect, particleSystemDuration); IBurnable burnable = hit.transform.gameObject.GetComponent <IBurnable>(); if (burnable != null) { burnable.Burns(); } } }