Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1.  
  2. CustomOBBCollider coll = (CustomOBBCollider)collider;
  3.  
  4. for (int i = 0; i < points.Length; i++)
  5. {
  6. Vector3 face = (new Vector2(transform.position.x, transform.position.y) + points[(i + 1) % points.Length]) -
  7. (new Vector2(transform.position.x, transform.position.y) + points[i]);
  8.  
  9. Vector2 normal = Vector3.Cross(face, new Vector3(0, 0, 1)).normalized;
  10.  
  11. projectedPointsOwn.Clear();
  12. projectedPointsColl.Clear();
  13.  
  14. for (int j = 0; j < points.Length; j++)
  15. {
  16. projectedPointsOwn.Add(Project(normal, new Vector2(transform.position.x, transform.position.y) + points[j]));
  17. }
  18.  
  19. for (int j = 0; j < coll.points.Length; j++)
  20. {
  21. projectedPointsColl.Add(Project(normal, new Vector2(coll.transform.position.x, coll.transform.position.y) + coll.points[j]));
  22. }
  23.  
  24. minPoint = Vector2.positiveInfinity;
  25. maxPoint = Vector2.negativeInfinity;
  26.  
  27. for (int j = 0; j < projectedPointsOwn.Count; j++)
  28. {
  29. if (projectedPointsOwn[j].x < minPoint.x)
  30. {
  31. minPoint.x = projectedPointsOwn[j].x;
  32. }
  33. if (projectedPointsOwn[j].y < minPoint.y)
  34. {
  35. minPoint.y = projectedPointsOwn[j].y;
  36. }
  37.  
  38. if (projectedPointsOwn[j].x > maxPoint.x)
  39. {
  40. maxPoint.x = projectedPointsOwn[j].x;
  41. }
  42. if (projectedPointsOwn[j].y > maxPoint.y)
  43. {
  44. maxPoint.y = projectedPointsOwn[j].y;
  45. }
  46. }
  47.  
  48. bool didOverlap = false;
  49.  
  50. for (int j = 0; j < projectedPointsColl.Count; j++)
  51. {
  52. if (projectedPointsColl[j].x < maxPoint.x && projectedPointsColl[j].x > minPoint.x &&
  53. projectedPointsColl[j].y < maxPoint.y && projectedPointsColl[j].y > minPoint.y)
  54. {
  55. didOverlap = true;
  56.  
  57. break;
  58. }
  59. }
  60.  
  61. if (!didOverlap)
  62. {
  63. return false;
  64. }
  65. }
  66. return true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement