public Transform GetBone(EquipmentRegion region) { EquipmentBone bone = Bones.Find(x => x.region == region); if (bone == null || bone.bone == null) { Debug.LogWarning("Missing Bone Map configuration: " + gameObject.name); return(null); } return(bone.bone.transform); }
private SerializedProperty InsertEquipmentBone(EquipmentRegion region) { SerializedProperty bones = serializedObject.FindProperty("m_Bones"); serializedObject.Update(); bones.InsertArrayElementAtIndex(bones.arraySize); SerializedProperty current = bones.GetArrayElementAtIndex(bones.arraySize - 1); current.FindPropertyRelative("region").objectReferenceValue = region; current.FindPropertyRelative("bone").objectReferenceValue = null; serializedObject.ApplyModifiedProperties(); return(current); }
private void MergeEquipmentRegions() { List <EquipmentRegion> items = this.m_Source.equipments.Where(y => !this.m_Destination.equipments.Any(z => z.Name == y.Name)).ToList(); for (int i = 0; i < items.Count; i++) { EquipmentRegion item = ScriptableObject.Instantiate(items[i]); item.hideFlags = HideFlags.HideInHierarchy; AssetDatabase.AddObjectToAsset(item, this.m_Destination); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); this.m_Destination.equipments.Add(item); EditorUtility.SetDirty(this.m_Destination); } }