void LeftClick() { Collider[] cols = Physics.OverlapSphere(transform.position, 1.5f); float min = 1000f; Vector3 closestPoint = Vector3.zero; GameObject o = null; foreach (Collider col in cols) { if (col.gameObject.name != "Trigger" && col.gameObject.tag != "Player") { Vector3 p = col.bounds.ClosestPoint(transform.position); float d = (p - transform.position).sqrMagnitude; if (d < min) { min = d; closestPoint = p; o = col.gameObject; } } } if (closestPoint == Vector3.zero) { return; } Vector3 dir = fwd.position - cam.position; GameObject obj = Instantiate(basicTentacle, Vector3.zero, Quaternion.identity) as GameObject; Tentacle t = obj.GetComponent <Tentacle> (); if (o.GetComponent <MeshPart> ()) { MeshPart omp = o.GetComponent <MeshPart> (); t.origin = omp.startPosition; t.customOrigin = true; t.startRadius = omp.startRadius * 1.3f; t.direction = dir.normalized; } else { t.origin = transform.position; t.direction = dir.normalized; t.origin = closestPoint; } t.Go(); }