void EmitElement(GameObject element, Vector3 position, bool isFloor, int id, bool isColorize) { if (element != null) { GameObject newInst = (GameObject)PrefabUtility.InstantiatePrefab(element); newInst.transform.position = position; newInst.GetComponent <Renderer>().material = new Material(newInst.GetComponent <Renderer>().sharedMaterial); DRId drIdComponent = newInst.GetComponent <DRId>(); if (drIdComponent != null) { drIdComponent.id = id; } if (isColorize) { SetColor(id, newInst); } wallModels.Add(newInst); if (!isFloor) { newInst.transform.SetParent(wallsRoot.transform); } else { newInst.transform.SetParent(floorRoot.transform); } } }
void SetColor() { DRId drIdObject = (DRId)target; if (idProperty.intValue <= -1) { drIdObject.gameObject.GetComponent <Renderer>().sharedMaterial.color = new Color(227f / 255f, 227f / 255f, 227f / 255f); } else { drIdObject.gameObject.GetComponent <Renderer>().sharedMaterial.color = HSVToRGB(GetSin(idProperty.intValue, 0f), 0.5f, 0.8f); } }