void PrefabRemove(Vector3 hitPos, RaycastHit hit) { if (useRadius) { PrefabPainted[] prefabsInRadius; prefabsInRadius = GameObject.FindObjectsOfType <PrefabPainted> (); float thresh = radius * radius; foreach (PrefabPainted p in prefabsInRadius) { float dist = Vector3.SqrMagnitude(hitPos - p.transform.position); if (dist <= thresh) { Undo.DestroyObjectImmediate(p.gameObject); } } } else { PrefabPainted p = hit.collider.GetComponent <PrefabPainted>(); if (p != null) { Undo.DestroyObjectImmediate(p.gameObject); } } }
void PrefabRemove(Collider hitCollider) { if (drawMode == DrawMode.Field || drawMode == DrawMode.RandomArea) { float thresh = radius * radius; PrefabPainted[] prefabsInRadius = GameObject.FindObjectsOfType <PrefabPainted> (); foreach (var p in prefabsInRadius) { if (Vector3.SqrMagnitude(hitPos - p.transform.position) <= thresh) { Undo.DestroyObjectImmediate(p.gameObject); } } } else { PrefabPainted p = hitCollider.GetComponent <PrefabPainted>(); if (p != null) { Undo.DestroyObjectImmediate(p.gameObject); } } }