public void OnDrawGizmos() { Vector3[] arcGizmo = new Vector3[4]; float objectX = transform.position.x; float objectY = transform.position.y; float objectZ = transform.position.z; switch (coinLineRefraction) { case CoinLineRefraction.None: arcGizmo[0] = new Vector3(objectX, objectY, objectZ); arcGizmo[1] = new Vector3(objectX, objectY, objectZ + (length / 3.0f) * 1.0f); arcGizmo[2] = new Vector3(objectX, objectY, objectZ + (length / 3.0f) * 2.0f); arcGizmo[3] = new Vector3(objectX, objectY, objectZ + (length / 3.0f) * 3.0f); break; case CoinLineRefraction.LeftStraight: arcGizmo[0] = new Vector3(objectX, objectY, objectZ); arcGizmo[1] = new Vector3(objectX + -0.6f, objectY, objectZ + (length / 3.0f) * 1.0f); arcGizmo[2] = new Vector3(objectX + -6.0f, objectY, objectZ + (length / 3.0f) * 2.0f); arcGizmo[3] = new Vector3(objectX + -6.06f, objectY, objectZ + (length / 3.0f) * 3.0f); break; case CoinLineRefraction.RightStraight: arcGizmo[0] = new Vector3(objectX, objectY, objectZ); arcGizmo[1] = new Vector3(objectX + 0.6f, objectY, objectZ + (length / 3.0f) * 1.0f); arcGizmo[2] = new Vector3(objectX + 6.0f, objectY, objectZ + (length / 3.0f) * 2.0f); arcGizmo[3] = new Vector3(objectX + 6.06f, objectY, objectZ + (length / 3.0f) * 3.0f); break; case CoinLineRefraction.LeftCurved: arcGizmo[0] = new Vector3(objectX, objectY, objectZ); arcGizmo[1] = new Vector3(objectX + -6.0f, objectY, objectZ + (length / 3.0f) * 1.0f); arcGizmo[2] = new Vector3(objectX + -6.0f, objectY, objectZ + (length / 3.0f) * 2.0f); arcGizmo[3] = new Vector3(objectX, objectY, objectZ + (length / 3.0f) * 3.0f); break; case CoinLineRefraction.RightCurved: arcGizmo[0] = new Vector3(objectX, objectY, objectZ); arcGizmo[1] = new Vector3(objectX + 6.0f, objectY, objectZ + (length / 3.0f) * 1.0f); arcGizmo[2] = new Vector3(objectX + 6.0f, objectY, objectZ + (length / 3.0f) * 2.0f); arcGizmo[3] = new Vector3(objectX, objectY, objectZ + (length / 3.0f) * 3.0f); break; } ThunderTween.DrawPath(arcGizmo, Color.black); Gizmos.color = Color.yellow; int coinCount = (int)Mathf.Round(length / coinSpacing); float perIncrement = 1.0f / coinCount; float currentPercent = perIncrement; // First Coint Gizmos.DrawSphere(ThunderTween.PointOnPath(arcGizmo, 0), 1f); // Path Coins for (int i = 0; i < coinCount; i++) { Vector3 coinPos = ThunderTween.PointOnPath(arcGizmo, currentPercent); currentPercent += perIncrement; Gizmos.DrawSphere(coinPos, 1f); } }