MeshRayHit.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. namespace O3DWB
  4. {
  5. public class MeshRayHit
  6. {
  7. #region Private Variables
  8. private Ray _ray;
  9. private float _hitEnter;
  10. private Octave3DMesh _hitMesh;
  11. private Octave3DMeshCollider _hitCollider;
  12. private int _hitTraingleIndex;
  13. private Vector3 _hitPoint;
  14. private Vector3 _hitNormal;
  15. #endregion
  16. #region Public Properties
  17. public Ray Ray { get { return _ray; } }
  18. public float HitEnter { get { return _hitEnter; } }
  19. public Octave3DMesh HitMesh { get { return _hitMesh; } }
  20. public Octave3DMeshCollider HitCollider { get { return _hitCollider; } }
  21. public int HitTriangleIndex { get { return _hitTraingleIndex; } }
  22. public Vector3 HitPoint { get { return _hitPoint; } }
  23. public Vector3 HitNormal { get { return _hitNormal; } }
  24. #endregion
  25. #region Constructors
  26. public MeshRayHit(Ray ray, float hitEnter, Octave3DMesh hitMesh, int hitTriangleIndex, Vector3 hitPoint, Vector3 hitNormal, TransformMatrix meshTransformMatrix)
  27. {
  28. _ray = ray;
  29. _hitEnter = hitEnter;
  30. _hitMesh = hitMesh;
  31. _hitCollider = new Octave3DMeshCollider(_hitMesh, meshTransformMatrix);
  32. _hitTraingleIndex = hitTriangleIndex;
  33. _hitPoint = hitPoint;
  34. _hitNormal = hitNormal;
  35. _hitNormal.Normalize();
  36. }
  37. #endregion
  38. }
  39. }
  40. #endif