Octave3DTerrainCollider.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. namespace O3DWB
  4. {
  5. public class Octave3DTerrainCollider : Octave3DCollider
  6. {
  7. #region Private Methods
  8. private TerrainCollider _terrainCollider;
  9. #endregion
  10. #region Public Properties
  11. public TerrainCollider TerrainCollider { get { return _terrainCollider; } }
  12. #endregion
  13. #region Constructors
  14. public Octave3DTerrainCollider(TerrainCollider terrainCollider)
  15. {
  16. _terrainCollider = terrainCollider;
  17. }
  18. #endregion
  19. #region Public Methods
  20. public override Octave3DColliderType GetColliderType()
  21. {
  22. return Octave3DColliderType.Terrain;
  23. }
  24. public override bool Raycast(Ray ray, out Octave3DColliderRayHit colliderRayHit)
  25. {
  26. colliderRayHit = null;
  27. RaycastHit rayHit;
  28. if (_terrainCollider.Raycast(ray, out rayHit, float.MaxValue))
  29. colliderRayHit = new Octave3DColliderRayHit(ray, rayHit.distance, rayHit.point, rayHit.normal, this);
  30. return colliderRayHit != null;
  31. }
  32. #endregion
  33. }
  34. }
  35. #endif