GlobalMesh.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using UnityEngine;
  2. using System.Collections;
  3. namespace VLB
  4. {
  5. public static class GlobalMesh
  6. {
  7. public static Mesh Get()
  8. {
  9. var needDoubleSided = Config.Instance.requiresDoubleSidedMesh;
  10. if (ms_Mesh == null
  11. || ms_DoubleSided != needDoubleSided)
  12. {
  13. Destroy();
  14. ms_Mesh = MeshGenerator.GenerateConeZ_Radius(
  15. lengthZ: 1f,
  16. radiusStart: 1f,
  17. radiusEnd: 1f,
  18. numSides: Config.Instance.sharedMeshSides,
  19. numSegments: Config.Instance.sharedMeshSegments,
  20. cap: true,
  21. doubleSided: needDoubleSided);
  22. ms_Mesh.hideFlags = Consts.ProceduralObjectsHideFlags;
  23. ms_DoubleSided = needDoubleSided;
  24. }
  25. return ms_Mesh;
  26. }
  27. public static void Destroy()
  28. {
  29. if (ms_Mesh != null)
  30. {
  31. GameObject.DestroyImmediate(ms_Mesh);
  32. ms_Mesh = null;
  33. }
  34. }
  35. static Mesh ms_Mesh = null;
  36. static bool ms_DoubleSided = false;
  37. }
  38. }