diff --git a/Assets/Scripts/World/PlatformGenerator.cs b/Assets/Scripts/World/PlatformGenerator.cs new file mode 100644 index 0000000..e2fba2d --- /dev/null +++ b/Assets/Scripts/World/PlatformGenerator.cs @@ -0,0 +1,49 @@ +using Sirenix.OdinInspector; +using UnityEngine; +using UnityEngine.ProBuilder; +using UnityEngine.ProBuilder.MeshOperations; + +public class PlatformGenerator : MonoBehaviour{ + public Vector2 sizeRange = new Vector2(5f, 20f); + + public float snappingInterval = 2.5f; + + void Start(){ + + } + + [Button] + void GenerateNewPlatform(int corners){ + ProBuilderMesh newShape = new GameObject().AddComponent(); + + int originX = Mathf.RoundToInt(Random.Range(sizeRange.x, sizeRange.y)); + int originY = Mathf.RoundToInt(Random.Range(sizeRange.x, sizeRange.y)); + + originX = -Mathf.Abs(originX); + originY = -Mathf.Abs(originY); + + Vector3 origin = new Vector3(Snap(originX), 0f, Snap(originY)); + + Vector3[] points = new Vector3[corners]; + + for (int i = 0; i < corners; i++) { + if (i == 0) { + points[0] = origin; + } else { + points[i] = GetNewPoint(points[i - 1]); + } + } + + Vector3 GetNewPoint(Vector3 previous){ + return Vector3.zero; + + } + + float Snap(float input){ + return ((input = snappingInterval / 2) / snappingInterval) * snappingInterval; + } + + newShape.CreateShapeFromPolygon(points, 5f, false); + + } +} diff --git a/Assets/Scripts/World/PlatformGenerator.cs.meta b/Assets/Scripts/World/PlatformGenerator.cs.meta new file mode 100644 index 0000000..9e8fd02 --- /dev/null +++ b/Assets/Scripts/World/PlatformGenerator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 56af9443f43cafc40adcf591b83a78c7 \ No newline at end of file