RemoveRedundantOp.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using ChivaXR;
  2. using ChivaXR.Op;
  3. using Sirenix.OdinInspector;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using UnityEngine;
  8. public class RemoveRedundantOp : MonoBehaviour
  9. {
  10. // Start is called before the first frame update
  11. void Start()
  12. {
  13. }
  14. // Update is called once per frame
  15. void Update()
  16. {
  17. }
  18. [Button("去除多余OP")]
  19. public void RemoveRedundantOpOnScene()
  20. {
  21. List<string> dataInfos = new List<string>();
  22. foreach (ProcessElement item in ProcessManagement.Instance.processes)
  23. {
  24. dataInfos.Add(((PB_OpData)item.processBase).opData.operationDataName);
  25. }
  26. for (int i = OperationManager.Instance.operationDataContainers.Count-1; i >0 ; i--)
  27. {
  28. if (!dataInfos.Contains(OperationManager.Instance.operationDataContainers[i].OpDataName))
  29. {
  30. GameObject obj = OperationManager.Instance.operationDataContainers[i].opData.gameObject;
  31. OperationManager.Instance.operationDataContainers.RemoveAt(i);
  32. DestroyImmediate(obj);
  33. }
  34. }
  35. }
  36. }