ObjectMask.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using System;
  4. using System.Collections.Generic;
  5. namespace O3DWB
  6. {
  7. [Serializable]
  8. public class ObjectMask
  9. {
  10. #region Private Variables
  11. [SerializeField]
  12. private ObjectLayerObjectMask _objectLayerObjectMask;
  13. [SerializeField]
  14. private ObjectCollectionMask _objectCollectionMask;
  15. [SerializeField]
  16. private ObjectMaskView _view;
  17. #endregion
  18. #region Public Properties
  19. public ObjectLayerObjectMask ObjectLayerObjectMask
  20. {
  21. get
  22. {
  23. if (_objectLayerObjectMask == null) _objectLayerObjectMask = Octave3DWorldBuilder.ActiveInstance.CreateScriptableObject<ObjectLayerObjectMask>();
  24. return _objectLayerObjectMask;
  25. }
  26. }
  27. public ObjectCollectionMask ObjectCollectionMask
  28. {
  29. get
  30. {
  31. if (_objectCollectionMask == null) _objectCollectionMask = Octave3DWorldBuilder.ActiveInstance.CreateScriptableObject<ObjectCollectionMask>();
  32. return _objectCollectionMask;
  33. }
  34. }
  35. public ObjectMaskView View { get { return _view; } }
  36. #endregion
  37. #region Constructors
  38. public ObjectMask()
  39. {
  40. _view = new ObjectMaskView(this);
  41. }
  42. #endregion
  43. #region Public Methods
  44. public bool IsGameObjectMasked(GameObject gameObject)
  45. {
  46. if (ObjectLayerObjectMask.IsMasked(gameObject.layer)) return true;
  47. if (ObjectCollectionMask.IsMasked(gameObject)) return true;
  48. return false;
  49. }
  50. public void RemoveInvalidEntries()
  51. {
  52. ObjectCollectionMask.RemoveNullEntries();
  53. ObjectLayerObjectMask.RemoveInvalidLayerNumbers();
  54. }
  55. #endregion
  56. }
  57. }
  58. #endif