void Update() { if (isRunning == false) { return; } if (Physics.Raycast(transform.position, transform.forward, out hit)) { line.SetPosition(1, Vector3.Lerp(line.GetPosition(1), transform.InverseTransformPoint(hit.point), 0.5001f)); pointable = hit.transform.GetComponent <IPointable>(); if (Trigger) { pointable?.Click(); } } else { line.SetPosition(1, Vector3.Lerp(line.GetPosition(1), Vector3.forward * 0.2f, 0.5001f)); pointable = null; } if (pointable != prevPointable) { prevPointable?.UnPoint(); pointable?.Point(); prevPointable = pointable; } }