#pragma warning disable 618 private void AddDNAConverterModifiers(DynamicDNAConverterBehaviour tempDNAAsset, int addMethod) { //Do we need to make sure the dna names are there as well? What is there is no dna asset? //now add the modifiers var currentModifiers = addMethod == 0 ? (target as DynamicDNAConverterBehaviour).skeletonModifiers : new List <SkeletonModifier>(); for (int i = 0; i < tempDNAAsset.skeletonModifiers.Count; i++) { bool existed = false; for (int ci = 0; ci < currentModifiers.Count; ci++) { if ((currentModifiers[ci].hash == tempDNAAsset.skeletonModifiers[i].hash) && currentModifiers[ci].property == tempDNAAsset.skeletonModifiers[i].property) { existed = true; break; } } if (!existed) { currentModifiers.Add(new SkeletonModifier(tempDNAAsset.skeletonModifiers[i])); } } (target as DynamicDNAConverterBehaviour).skeletonModifiers = currentModifiers; serializedObject.Update(); }
#pragma warning disable 618 private void Init() { if (!initialized) { if (umaData != null) { bonesInSkeleton = new List <string>(umaData.skeleton.BoneNames); } bonesInSkeleton.Sort(); UpdateNames(); //Style for Tips foldoutTipStyle = new GUIStyle(EditorStyles.foldout); foldoutTipStyle.fontStyle = FontStyle.Bold; _target = target as DynamicDNAConverterBehaviour; converterControllerProp = serializedObject.FindProperty("_converterController"); if (converterControllerProp.objectReferenceValue == null) { drawAsLegacy = false; } else { drawAsLegacy = true; } initialized = true; } }
private void RecursiveScanFoldersForAssets(string path, Delegate callback, int addMethod) { var assetFiles = System.IO.Directory.GetFiles(path, "*.prefab"); foreach (var assetFile in assetFiles) { var tempDnaGO = AssetDatabase.LoadAssetAtPath(assetFile, typeof(GameObject)) as GameObject; DynamicDNAConverterBehaviour tempDnaAsset = tempDnaGO.GetComponent <DynamicDNAConverterBehaviour>(); if (tempDnaAsset) { callback.DynamicInvoke(tempDnaAsset, addMethod); } } foreach (var subFolder in System.IO.Directory.GetDirectories(path)) { RecursiveScanFoldersForAssets(subFolder.Replace('\\', '/'), callback, addMethod); } }
private void ImportConverterDropArea(Rect dropArea, int addMethod, Action <DynamicDNAConverterBehaviour, int> callback) { Event evt = Event.current; if (evt.type == EventType.DragUpdated) { if (dropArea.Contains(evt.mousePosition)) { DragAndDrop.visualMode = DragAndDropVisualMode.Copy; } Event.current.Use(); return; } if (evt.type == EventType.DragPerform) { if (dropArea.Contains(evt.mousePosition)) { DragAndDrop.AcceptDrag(); UnityEngine.Object[] draggedObjects = DragAndDrop.objectReferences as UnityEngine.Object[]; for (int i = 0; i < draggedObjects.Length; i++) { if (draggedObjects[i]) { GameObject tempDnaGO = draggedObjects[i] as GameObject; DynamicDNAConverterBehaviour tempDnaAsset = tempDnaGO.GetComponent <DynamicDNAConverterBehaviour>(); if (tempDnaAsset) { callback.DynamicInvoke(tempDnaAsset, addMethod); continue; } var path = AssetDatabase.GetAssetPath(draggedObjects[i]); if (System.IO.Directory.Exists(path)) { RecursiveScanFoldersForAssets(path, callback, addMethod); } } } } Event.current.Use(); return; } }
public void Init(DynamicDNAConverterBehaviour targetDDCB, SerializedObject DDCBSO, UMAData umaData, DynamicDNAConverterCustomizer DDCC, List <string> bonesList) { if (_skelModPropDrawer == null) { _skelModPropDrawer = new SkeletonModifierPropertyDrawer(); } _skelModPropDrawer.AllowLegacyDNADrawer = true; target = targetDDCB; serializedObject = DDCBSO; this.umaData = umaData; thisDDCC = DDCC; bonesInSkeleton = bonesList; this.minimalMode = thisDDCC != null; UpdateNames(); //Style for Tips foldoutTipStyle = new GUIStyle(EditorStyles.foldout); foldoutTipStyle.fontStyle = FontStyle.Bold; initialized = true; }