ZClamp.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using UnityEngine;
  3. [ExecuteInEditMode]
  4. public class ZClamp : BaseBehaviour
  5. {
  6. private float ZNum
  7. {
  8. get
  9. {
  10. switch (this.ZLayer)
  11. {
  12. case LayerManager.ZNumEnum.NNear:
  13. return LayerManager.ZNum.NNear;
  14. case LayerManager.ZNumEnum.MNear:
  15. return LayerManager.ZNum.MNear;
  16. case LayerManager.ZNumEnum.NMiddle:
  17. return LayerManager.ZNum.NMiddle;
  18. case LayerManager.ZNumEnum.MMiddle_P:
  19. return LayerManager.ZNum.MMiddle_P;
  20. case LayerManager.ZNumEnum.MMiddle_E:
  21. return LayerManager.ZNum.MMiddleE(EnemyAttribute.RankType.Normal);
  22. case LayerManager.ZNumEnum.FMiddle:
  23. return LayerManager.ZNum.FMiddle;
  24. case LayerManager.ZNumEnum.NFar:
  25. return LayerManager.ZNum.NFar;
  26. case LayerManager.ZNumEnum.MFar:
  27. return LayerManager.ZNum.MFar;
  28. case LayerManager.ZNumEnum.FFar:
  29. return LayerManager.ZNum.FFar;
  30. case LayerManager.ZNumEnum.BgFar:
  31. return LayerManager.ZNum.BgFar;
  32. case LayerManager.ZNumEnum.Fx:
  33. return LayerManager.ZNum.Fx;
  34. default:
  35. Log.Error("ZClamp发生严重错误,选择了尚未实现代码的Layer,请仔细检查源代码");
  36. throw new ArgumentOutOfRangeException();
  37. }
  38. }
  39. }
  40. private void LateUpdate()
  41. {
  42. Vector3 position = base.transform.position;
  43. position.z = this.ZNum - (float)this.SortNum * 0.0001f;
  44. if (base.transform.position != position)
  45. {
  46. base.transform.position = position;
  47. }
  48. if (this.FixedScale)
  49. {
  50. Vector3 localScale = base.transform.localScale;
  51. float z = 0.0001f / base.transform.lossyScale.z;
  52. localScale.z = z;
  53. base.transform.localScale = localScale;
  54. }
  55. }
  56. public LayerManager.ZNumEnum ZLayer;
  57. public int SortNum;
  58. private const float Scale = 0.0001f;
  59. private const float FixedScaleValue = 0.0001f;
  60. public bool FixedScale;
  61. }