LayerManager.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using System;
  2. using UnityEngine;
  3. public class LayerManager
  4. {
  5. public static readonly int PlayerMask = LayerMask.GetMask(new string[]
  6. {
  7. "Player"
  8. });
  9. public static readonly int PlayerBodyMask = LayerMask.GetMask(new string[]
  10. {
  11. "PlayerBody"
  12. });
  13. public static readonly int EnemyMask = LayerMask.GetMask(new string[]
  14. {
  15. "Enemy"
  16. });
  17. public static readonly int GroundMask = LayerMask.GetMask(new string[]
  18. {
  19. "Ground"
  20. });
  21. public static readonly int CeilingMask = LayerMask.GetMask(new string[]
  22. {
  23. "Ceiling"
  24. });
  25. public static readonly int ObstacleMask = LayerMask.GetMask(new string[]
  26. {
  27. "Obstacle"
  28. });
  29. public static readonly int WallMask = LayerMask.GetMask(new string[]
  30. {
  31. "Wall"
  32. });
  33. public static readonly int OneWayGroundMask = LayerMask.GetMask(new string[]
  34. {
  35. "OneWayPlatforms"
  36. });
  37. public static readonly int PhysicCheckLineMask = LayerMask.GetMask(new string[]
  38. {
  39. "PhysicCheckLine"
  40. });
  41. public static readonly int ColliderimpactMask = LayerMask.GetMask(new string[]
  42. {
  43. "SoftCollidedImpact"
  44. });
  45. public static readonly int PlayerLayerID = LayerMask.NameToLayer("Player");
  46. public static readonly int PlayerBodyLayerID = LayerMask.NameToLayer("PlayerBody");
  47. public static readonly int EnemyLayerID = LayerMask.NameToLayer("Enemy");
  48. public static readonly int GroundLayerID = LayerMask.NameToLayer("Ground");
  49. public static readonly int CeilingLayerID = LayerMask.NameToLayer("Ceiling");
  50. public static readonly int ObstacleLayerID = LayerMask.NameToLayer("Obstacle");
  51. public static readonly int WallLayerID = LayerMask.NameToLayer("Wall");
  52. public static readonly int OneWayPlatformLayerID = LayerMask.NameToLayer("OneWayPlatforms");
  53. public enum ZNumEnum
  54. {
  55. NNear,
  56. MNear,
  57. NMiddle,
  58. MMiddle_P,
  59. MMiddle_E,
  60. FMiddle,
  61. NFar,
  62. MFar,
  63. FFar,
  64. BgFar,
  65. Fx
  66. }
  67. public static class ZNum
  68. {
  69. public static float MMiddleE(EnemyAttribute.RankType rankType = EnemyAttribute.RankType.Normal)
  70. {
  71. switch (rankType)
  72. {
  73. case EnemyAttribute.RankType.Normal:
  74. return LayerManager.ZNum.MMiddle_E;
  75. case EnemyAttribute.RankType.Elite:
  76. return LayerManager.ZNum.MMiddle_E_Elite;
  77. case EnemyAttribute.RankType.BOSS:
  78. return LayerManager.ZNum.MMiddle_E_Boss;
  79. default:
  80. throw new ArgumentOutOfRangeException("rankType", rankType, null);
  81. }
  82. }
  83. public static float NNear = -5f;
  84. public static float MNear = -4f;
  85. public static float NMiddle = -0.003f;
  86. public static float MMiddle_P = -0.002f;
  87. private static float MMiddle_E = -0.001f;
  88. private static float MMiddle_E_Elite = -0.0009f;
  89. private static float MMiddle_E_Boss = -0.0008f;
  90. public static float TempEnemy = -0.003f;
  91. public static float FMiddle;
  92. public static float NFar = 10f;
  93. public static float MFar = 20f;
  94. public static float FFar = 30f;
  95. public static float BgFar = 50f;
  96. public static float Fx = -0.2f;
  97. }
  98. public class YNum
  99. {
  100. public static float GetGroundHeight(GameObject target)
  101. {
  102. BoxCollider2D component = target.GetComponent<BoxCollider2D>();
  103. Vector3 position = target.transform.position;
  104. RaycastHit2D raycastHit2D = Physics2D.Raycast(target.transform.position, Vector2.down, 100f, LayerManager.GroundMask | LayerManager.OneWayGroundMask);
  105. if (component == null)
  106. {
  107. return raycastHit2D.point.y;
  108. }
  109. RaycastHit2D raycastHit2D2 = Physics2D.Raycast(new Vector3(position.x + component.offset.x - component.size.x / 2f, position.y, position.z), Vector2.down, 100f, LayerManager.GroundMask | LayerManager.OneWayGroundMask);
  110. RaycastHit2D raycastHit2D3 = Physics2D.Raycast(new Vector3(position.x + component.offset.x + component.size.x / 2f, position.y, position.z), Vector2.down, 100f, LayerManager.GroundMask | LayerManager.OneWayGroundMask);
  111. return Mathf.Max(raycastHit2D2.point.y, raycastHit2D3.point.y);
  112. }
  113. public const float Zero = -4.2f;
  114. }
  115. }