DestructibleObjectEditor.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityEditor;
  4. namespace HQFPSWeapons
  5. {
  6. [CustomEditor(typeof(DestructibleObject))]
  7. public class DestructibleObjectEditor : UnityEditor.Editor
  8. {
  9. private Transform m_AutoSearchRoot;
  10. public override void OnInspectorGUI()
  11. {
  12. base.OnInspectorGUI();
  13. USEditorUtility.DoHorizontalLine();
  14. m_AutoSearchRoot = (Transform)EditorGUILayout.ObjectField("Search Root", m_AutoSearchRoot, typeof(Transform), true);
  15. if(GUILayout.Button("Search For Fragments") && m_AutoSearchRoot != null)
  16. {
  17. var dynamicParts = new List<DestructibleObject.DebrisFragment>();
  18. foreach(Transform child in m_AutoSearchRoot)
  19. {
  20. var rigidbody = child.GetComponent<Rigidbody>();
  21. if(rigidbody != null)
  22. dynamicParts.Add(new DestructibleObject.DebrisFragment(rigidbody));
  23. serializedObject.Update();
  24. (serializedObject.targetObject as DestructibleObject).SetDebrisFragments (dynamicParts);
  25. serializedObject.ApplyModifiedProperties();
  26. }
  27. }
  28. }
  29. }
  30. }