private void SetNewModel(GameObject avatarGO, string elementName, ResourceOptionList meshOptList, int newModelIdx) { if (!meshOptList.loadFromDisk) { string modelNameWeWant = meshOptList.GetResourceName(newModelIdx); for (int i = 0; i < meshOptList.Count; ++i) { Transform subMeshTransform = avatarGO.transform.Find(meshOptList.GetResourceName(i)); if (subMeshTransform != null) { subMeshTransform.gameObject.SetActive(subMeshTransform.name == modelNameWeWant); } else if (meshOptList.GetResourceName(i) != "") { Debug.LogError("Did not find model: " + meshOptList.GetResourceName(i)); } } } else { Transform subMeshTransform = avatarGO.transform.Find(elementName); if (subMeshTransform == null) { Debug.LogError(elementName + " not found"); return; } GameObject newMeshGO = (GameObject)meshOptList.GetResource(newModelIdx); subMeshTransform.GetComponent <Renderer>().enabled = newMeshGO != null; if (newMeshGO != null) { subMeshTransform.gameObject.GetComponent <MeshFilter>().mesh = ((GameObject)meshOptList.GetResource(newModelIdx)).GetComponent <MeshFilter>().mesh; } } }
private void AddOption(int idx, ResourceOptionList newOption) { if (!avatarOptions.ContainsKey(idx)) { avatarOptions[idx] = new Dictionary <string, ResourceOptionList>(); } avatarOptions[idx].Add(newOption.uniqueElementName, newOption); }
bool GetResourceOptionList(int characterIdx, string uniqueElementName, out ResourceOptionList toList) { toList = null; if (!avatarOptions.ContainsKey(characterIdx) || !avatarOptions[characterIdx].TryGetValue(uniqueElementName, out toList)) { return(false); } return(true); }