예제 #1
0
    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);
    }
예제 #2
0
    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;
            }
        }
    }