private List <GameObject> SelectInternal(PhysicalMap physicalMap, SelectionObjectType type) { if (physicalMap == null) { Debug.Log("NO PHYSICAL MAP!"); return(null); } DaedalusDebugUtils.Assert(physicalMap.gameObjectLists != null, "Physical map's game object lists are null!"); List <GameObject> list = physicalMap.GetObjectsOfType(type) as List <GameObject>; if (list.Count == 0) { Debug.Log("NO ITEMS!"); return(list); } if (OVERRIDE_MATERIALS) { Material currentMat = list[0].GetComponentsInChildren <MeshRenderer>()[0].sharedMaterial; if (originalMaterials.ContainsKey(type) && originalMaterials[type] != null) { // Already selected! return(list); } else { originalMaterials[type] = currentMat; } Material sharedMat = new Material(currentMat); sharedMat.color = Color.blue; sharedMat.name = "Debug Material"; foreach (GameObject go in list) { foreach (MeshRenderer r in go.GetComponentsInChildren <MeshRenderer>()) { r.sharedMaterial = sharedMat; } } } return(list); }
private void ClearList(PhysicalMap physicalMap, SelectionObjectType type) { List <GameObject> list = physicalMap.GetObjectsOfType(type); if (OVERRIDE_MATERIALS) { if (originalMaterials.ContainsKey(type) && originalMaterials[type] != null) { foreach (GameObject go in list) { foreach (MeshRenderer r in go.GetComponentsInChildren <MeshRenderer>()) { r.sharedMaterial = originalMaterials[type]; } } originalMaterials[type] = null; } } }