public void DetectAll() { if (_DK_UMACrowd == null) { UMACrowdObj = GameObject.Find("DKUMACrowd"); if (UMACrowdObj == null) { UMACrowdObj = (GameObject)Instantiate(Resources.Load("DKUMACrowd"), Vector3.zero, Quaternion.identity); UMACrowdObj.name = "DKUMACrowd"; #if UNITY_EDITOR PrefabUtility.ReconnectToLastPrefab(UMACrowdObj); #endif } _DK_UMACrowd = UMACrowdObj.GetComponent <DK_UMACrowd>(); } if (!DKumaGenerator) { DKumaGenerator = GameObject.Find("DKUMAGenerator").GetComponent("DKUMAGenerator") as DKUMAGenerator; } if (!slotLibrary) { slotLibrary = _DK_UMACrowd.slotLibrary; } if (!raceLibrary) { raceLibrary = _DK_UMACrowd.raceLibrary; } if (!overlayLibrary) { overlayLibrary = _DK_UMACrowd.overlayLibrary; } }
/* * public void OnEnable () { * DK_UMACrowdObj = GameObject.Find("UMACrowd"); * _DK_UMACrowd = DK_UMACrowdObj.gameObject.GetComponent< DK_UMACrowd >(); * _DK_UMACrowd.generateUMA = false; * _DK_UMACrowd.generateLotsUMA = false; * _DK_UMACrowd.UMAGenerated = true; * umaDirtyList.Clear(); * } */ public void Awake() { _DKUMAGenerator = GameObject.Find("DKUMAGenerator").GetComponent <DKUMAGenerator>(); DK_UMACrowdObj = GameObject.Find("DKUMACrowd"); if (DK_UMACrowdObj) { _DK_UMACrowd = DK_UMACrowdObj.gameObject.GetComponent <DK_UMACrowd>(); } #if UNITY_EDITOR if (_DKUMAGenerator.usePRO && !UnityEditorInternal.InternalEditorUtility.HasPro()) { // Debug.LogWarning("You might need to disable usePRO option in the Setup tab of DK UMA Editor window."); _DKUMAGenerator.usePRO = false; } else { _DKUMAGenerator.usePRO = true; } #endif List <string> tmplist = new List <string>(); tmplist.Add("_MainTex"); tmplist.Add("_BumpTex"); textureNameList = tmplist.ToArray(); // _DK_UMACrowd.generateUMA = false; // _DK_UMACrowd.generateLotsUMA = false; // _DK_UMACrowd.UMAGenerated = true; // umaDirtyList.Clear(); _DKUMAGenerator.maxMeshUpdates = 1; if (_DKUMAGenerator.atlasResolution == 0) { _DKUMAGenerator.atlasResolution = 256; } umaGeneratorCoroutine = new DK_RPG_SelfGeneratorCoroutine(); // if(!textureMerge){ // textureMerge = GameObject.Find ("TextureMerge").GetComponent("DKTextureMerge") as DKTextureMerge; if (!textureMerge) { Transform tempTextureMerger = Instantiate(_DKUMAGenerator.textureMergePrefab, Vector3.zero, Quaternion.identity) as Transform; tempTextureMerger.name = "TextureMerge"; textureMerge = tempTextureMerger.GetComponent("DKTextureMerge") as DKTextureMerge; textureMerge.transform.parent = transform; textureMerge.gameObject.SetActive(false); } // } //Garbage Collection hack var mb = (System.GC.GetTotalMemory(false) / (1024 * 1024)); if (mb < 10) { byte[] data = new byte[10 * 1024 * 1024]; data[0] = 0; data[10 * 1024 * 1024 - 1] = 0; } }
void SearchUMASlots() { UMASlotsList.Clear(); GameObject UMACrowdObj = GameObject.Find("DKUMACrowd"); DK_UMACrowd _DK_UMACrowd = UMACrowdObj.GetComponent <DK_UMACrowd>(); System.Type type = _DK_UMACrowd.Default.ResearchDefault._SlotData.GetType(); GetAssetsOfType(type, ".asset"); }
public void CleanLibraries() { List <DKSlotData> tmpList = new List <DKSlotData>(); List <DKSlotData> RemoveList = new List <DKSlotData>(); List <DKOverlayData> tmpList2 = new List <DKOverlayData>(); List <DKOverlayData> removeList2 = new List <DKOverlayData>(); if (_DK_UMACrowd == null) { try{ _DK_UMACrowd = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>(); }catch (NullReferenceException) { Debug.LogError("DK UMA is not installed in your scene, please install DK UMA."); } } tmpList = _DK_UMACrowd.slotLibrary.slotElementList.ToList(); for (int i = 0; i < tmpList.Count; i++) { if (tmpList[i] == null) { RemoveList.Add(tmpList[i]); } } tmpList2 = _DK_UMACrowd.overlayLibrary.overlayElementList.ToList(); for (int i = 0; i < tmpList2.Count; i++) { if (tmpList2[i] == null) { removeList2.Add(tmpList2[i]); } } foreach (DKSlotData slot in RemoveList) { if (tmpList.Contains(slot)) { tmpList.Remove(slot); } } foreach (DKOverlayData overlay in removeList2) { if (tmpList2.Contains(overlay)) { tmpList2.Remove(overlay); } } _DK_UMACrowd.slotLibrary.slotElementList = tmpList.ToArray(); _DK_UMACrowd.overlayLibrary.overlayElementList = tmpList2.ToArray(); // Debug.Log ("All libraries cleaned of missing references."); }
void SearchDKOverlays() { DKOverlaysList.Clear(); DKOverlaysNamesList.Clear(); OvPreviewsList.Clear(); GameObject UMACrowdObj = GameObject.Find("DKUMACrowd"); DK_UMACrowd _DK_UMACrowd = UMACrowdObj.GetComponent <DK_UMACrowd>(); System.Type typeDK = _DK_UMACrowd.Default.ResearchDefault._DKOverlayData.GetType(); GetAssetsOfType(typeDK, ".asset"); // DK_RPG_UMA_Generator _DK_RPG_UMA_Generator = DK_UMA.GetComponent<DK_RPG_UMA_Generator>(); // _DK_RPG_UMA_Generator.PopulateAllLists(); }
public void Launch(DKUMAData UMAData) { umaData = UMAData; _DK_RPG_UMA = this.gameObject.GetComponent <DK_RPG_UMA>(); Crowd = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>(); _DK_RPG_UMA._Avatar.HeadIndex = HeadIndex; TorsoIndex = _DK_RPG_UMA._Avatar.TorsoIndex; TmpSlotDataList.Clear(); AssignedSlotsList.Clear(); AssignedOverlayList.Clear(); TmpTorsoOverLayList.Clear(); Crowd.Wears.HideUnderwear = false; RebuildFace(); }
public void AssigningOverlay(DK_UMACrowd Crowd, int index, DKOverlayData Overlay, string type, bool OverlayOnly, Color color) { Color ColorToApply = color; overlay = Overlay; // Assign the Overlay try { if (type.Contains("Wear")) { TmpSlotDataList[index].overlayList.Clear(); } }catch (System.NullReferenceException e) { Debug.Log(e); } if (!overlay) { Debug.LogError("Overlay is missing, skipping it."); } if (!TmpSlotDataList[index]) /*Debug.LogError ( this.transform.parent.name+" Slot is missing, skipping it." );*/ } {
public void Launch(DK_RPG_UMA DKRPGUMA, DK_UMACrowd DKUMACrowd, string streamed) { // assign scripts _DK_UMACrowd = DKUMACrowd; _DK_RPG_UMA = DKRPGUMA; Gender = DKRPGUMA.Gender; // _DK_UMACrowd = GameObject.Find ("DKUMACrowd").GetComponent<DK_UMACrowd>(); // get libraries try { raceLibrary = GameObject.Find("RaceLibrary").GetComponent <RaceLibrary>(); slotLibrary = GameObject.Find("SlotLibrary").GetComponent <SlotLibrary>(); overlayLibrary = GameObject.Find("OverlayLibrary").GetComponent <OverlayLibrary>(); }catch (NullReferenceException) { Debug.LogError("UMA is missing from your scene. UMA is required to generate a UMA avatar."); } // assign recipe _StreamedUMA = streamed; // Start the creation of the avatar ConvertStreamedUMA(streamed); CreateUMAData(); }
public void LoadFromString(DKUMAData _DKUMAData, string IncStreamedUMA) { // Debug.Log ("LoadFromString Start "); // streamedUMA = IncStreamedUMA; DKUMAData umaData = _DKUMAData; umaData.Loading = true; if (umaData) { DKUMAData.UMARecipe umaRecipe = new DKUMAData.UMARecipe(); DKUMAData.UMAPackRecipe umaPackRecipe = new DKUMAData.UMAPackRecipe(); DK_UMACrowd _DK_UMACrowd = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>(); umaPackRecipe = JsonMapper.ToObject <DKUMAData.UMAPackRecipe>(IncStreamedUMA); foreach (DKRaceData _Race in _DK_UMACrowd.raceLibrary.raceElementList) { if (_Race.raceName == umaPackRecipe.race) { umaRecipe.raceData = _Race; // Debug.Log ("Race Loaded "+umaPackRecipe.race); } } // New DKUMADnaHumanoid _UMADnaHumanoid = new DKUMADnaHumanoid(); Dictionary <Type, DKUMADna> umaDna = new Dictionary <Type, DKUMADna>(); // DNA // load DK_UMAdnaHumanoid for (int dna = 0; dna < umaPackRecipe.packedDna.Count; dna++) { Type dnaType = DKUMADna.GetType(umaPackRecipe.packedDna[dna].dnaType); if (dna != 0 && dnaType != null) { umaRecipe.umaDna.Add(dnaType, DKUMADna.LoadInstance(dnaType, umaPackRecipe.packedDna[dna].packedDna)); } umaDna = umaRecipe.umaDna; } Transform tempUMA = (Instantiate(umaRecipe.raceData.racePrefab, umaData.transform.position, umaData.transform.rotation) as GameObject).transform; DKUMAData newUMA = tempUMA.gameObject.GetComponentInChildren <DKUMAData>(); newUMA.umaRecipe = umaRecipe; newUMA.umaPackRecipe = umaPackRecipe; newUMA.streamedUMA = IncStreamedUMA; // Modifyers for (int i = 0; i < umaRecipe.raceData.DNAConverterDataList.Count; i++) { // create new DK DNA DKRaceData.DNAConverterData _newDNA = new DKRaceData.DNAConverterData(); // add to DK_UMAdnaHumanoid DKUMADna temp = null; if (umaDna.TryGetValue(_UMADnaHumanoid.GetType(), out temp)) { // there it is, apply the value to the modifyer DNAValue = float.Parse(umaDna[_UMADnaHumanoid.GetType()].Values.GetValue(i).ToString()); if (DNAValue == 0) { DNAValue = 0.5f; } } _newDNA.Name = umaRecipe.raceData.DNAConverterDataList[i].Name; _newDNA.Value = DNAValue; _newDNA.Part = umaRecipe.raceData.DNAConverterDataList[i].Part; _newDNA.Part2 = umaRecipe.raceData.DNAConverterDataList[i].Part2; newUMA.DNAList2.Add(_newDNA); } newUMA.LoadFromMemoryStream(); newUMA.Dirty(true, true, true); Transform Parent = umaData.transform.parent; newUMA.transform.parent = Parent; Transform ZeroPoint = _DK_UMACrowd.zeroPoint; if (ZeroPoint != null) { // tempUMA.transform.position = _DK_UMACrowd.zeroPoint.transform.position; Parent.transform.position = _DK_UMACrowd.zeroPoint.transform.position; } else { ZeroPoint = GameObject.Find("ZeroPoint").transform; // tempUMA.transform.position = ZeroPoint.transform.position; Parent.transform.position = ZeroPoint.transform.position; } // tempUMA.transform.position = Parent.position; // Parent.name = Selection.activeGameObject.GetComponentInParent(UMA.UMAData).transform.parent.name; NewAvatarGo = Parent.gameObject; // Finishing by destroying the previous model #if UNITY_EDITOR // DestroyImmediate(umaData.transform.parent.gameObject); DestroyImmediate(umaData.transform.gameObject); #endif // if ( Application.isPlaying && umaData ) Destroy(umaData.transform.parent.gameObject); if (Application.isPlaying && umaData) { Destroy(umaData.transform.gameObject); } } }
public static void Finish(DK_UMACrowd Crowd) { // Debug.Log ( "Finishing Define Slots"); Crowd.umaData.umaRecipe.slotDataList = Crowd.tempSlotList.ToArray(); Crowd.umaData.atlasResolutionScale = Crowd.atlasResolutionScale; // if ( Crowd.ToUMA == false ) { Crowd.umaData.Dirty(true, true, true); Crowd.umaData.OnUpdated += Crowd.MyOnUpdateMethod; Crowd.FleshOverlay = null; Crowd.Wears.RanActivateMesh = 0; Crowd.umaData.myRenderer.enabled = false; if (Crowd.tempUMA.gameObject.GetComponent("DK_Model") as DK_Model == null) { Crowd.tempUMA.gameObject.AddComponent <DK_Model>(); } Crowd._DK_Model = Crowd.tempUMA.GetComponent <DK_Model>(); // Copy variables to DK_Model Crowd._DK_Model.Gender = Crowd.RaceAndGender.Gender; Crowd._DK_Model.IsUmaModel = true; Crowd.umaData.Awaking(); // if ( Crowd.zeroPoint == null ) Crowd.zeroPoint = GameObject.Find("ZeroPoint").transform; if (Crowd.zeroPoint) { Crowd.tempUMA.transform.position = new Vector3(Crowd.zeroPoint.position.x, Crowd.zeroPoint.position.y, Crowd.zeroPoint.position.z); } else { Crowd.tempUMA.transform.position = new Vector3(0, 0, 0); } // } // else { /* * if ( Crowd.umaDna.N0 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N0 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N0 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N0 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N1 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N1 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N1 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N1 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N2 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N2 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N2 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N2 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N3 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N3 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N3 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N3 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N4 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N4 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N4 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N4 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N5 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N5 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N5 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N5 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N6 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N6 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N6 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N6 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N7 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N7 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N7 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N7 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N8 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N8 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N8 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N8 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N9 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N9 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N9 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N9 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N10 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N10 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N10 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N10 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N11 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N11 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N11 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N11 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N12 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N12 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N12 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N12 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N13 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N13 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N13 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N13 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N14 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N14 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N14 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N14 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N15 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N15 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N15 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N15 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N16 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N16 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N16 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N16 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N17 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N17 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N17 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N17 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N18 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N18 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N18 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N18 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N19 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N19 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N19 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N19 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N20 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N20 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N20 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N20 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N21 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N21 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N21 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N21 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N22 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N22 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N22 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N22 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N23 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N23 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N23 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N23 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N24 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N24 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N24 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N24 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N25 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N25 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N25 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N25 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N26 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N26 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N26 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N26 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N27 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N27 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N27 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N27 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N28 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N28 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N28 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N28 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N29 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N29 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N29 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N29 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N30 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N30 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N30 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N30 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N31 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N31 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N31 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N31 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N32 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N32 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N32 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N32 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N33 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N33 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N33 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N33 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N34 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N34 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N34 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N34 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N35 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N35 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N35 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N35 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N36 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N36 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N36 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N36 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N37 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N37 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N37 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N37 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N38 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N38 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N38 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N38 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N39 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N39 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N39 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N39 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N40 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N40 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N40 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N40 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N41 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N41 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N41 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N41 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N42 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N42 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N42 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N42 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N43 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N43 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N43 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N43 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N44 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N44 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N44 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N44 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N45 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N45 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N45 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N45 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N46 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N46 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N46 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N46 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N47 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N47 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N47 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N47 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N48 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N48 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N48 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N48 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N49 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N49 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N49 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N49 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N50 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N50 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N50 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N50 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N51 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N51 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N51 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N51 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N52 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N52 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N52 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N52 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N53 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N53 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N53 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N53 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N54 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N54 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N54 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N54 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N55 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N55 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N55 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N55 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N56 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N56 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N56 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N56 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N57 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N57 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N57 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N57 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N58 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N58 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N58 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N58 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N59 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N59 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N59 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N59 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N60 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N60 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N60 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N60 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N61 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N61 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N61 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N61 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N62 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N62 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N62 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N62 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N63 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N63 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N63 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N63 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N64 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N64 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N64 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N64 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N65 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N65 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N65 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N65 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N66 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N66 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N66 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N66 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N67 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N67 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N67 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N67 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N68 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N68 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N68 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N68 = _TransposeDK2UMA.MaxiDNA; * if ( Crowd.umaDna.N69 < _TransposeDK2UMA.MiniDNA ) Crowd.umaDna.N69 = _TransposeDK2UMA.MiniDNA; * if ( Crowd.umaDna.N69 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N69 = _TransposeDK2UMA.MaxiDNA; * * if ( Crowd.umaDna.N70 > _TransposeDK2UMA.MaxiDNA ) Crowd.umaDna.N70 = _TransposeDK2UMA.MaxiDNA; */ Crowd.umaData.umaRecipe.slotDataList = Crowd.tempSlotList.ToArray(); Crowd.umaData.SaveToMemoryStream(); string streamed = Crowd.umaData.streamedUMA; if (Crowd.ToUMA) { TransposeDK2UMA _TransposeDK2UMA = Crowd.umaData.gameObject.AddComponent <TransposeDK2UMA>(); _TransposeDK2UMA.Launch(Crowd.umaData.gameObject.GetComponent <DK_RPG_UMA>(), Crowd, streamed); } }
public void AssigningSlot(DK_UMACrowd Crowd, DKSlotData slot, DKOverlayData Overlay, string type, Color color) { // try{ if (type == "_EyeLids" || type == "_Nose" || type == "_Mouth" || type == "_Ears") { if (slot.LinkedOverlayList.Count == 0 && Crowd && Crowd.slotLibrary && slot && slot.slotName != null && TmpSlotDataList[HeadIndex]) { TmpSlotDataList.Add(Crowd.slotLibrary.InstantiateSlot(slot.slotName, TmpSlotDataList[HeadIndex].overlayList)); } else { int _index = TmpSlotDataList.Count; TmpSlotDataList.Add(Crowd.slotLibrary.InstantiateSlot(slot.slotName)); Overlay = slot.LinkedOverlayList[0]; AssigningOverlay(Crowd, _index, Overlay, type, false, color); } } else if (type == "_Torso" || type == "_Hands" || type == "_Legs" || type == "_Feet") { TmpSlotDataList.Add(Crowd.slotLibrary.InstantiateSlot(slot.slotName, TmpTorsoOverLayList)); } else { int _index = TmpSlotDataList.Count; TmpSlotDataList.Add(Crowd.slotLibrary.InstantiateSlot(slot.slotName)); AssigningOverlay(Crowd, _index, Overlay, type, false, color); } // }catch ( System.ArgumentOutOfRangeException ){} // Copy the values CopyValues(Crowd, slot, TmpSlotDataList.Count - 1); // Remove the face elements for a head wear if (type == "_HeadWear") { for (int i1 = 0; i1 < TmpSlotDataList.Count; i1++) { #region if Hide Hair if (slot._HideData.HideHair == true) { if (TmpSlotDataList[i1].Place && TmpSlotDataList[i1].Place.name == "Hair") { ToRemoveList.Add(TmpSlotDataList[i1]); } } #endregion if Hide Hair #region if Hide Hair Module if (slot._HideData.HideHairModule == true) { if (TmpSlotDataList[i1].Place && TmpSlotDataList[i1].Place.name == "Hair_Module") { ToRemoveList.Add(TmpSlotDataList[i1]); } } #endregion if Hide Hair Module #region if Hide Mouth if (slot._HideData.HideMouth == true) { if (TmpSlotDataList[i1].Place && TmpSlotDataList[i1].Place.name == "Mouth") { ToRemoveList.Add(TmpSlotDataList[i1]); } } #endregion if Hide Mouth #region if Hide Beard if (slot._HideData.HideBeard == true) { if (TmpSlotDataList[i1].OverlayType == "Beard") { ToRemoveList.Add(TmpSlotDataList[i1]); } } #endregion if Hide Mouth #region if Hide Ears if (slot._HideData.HideEars == true) { if (TmpSlotDataList[i1].Place && TmpSlotDataList[i1].Place.name == "Ears") { ToRemoveList.Add(TmpSlotDataList[i1]); } } #endregion if Hide Ears } } }
public static void AddAll() { // install UMA EditorVariables.DK_UMAObj = GameObject.Find("DK_UMA"); if (_DK_UMA == null && EditorVariables.DK_UMAObj != null) { _DK_UMA = EditorVariables.DK_UMAObj; } if (EditorVariables.DK_UMAObj == null) { EditorVariables.DK_UMAObj = new GameObject(); EditorVariables.DK_UMAObj.name = "DK_UMA"; } if (EditorVariables.UseDkUMA) { EditorVariables.UMAObj = GameObject.Find("UMA"); if (EditorVariables.UMAObj == null) { EditorVariables.UMAObj = new GameObject(); EditorVariables.UMAObj.name = "UMA"; if (EditorVariables.DK_UMACrowd == null) { EditorVariables.UMACrowdObj = GameObject.Find("DKUMACrowd"); if (EditorVariables.UMACrowdObj == null) { EditorVariables.UMACrowdObj = (GameObject)PrefabUtility.InstantiatePrefab(Resources.Load("DKUMACrowd")); EditorVariables.UMACrowdObj.name = "DKUMACrowd"; EditorVariables.UMACrowdObj.transform.parent = EditorVariables.DK_UMAObj.transform; PrefabUtility.ReconnectToLastPrefab(EditorVariables.UMACrowdObj); } EditorVariables.DK_UMACrowd = EditorVariables.UMACrowdObj.GetComponent <DK_UMACrowd>(); if (EditorVariables.DK_UMACrowd == null) { EditorVariables.UMACrowdObj.gameObject.AddComponent <DK_UMACrowd>(); } EditorVariables.DK_UMACrowd = EditorVariables.UMACrowdObj.GetComponent <DK_UMACrowd>(); EditorVariables.UMACrowdObj.transform.parent = EditorVariables.DK_UMAObj.transform; EditorVariables.DK_UMACrowd.UMAGenerated = true; if (EditorVariables.DK_UMACrowd.Wears != null) { EditorVariables.DK_UMACrowd.Wears.RanWearYesMax = 25; } EditorVariables.DK_UMACrowd.UseLinkedOv = true; if (EditorVariables.DKSlotLibraryObj == null) { EditorVariables.DKSlotLibraryObj = GameObject.Find("DKSlotLibrary"); } if (EditorVariables.OverlayLibraryObj == null) { EditorVariables.OverlayLibraryObj = GameObject.Find("DKOverlayLibrary"); } if (EditorVariables.RaceLibraryObj == null) { EditorVariables.RaceLibraryObj = GameObject.Find("DKRaceLibrary"); } if (EditorVariables.RaceLibraryObj == null) { EditorVariables.RaceLibraryObj = (GameObject)PrefabUtility.InstantiatePrefab(Resources.LoadAssetAtPath("Assets/DK Editors/DK_UMA_Editor/Prefabs/Libraries/Race Libraries/DKRaceLibrary.prefab", typeof(GameObject))); EditorVariables.RaceLibraryObj.name = "DKRaceLibrary"; EditorVariables.RaceLibraryObj.transform.parent = EditorVariables.DK_UMAObj.transform; PrefabUtility.ReconnectToLastPrefab(EditorVariables.RaceLibraryObj); } if (EditorVariables.DKSlotLibraryObj == null) { EditorVariables.DKSlotLibraryObj = (GameObject)PrefabUtility.InstantiatePrefab(Resources.LoadAssetAtPath("Assets/DK Editors/DK_UMA_Editor/Prefabs/Libraries/Slot Libraries/DKSlotLibrary.prefab", typeof(GameObject))); EditorVariables.DKSlotLibraryObj.name = "DKSlotLibrary"; EditorVariables._DKSlotLibrary = EditorVariables.DKSlotLibraryObj.gameObject.GetComponent <DKSlotLibrary>(); _DKUMA_Variables.ActiveSlotLibrary = EditorVariables._DKSlotLibrary; EditorVariables.DKSlotLibraryObj.transform.parent = EditorVariables.DK_UMAObj.transform; PrefabUtility.ReconnectToLastPrefab(EditorVariables.DKSlotLibraryObj); } if (EditorVariables.OverlayLibraryObj == null) { EditorVariables.OverlayLibraryObj = (GameObject)PrefabUtility.InstantiatePrefab(Resources.LoadAssetAtPath("Assets/DK Editors/DK_UMA_Editor/Prefabs/Libraries/Overlay Libraries/DKOverlayLibrary.prefab", typeof(GameObject))); EditorVariables.OverlayLibraryObj.name = "DKOverlayLibrary"; EditorVariables._OverlayLibrary = EditorVariables.OverlayLibraryObj.gameObject.GetComponent <DKOverlayLibrary>(); _DKUMA_Variables.ActiveOverlayLibrary = EditorVariables._OverlayLibrary; EditorVariables.OverlayLibraryObj.transform.parent = EditorVariables.DK_UMAObj.transform; PrefabUtility.ReconnectToLastPrefab(EditorVariables.OverlayLibraryObj); } // Add the variables from the original script try { try { EditorVariables.DK_UMACrowd.slotLibrary = EditorVariables.DKSlotLibraryObj.GetComponent <DKSlotLibrary>() as DKSlotLibrary; EditorVariables.DK_UMACrowd.overlayLibrary = EditorVariables.OverlayLibraryObj.GetComponent <DKOverlayLibrary>() as DKOverlayLibrary; EditorVariables.DK_UMACrowd.raceLibrary = EditorVariables.RaceLibraryObj.GetComponent <DKRaceLibrary>() as DKRaceLibrary; }catch (NullReferenceException) {} }catch (MissingReferenceException) {} } DK_UMACrowd _DK_UMACrowd = EditorVariables.UMACrowdObj.GetComponent <DK_UMACrowd>(); if (EditorVariables.DKSlotLibraryObj == null) { EditorVariables.DKSlotLibraryObj = GameObject.Find("DKSlotLibrary"); } if (EditorVariables.OverlayLibraryObj == null) { EditorVariables.OverlayLibraryObj = GameObject.Find("DKOverlayLibrary"); } if (EditorVariables.RaceLibraryObj == null) { EditorVariables.RaceLibraryObj = GameObject.Find("DKRaceLibrary"); } if (_DK_UMACrowd.raceLibrary == null) { _DK_UMACrowd.raceLibrary = EditorVariables.RaceLibraryObj.GetComponent <DKRaceLibrary>(); if (_DK_UMACrowd.raceLibrary == null) { _DK_UMACrowd.raceLibrary = EditorVariables.RaceLibraryObj.AddComponent <DKRaceLibrary>() as DKRaceLibrary; } } if (_DK_UMACrowd.overlayLibrary == null) { _DK_UMACrowd.overlayLibrary = EditorVariables.OverlayLibraryObj.GetComponent <DKOverlayLibrary>(); if (_DK_UMACrowd.overlayLibrary == null) { _DK_UMACrowd.overlayLibrary = EditorVariables.OverlayLibraryObj.AddComponent <DKOverlayLibrary>() as DKOverlayLibrary; } } if (_DK_UMACrowd.slotLibrary == null) { _DK_UMACrowd.slotLibrary = EditorVariables.SlotsAnatomyLibraryObj.GetComponent <DKSlotLibrary>(); if (_DK_UMACrowd.slotLibrary == null) { _DK_UMACrowd.slotLibrary = EditorVariables.DKSlotLibraryObj.AddComponent <DKSlotLibrary>() as DKSlotLibrary; } } } if (EditorVariables.DK_DKUMAGenerator == null) { EditorVariables.DKUMAGeneratorObj = GameObject.Find("DKUMAGenerator"); if (EditorVariables.DKUMAGeneratorObj == null) { EditorVariables.DKUMAGeneratorObj = (GameObject)PrefabUtility.InstantiatePrefab(Resources.Load("DKUMAGenerator")); EditorVariables.DKUMAGeneratorObj.name = "DKUMAGenerator"; EditorVariables.DKUMAGeneratorObj.transform.parent = EditorVariables.DK_UMAObj.transform; PrefabUtility.ReconnectToLastPrefab(EditorVariables.DKUMAGeneratorObj); } EditorVariables.DK_DKUMAGenerator = EditorVariables.DKUMAGeneratorObj.GetComponent <DKUMAGenerator>(); if (EditorVariables.DK_DKUMAGenerator == null) { EditorVariables.DKUMAGeneratorObj.gameObject.AddComponent <DKUMAGenerator>(); } EditorVariables.DK_DKUMAGenerator = EditorVariables.DKUMAGeneratorObj.GetComponent <DKUMAGenerator>(); EditorVariables._DKUMAGenerator = EditorVariables.DKUMAGeneratorObj.GetComponent <DKUMAGenerator>(); EditorVariables.DKUMAGeneratorObj.transform.parent = EditorVariables.DK_UMAObj.transform; } DetectAll(); } }
/* * public void OnEnable () { * DK_UMACrowdObj = GameObject.Find("UMACrowd"); * _DK_UMACrowd = DK_UMACrowdObj.gameObject.GetComponent< DK_UMACrowd >(); * _DK_UMACrowd.generateUMA = false; * _DK_UMACrowd.generateLotsUMA = false; * _DK_UMACrowd.UMAGenerated = true; * umaDirtyList.Clear(); * } */ public void Awake() { /* try { * Destroy ( textureMerge.gameObject ); * }catch (MissingReferenceException){}*/ DK_UMACrowdObj = GameObject.Find("DKUMACrowd"); if (DK_UMACrowdObj) { _DK_UMACrowd = DK_UMACrowdObj.gameObject.GetComponent <DK_UMACrowd>(); } #if UNITY_EDITOR if (usePRO && !UnityEditorInternal.InternalEditorUtility.HasPro()) { // Debug.LogWarning("You might need to disable usePRO option in the Setup tab of DK UMA Editor window."); usePRO = false; } // else usePRO = true; #endif // _DK_UMACrowd.generateUMA = false; // _DK_UMACrowd.generateLotsUMA = false; // _DK_UMACrowd.UMAGenerated = true; // umaDirtyList.Clear(); maxMeshUpdates = 1; if (atlasResolution == 0) { atlasResolution = 256; } umaGeneratorCoroutine = new DKUMAGeneratorCoroutine(); if (!textureMerge && DK_UMACrowd.GeneratorMode == "Preset") { GameObject obj = GameObject.Find("TextureMerge"); if (obj) { textureMerge = obj.GetComponent("DKTextureMerge") as DKTextureMerge; } if (!textureMerge) { Transform tempTextureMerger = Instantiate(textureMergePrefab, Vector3.zero, Quaternion.identity) as Transform; tempTextureMerger.name = "TextureMerge"; textureMerge = tempTextureMerger.GetComponent("DKTextureMerge") as DKTextureMerge; textureMerge.transform.parent = transform; textureMerge.gameObject.SetActive(false); } } else { } //Garbage Collection hack var mb = (System.GC.GetTotalMemory(false) / (1024 * 1024)); if (mb < 10) { byte[] data = new byte[10 * 1024 * 1024]; data[0] = 0; data[10 * 1024 * 1024 - 1] = 0; } }
void OnGUI() { this.minSize = new Vector2(435, 500); #region fonts variables var bold = new GUIStyle("label"); var boldFold = new GUIStyle("foldout"); bold.fontStyle = FontStyle.Bold; bold.fontSize = 14; boldFold.fontStyle = FontStyle.Bold; // var someMatched = false; var Slim = new GUIStyle("label"); Slim.fontStyle = FontStyle.Normal; Slim.fontSize = 10; var style = new GUIStyle("label"); style.wordWrap = true; #endregion fonts variables DK_UMA = GameObject.Find("DK_UMA"); _DK_UMACrowd = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>(); SlotExpressions = GameObject.Find("Expressions"); if (DK_UMA == null) { var goDK_UMA = new GameObject(); goDK_UMA.name = "DK_UMA"; } if (SlotExpressions == null) { SlotExpressions = (GameObject)Instantiate(Resources.LoadAssetAtPath("Assets/DK Editors/DK_UMA_Editor/Prefabs/Resources/DKExpressions.prefab", typeof(GameObject))); SlotExpressions.name = "Expressions"; SlotExpressions.transform.parent = DK_UMA.transform; PrefabUtility.ReconnectToLastPrefab(SlotExpressions); Library = SlotExpressions.GetComponent <ExpressionLibrary>(); } using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Expressions window", "toolbarbutton", GUILayout.ExpandWidth(true)); if (Helper) { GUI.color = Green; } else { GUI.color = Color.yellow; } if (GUILayout.Button("?", "toolbarbutton", GUILayout.ExpandWidth(false))) { if (Helper) { Helper = false; } else { Helper = true; } } } GUI.color = Color.white; if (Helper) { GUILayout.TextField("The Expressions are used during the Auto Detect process to populate your libraries. You can add words to the Expressions, with an Anatomy link.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true)); } GUI.color = Color.yellow; if (Helper) { GUILayout.TextField("Write the Expression for the research engine to find during the Auto Detect process.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true)); } if (Selection.activeObject && Selection.activeObject.GetType().ToString() == "DK_ExpressionData") { SelectedExpression = Selection.activeObject as DK_ExpressionData; } if (SelectedExpression) { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Expression :", GUILayout.ExpandWidth(false)); if (NewExpressionName != "") { GUI.color = Green; } else { GUI.color = Red; } NewExpressionName = GUILayout.TextField(NewExpressionName, 50, GUILayout.ExpandWidth(true)); if (GUILayout.Button("Change", GUILayout.ExpandWidth(false))) { Debug.Log("Expression " + SelectedExpression.name + " changed to " + NewExpressionName + "."); SelectedExpression.Name = NewExpressionName; string _path = ("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/" + SelectedExpression.name + ".asset"); AssetDatabase.RenameAsset(_path, NewExpressionName); EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } GUI.color = Color.yellow; if (Helper && SelectedExpression) { GUILayout.TextField("The Anatomy Part is really important, it is the place where the detected Slot Element will be generated. In most of the cases, a full Model counts only one Anatomy part of each type (Eyes, head...).", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true)); } if (!ShowSelectAnatomy && SelectedExpression) { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Anatomy Part :", GUILayout.ExpandWidth(false)); if (Place != "") { GUI.color = Green; } else { GUI.color = Red; } if (SelectedExpression == null) { Place = "Select an Anatomy Part"; } else if (SelectedExpression.Place == null) { Place = "Select an Anatomy Part"; } else { Place = SelectedExpression.Place.name; } GUILayout.Label(Place, GUILayout.ExpandWidth(true)); GUI.color = Color.white; if (GUILayout.Button("Select", GUILayout.ExpandWidth(false))) { ShowSelectAnatomy = true; } } } // Overlay Type GUI.color = Color.yellow; if (Helper) { GUILayout.TextField("The Overlay Type is used by the Generator during the Model's creation. " + "All the 'Naked body parts' must be of the 'Flesh' Type, the Head slot must be of the 'Face' type.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true)); } if (SelectedExpression) { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Body :", GUILayout.ExpandWidth(false)); if (SelectedExpression.OverlayType == "Flesh") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Flesh", GUILayout.ExpandWidth(true))) { OverlayType = "Flesh"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Face") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Face", GUILayout.ExpandWidth(true))) { OverlayType = "Face"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Eyes") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Eyes", GUILayout.ExpandWidth(true))) { OverlayType = "Eyes"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Hair") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hair", GUILayout.ExpandWidth(true))) { OverlayType = "Hair"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.Elem == true) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("+Elem", GUILayout.ExpandWidth(true))) { if (SelectedExpression.Elem == true) { SelectedExpression.Elem = false; } else { SelectedExpression.Elem = true; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression) { using (new Horizontal()) { if (SelectedExpression.OverlayType == "Eyebrow") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Eyebrow", GUILayout.ExpandWidth(true))) { OverlayType = "Eyebrow"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Lips") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Lips", GUILayout.ExpandWidth(true))) { OverlayType = "Lips"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Makeup") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Makeup", GUILayout.ExpandWidth(true))) { OverlayType = "Makeup"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Tatoo") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Tatoo", GUILayout.ExpandWidth(true))) { OverlayType = "Tatoo"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "Beard") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Beard", GUILayout.ExpandWidth(true))) { OverlayType = "Beard"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression) { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Wears :", GUILayout.ExpandWidth(false)); if (SelectedExpression.OverlayType == "TorsoWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Torso", GUILayout.ExpandWidth(true))) { OverlayType = "TorsoWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "ShoulderWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Shoulder", GUILayout.ExpandWidth(true))) { OverlayType = "ShoulderWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "LegsWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Leg", GUILayout.ExpandWidth(true))) { OverlayType = "LegsWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "FeetWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Feet", GUILayout.ExpandWidth(true))) { OverlayType = "FeetWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "HandsWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hand", GUILayout.ExpandWidth(true))) { OverlayType = "HandsWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "HeadWear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Head", GUILayout.ExpandWidth(true))) { OverlayType = "HeadWear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression) { using (new Horizontal()) { if (SelectedExpression.OverlayType == "Underwear") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Underwear", GUILayout.ExpandWidth(true))) { OverlayType = "Underwear"; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.OverlayType == "") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("None", GUILayout.ExpandWidth(true))) { OverlayType = ""; SelectedExpression.OverlayType = OverlayType; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression && SelectedExpression.OverlayType.Contains("Wear") == true) { using (new Horizontal()) { if (SelectedExpression && SelectedExpression.Replace == true) { GUI.color = Green; } else { GUI.color = Color.gray; } if (SelectedExpression && GUILayout.Button("Replace", GUILayout.ExpandWidth(true))) { if (SelectedExpression.Replace == false) { SelectedExpression.Replace = true; } else { SelectedExpression.Replace = false; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression && SelectedExpression.OverlayType == "HeadWear") { using (new Horizontal()) { if (SelectedExpression && SelectedExpression.HideHair) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hide Hair", GUILayout.ExpandWidth(true))) { if (SelectedExpression && SelectedExpression.HideHair == true) { SelectedExpression.HideHair = false; } else { SelectedExpression.HideHair = true; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression && SelectedExpression.HideHairModule) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hide Hair Module", GUILayout.ExpandWidth(true))) { if (SelectedExpression && SelectedExpression.HideHairModule == true) { SelectedExpression.HideHairModule = false; } else { SelectedExpression.HideHairModule = true; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression && SelectedExpression.HideMouth) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hide Mouth", GUILayout.ExpandWidth(true))) { if (SelectedExpression && SelectedExpression.HideMouth == true) { SelectedExpression.HideMouth = false; } else { SelectedExpression.HideMouth = true; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression && SelectedExpression.HideEars) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Hide Ears", GUILayout.ExpandWidth(true))) { if (SelectedExpression && SelectedExpression.HideEars == true) { SelectedExpression.HideEars = false; } else { SelectedExpression.HideEars = true; } EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } if (SelectedExpression && OverlayType != null && OverlayType.Contains("Wear") == true && OverlayType != "Underwear") { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Weight :", GUILayout.ExpandWidth(false)); if (SelectedExpression.WearWeight == "Light") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Light", GUILayout.ExpandWidth(true))) { SelectedExpression.WearWeight = "Light"; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.WearWeight == "Medium") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Medium", GUILayout.ExpandWidth(true))) { SelectedExpression.WearWeight = "Medium"; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.WearWeight == "High") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("High", GUILayout.ExpandWidth(true))) { SelectedExpression.WearWeight = "High"; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.WearWeight == "Heavy") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Heavy", GUILayout.ExpandWidth(true))) { SelectedExpression.WearWeight = "Heavy"; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } if (SelectedExpression.WearWeight == "") { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("None", GUILayout.ExpandWidth(true))) { SelectedExpression.WearWeight = ""; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } } } // List menu if (!ShowSelectAnatomy) { using (new Horizontal()) { GUI.color = Color.white; if (GUILayout.Button("Add New", GUILayout.ExpandWidth(true))) { // Create DK_ExpressionData newExpression = new DK_ExpressionData(); newExpression.name = "New Expression"; System.IO.Directory.CreateDirectory("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/"); string _path = ("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/" + newExpression.name + ".asset"); AssetDatabase.CreateAsset(newExpression, _path); AssetDatabase.Refresh(); Selection.activeObject = newExpression; NewExpressionName = SelectedExpression.name; // store in library SlotExpressions = GameObject.Find("Expressions"); Library = SlotExpressions.GetComponent <ExpressionLibrary>(); if (SlotExpressions != null && Library) { Library.AddExpression(newExpression); Debug.Log("New Expression created and selected."); } } if (GUILayout.Button("Copy Selected", GUILayout.ExpandWidth(true))) { if (SelectedExpression != null) { // Copy System.IO.Directory.CreateDirectory("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/"); string _path1 = ("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/" + SelectedExpression.name + ".asset"); string _path2 = ("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/" + SelectedExpression.name + " (Copy).asset"); AssetDatabase.CopyAsset(_path1, _path2); AssetDatabase.Refresh(); DK_ExpressionData newExpression = AssetDatabase.LoadAssetAtPath("Assets/DK Editors/DK_UMA_Editor/Prefabs/Expressions/" + SelectedExpression.name + " (Copy).asset", _DK_UMACrowd.Default.ResearchDefault.DK_ExpressionData.GetType()) as DK_ExpressionData; Selection.activeObject = newExpression; NewExpressionName = SelectedExpression.name; // store in library if (SlotExpressions != null && Library) { Library.AddExpression(newExpression); Debug.Log("New Expression created and selected."); } Debug.Log(SelectedExpression.name + " has been copied to " + Library.name + "."); } else { Debug.Log("You have to select an Expression from the list to be able to copy it."); } } if (GUILayout.Button("Select All", GUILayout.ExpandWidth(true))) { for (int i = 0; i < Library.ExpressionList.Length; i++) { Library.ExpressionList[i].Selected = true; } } } } // Lists GUILayout.Space(5); // Choose Anatomy Part List if (ShowSelectAnatomy) { using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Choose Anatomy Part", "toolbarbutton", GUILayout.ExpandWidth(true)); GUI.color = Red; if (GUILayout.Button("X", "toolbarbutton", GUILayout.ExpandWidth(false))) { ShowSelectAnatomy = false; } } GUILayout.Space(5); GUI.color = Color.white; using (new Horizontal()) { GUILayout.Label("Selected Part :", GUILayout.ExpandWidth(false)); GUI.color = Color.yellow; if (SelectedAnaPart != null) { GUILayout.Label(SelectedAnaPart.name, GUILayout.ExpandWidth(true)); } } GUILayout.Space(5); GUI.color = Color.white; if (GUILayout.Button("Assign to Expression", GUILayout.ExpandWidth(true))) { Debug.Log("Anatomy Part " + SelectedAnaPart.name + " assigned to " + SelectedExpression.name + "."); GameObject _Prefab = PrefabUtility.GetPrefabParent(SelectedAnaPart.gameObject) as GameObject; if (_Prefab) { SelectedExpression.Place = _Prefab; } else { SelectedExpression.Place = SelectedAnaPart.gameObject; } ShowSelectAnatomy = false; EditorUtility.SetDirty(SelectedExpression); AssetDatabase.SaveAssets(); } GUILayout.Space(5); #region Search using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Search for :", GUILayout.ExpandWidth(false)); SearchString = GUILayout.TextField(SearchString, 100, GUILayout.ExpandWidth(true)); } #endregion Search DK_SlotsAnatomyLibrary _SlotsAnatomyLibrary = GameObject.Find("DK_SlotsAnatomyLibrary").GetComponent <DK_SlotsAnatomyLibrary>(); GUILayout.Space(5); using (new Horizontal()) { GUI.color = Color.cyan; GUILayout.Label("Anatomy Part", "toolbarbutton", GUILayout.Width(200)); GUILayout.Label("Race", "toolbarbutton", GUILayout.Width(50)); GUILayout.Label("Gender", "toolbarbutton", GUILayout.Width(50)); GUILayout.Label("Type", "toolbarbutton", GUILayout.Width(80)); GUILayout.Label("", "toolbarbutton", GUILayout.ExpandWidth(true)); } using (new ScrollView(ref scroll)) { for (int i = 0; i < _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList.Length; i++) { if (SearchString == "" || _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].name.ToLower().Contains(SearchString.ToLower())) { using (new Horizontal(GUILayout.Width(80))) { // Element if (SelectedAnaPart == _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject) { GUI.color = Color.yellow; } else { GUI.color = Color.white; } if (GUILayout.Button(_SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].dk_SlotsAnatomyElement.dk_SlotsAnatomyName, "toolbarbutton", GUILayout.Width(200))) { SelectedAnaPart = _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject; } // Race if (_SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject.GetComponent <DK_Race>() as DK_Race == null) { _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject.AddComponent <DK_Race>(); } DK_Race DK_Race; DK_Race = _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].GetComponent("DK_Race") as DK_Race; if (DK_Race.Race.Count == 0) { GUI.color = Red; } if (DK_Race.Race.Count == 0 && GUILayout.Button("No Race", "toolbarbutton", GUILayout.Width(50))) { } GUI.color = Green; if (DK_Race.Race.Count == 1 && GUILayout.Button(DK_Race.Race[0], "toolbarbutton", GUILayout.Width(50))) { } if (DK_Race.Race.Count > 1 && GUILayout.Button("Multi", "toolbarbutton", GUILayout.Width(50))) { } // Gender if (DK_Race.Gender == "") { GUI.color = Red; } if (DK_Race.Gender == "") { GUILayout.Label("N", "Button"); } GUI.color = Green; if (DK_Race.Gender != "" && DK_Race.Gender == "Female") { GUILayout.Label("Female", "toolbarbutton", GUILayout.Width(50)); } if (DK_Race.Gender != "" && DK_Race.Gender == "Male") { GUILayout.Label("Male", "toolbarbutton", GUILayout.Width(50)); } if (DK_Race.Gender != "" && DK_Race.Gender == "Both") { GUILayout.Label("Both", "toolbarbutton", GUILayout.Width(50)); } // OverlayType if (_SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject.GetComponent <DK_Race>() as DK_Race == null) { _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].gameObject.AddComponent <DK_Race>(); } DK_Race = _SlotsAnatomyLibrary.dk_SlotsAnatomyElementList[i].GetComponent("DK_Race") as DK_Race; if (DK_Race.OverlayType == "") { GUI.color = Color.gray; } if (DK_Race.OverlayType == "" && GUILayout.Button("/", "toolbarbutton", GUILayout.Width(80))) { } GUI.color = Green; if (DK_Race.OverlayType != "" && GUILayout.Button(DK_Race.OverlayType, "toolbarbutton", GUILayout.Width(80))) { } } } } } } else if (!ShowSelectAnatomy) { #region Search using (new Horizontal()) { GUI.color = Color.white; GUILayout.Label("Search for :", GUILayout.ExpandWidth(false)); SearchString = GUILayout.TextField(SearchString, 100, GUILayout.ExpandWidth(true)); } #endregion Search // Expressions List using (new Horizontal()) { GUI.color = Color.cyan; GUILayout.Label("X", "toolbarbutton", GUILayout.Width(17)); GUILayout.Label("Expression", "toolbarbutton", GUILayout.Width(145)); GUILayout.Label("Place", "toolbarbutton", GUILayout.Width(70)); GUILayout.Label("Type", "toolbarbutton", GUILayout.Width(70)); GUILayout.Label("Weight", "toolbarbutton", GUILayout.Width(50)); GUILayout.Label("", "toolbarbutton", GUILayout.ExpandWidth(true)); } Library = SlotExpressions.GetComponent <ExpressionLibrary>(); using (new ScrollView(ref scroll)) { for (int i = 0; i < Library.ExpressionList.Length; i++) { { DK_ExpressionData Expression = Library.ExpressionList[i]; if (Expression && Expression.name.Contains("DefaultExpression") == false) { using (new Horizontal()) { GUI.color = Red; if (Expression && GUILayout.Button("X", "toolbarbutton", GUILayout.ExpandWidth(false))) { DestroyImmediate(Expression); } if (SearchString == "" || Library.ExpressionList[i].name.ToLower().Contains(SearchString.ToLower())) { if (Expression && SelectedExpression && Expression == SelectedExpression) { GUI.color = Color.yellow; } else { GUI.color = Color.white; } if (Expression && GUILayout.Button(Expression.name, "toolbarbutton", GUILayout.Width(145))) { if (Expression.Place != null) { Place = Expression.Place.name; } else { Place = "Select an Anatomy part"; } SelectedExpression = Expression; Selection.activeObject = SelectedExpression; NewExpressionName = Expression.name; OverlayType = Expression.OverlayType; } // Anatomy part if (Expression.Place != null) { GUILayout.Label(Expression.Place.name, "toolbarbutton", GUILayout.Width(70)); } else { GUI.color = Red; GUILayout.Label("Select an Anatomy part for the Expression to be linked.", "toolbarbutton", GUILayout.Width(120)); } // Overlay Type if (Expression.OverlayType != "") { GUILayout.Label(Expression.OverlayType, "toolbarbutton", GUILayout.Width(70)); } else { GUI.color = Color.gray; GUILayout.Label("No Type.", "toolbarbutton", GUILayout.Width(70)); } // WearWeight if (Expression.WearWeight == "") { GUI.color = Color.gray; } if (Expression.WearWeight == "" && GUILayout.Button("No Weight", "toolbarbutton", GUILayout.Width(50))) { } GUI.color = Green; if (Expression.WearWeight != "" && GUILayout.Button(Expression.WearWeight, "toolbarbutton", GUILayout.Width(50))) { } // Select if (Expression && Expression.Selected == true) { GUI.color = Green; } else { GUI.color = Color.gray; } if (GUILayout.Button("Selected", "toolbarbutton", GUILayout.Width(65))) { if (Expression && Expression.Selected == true) { Expression.Selected = false; } else { Expression.Selected = true; } } } } } } } } } }