void RemoveGameObjects(PolyRaycastHit hit, BrushTarget target, BrushSettings settings) { Vector3 worldHitPosition = target.editableObject.transform.TransformPoint(hit.position); int count = m_PrefabsInstances.Count; for (int i = 0; i < count; i++) { // Skip the object if prefab is not part of the current loadout. if (!prefabLoadoutEditor.ContainsPrefabInstance(m_PrefabsInstances[i])) { continue; } float pivotOffset = s_UsePivotForPlacement ? 0f : GetPivotOffset(m_PrefabsInstances[i]); float prefabDistance = SceneView.lastActiveSceneView.in2DMode ? Vector2.Distance(worldHitPosition, m_PrefabsInstances[i].transform.position + (pivotOffset * m_PrefabsInstances[i].transform.up)) : Vector3.Distance(worldHitPosition, m_PrefabsInstances[i].transform.position + (pivotOffset * m_PrefabsInstances[i].transform.up)); if (m_PrefabsInstances[i] != null && prefabDistance < settings.radius) { GameObject go = m_PrefabsInstances[i]; m_PrefabsInstances.RemoveAt(i); count--; Undo.DestroyObjectImmediate(go); } } }
void RemoveGameObjects(PolyRaycastHit hit, BrushTarget target, BrushSettings settings) { Vector3 worldHitPosition = target.editableObject.transform.TransformPoint(hit.position); int count = m_PrefabsInstances.Count; for (int i = 0; i < count; i++) { // Skip the object if prefab is not part of the current loadout. if (!prefabLoadoutEditor.ContainsPrefabInstance(m_PrefabsInstances[i])) { continue; } if (m_PrefabsInstances[i] != null && Vector3.Distance(worldHitPosition, m_PrefabsInstances[i].transform.position) < settings.radius) { GameObject go = m_PrefabsInstances[i]; m_PrefabsInstances.RemoveAt(i); count--; Undo.DestroyObjectImmediate(go); } } }