public static void DeleteSpringBonesAndManagers() { if (Application.isPlaying) { Debug.LogError("再生モードを止めてください。"); return; } if (Selection.gameObjects.Length != 1) { Debug.LogError("一つだけのルートオブジェクトを選択してください"); return; } var rootObject = Selection.gameObjects.First(); var queryMessage = "本当にこのオブジェクトとその子供に入っている全ての\n" + "スプリングボーンとスプリングマネージャーを削除しますか?\n\n" + rootObject.name; if (EditorUtility.DisplayDialog( "スプリングボーンとマネージャーを削除", queryMessage, "削除", "キャンセル")) { SpringBoneSetup.DestroySpringManagersAndBones(rootObject); AssetDatabase.Refresh(); } }
public static SpringManager PerformSetup ( GameObject rootObject, IEnumerable <GameObject> newSpringBones, AutoSetupParameters parameters ) { SpringBoneSetup.DestroySpringManagersAndBones(rootObject); SpringColliderSetup.DestroySpringColliders(rootObject); var springBones = new List <SpringBone>(); foreach (var boneParent in newSpringBones.Where(boneParent => boneParent.transform.childCount > 0)) { springBones.Add(boneParent.AddComponent <SpringBone>()); } var manager = rootObject.AddComponent <SpringManager>(); SpringBoneSetup.FindAndAssignSpringBones(manager, true); if (parameters.createPivots) { foreach (var springBone in springBones) { SpringBoneSetup.CreateSpringPivotNode(springBone); } } return(manager); }
public void BuildObjects(GameObject springBoneRoot, GameObject colliderRoot, IEnumerable <string> requiredBones) { var managerProperties = PersistentSpringManagerProperties.Create( springBoneRoot.GetComponentInChildren <SpringManager>()); SpringBoneSetup.DestroySpringManagersAndBones(springBoneRoot); if (requiredBones != null) { FilterBoneRecordsByRequiredBonesAndCreateUnrecordedBones(springBoneRoot, requiredBones); } var initialTransforms = GameObjectUtil.BuildNameToComponentMap <Transform>(springBoneRoot, true); foreach (var record in pivotRecords) { BuildPivotFromSerializer(initialTransforms, record); } var setupMaps = SpringBoneSetupMaps.Build(springBoneRoot, colliderRoot); foreach (var record in springBoneRecords) { BuildSpringBoneFromSerializer(setupMaps, record); } var springManager = springBoneRoot.AddComponent <SpringManager>(); if (managerProperties != null) { managerProperties.ApplyTo(springManager); } SpringBoneSetup.FindAndAssignSpringBones(springManager); }
public static void DeleteSpringBonesAndManagers() { if (Application.isPlaying) { Debug.LogError("请退出Play模式。"); return; } if (Selection.gameObjects.Length != 1) { Debug.LogError("只可以选择一个Root对象"); return; } var rootObject = Selection.gameObjects.First(); var queryMessage = "确定要把以下对象及其子对象中的\n" + "SpringBone与SpringManager都删除吗?\n\n" + rootObject.name ; if (EditorUtility.DisplayDialog( "考虑清楚,真的要删掉嘛", queryMessage, "删除", "取消")) { SpringBoneSetup.DestroySpringManagersAndBones(rootObject); AssetDatabase.Refresh(); } }