@@ -16,76 +16,89 @@ public enum HexDirection
1616
1717 public class HexMeshData
1818 {
19- public float outerRadius ;
20- public float innerRadius ;
21- public List < Vector3 > vertices ;
22- public List < int > triangles ;
23- public List < Color > colors ;
24- public List < Vector2 > uv ;
25- public Vector3 [ ] corners ;
26-
27- private float border = 0.25f ;
19+ private readonly float _outerRadius ;
20+ private readonly float _innerRadius ;
21+ private readonly List < Vector3 > _vertices ;
22+ private readonly List < int > _triangles ;
23+ private readonly List < Color > _colors ;
24+ private readonly List < Vector2 > _uv ;
25+ private readonly Vector3 [ ] _corners ;
26+ private readonly float _border = 0.25f ;
2827
29- public float Border => border ;
30- public float Solid => 1 - border ;
28+ public float Border => _border ;
29+ public float Solid => 1 - _border ;
30+
31+ public float OuterRadius => _outerRadius ;
32+
33+ public float InnerRadius => _innerRadius ;
34+
35+ public List < Vector3 > Vertices => _vertices ;
36+
37+ public List < int > Triangles => _triangles ;
38+
39+ public List < Color > Colors => _colors ;
40+
41+ public List < Vector2 > Uv => _uv ;
3142
3243 public HexMeshData ( )
3344 {
3445 }
3546
3647 public HexMeshData ( float radius , float border = 0.2f )
3748 {
38- this . border = Mathf . Clamp01 ( border ) ;
49+ this . _border = Mathf . Clamp01 ( border ) ;
3950
40- outerRadius = radius ;
41- innerRadius = HexMeshUtility . GetInnerRadius ( outerRadius ) ;
42- vertices = new List < Vector3 > ( ) ;
43- triangles = new List < int > ( ) ;
44- colors = new List < Color > ( ) ;
45- uv = new List < Vector2 > ( ) ;
46- corners = new [ ] {
47- new Vector3 ( 0f , 0f , outerRadius ) ,
48- new Vector3 ( innerRadius , 0f , 0.5f * outerRadius ) ,
49- new Vector3 ( innerRadius , 0f , - 0.5f * outerRadius ) ,
50- new Vector3 ( 0f , 0f , - outerRadius ) ,
51- new Vector3 ( - innerRadius , 0f , - 0.5f * outerRadius ) ,
52- new Vector3 ( - innerRadius , 0f , 0.5f * outerRadius ) ,
53- new Vector3 ( 0f , 0f , outerRadius )
51+ _outerRadius = radius ;
52+ _innerRadius = HexMeshUtility . GetInnerRadius ( _outerRadius ) ;
53+ _vertices = new List < Vector3 > ( ) ;
54+ _triangles = new List < int > ( ) ;
55+ _colors = new List < Color > ( ) ;
56+ _uv = new List < Vector2 > ( ) ;
57+ _corners = new [ ] {
58+ new Vector3 ( 0f , 0f , _outerRadius ) ,
59+ new Vector3 ( _innerRadius , 0f , 0.5f * _outerRadius ) ,
60+ new Vector3 ( _innerRadius , 0f , - 0.5f * _outerRadius ) ,
61+ new Vector3 ( 0f , 0f , - _outerRadius ) ,
62+ new Vector3 ( - _innerRadius , 0f , - 0.5f * _outerRadius ) ,
63+ new Vector3 ( - _innerRadius , 0f , 0.5f * _outerRadius ) ,
64+ new Vector3 ( 0f , 0f , _outerRadius )
5465 } ;
5566 }
5667
5768 public Vector3 GetBridge ( HexDirection direction )
5869 {
59- return ( corners [ ( int ) direction ] + corners [ ( int ) direction + 1 ] ) * 0.5f * border ;
70+ return ( _corners [ ( int ) direction ] + _corners [ ( int ) direction + 1 ] ) * 0.5f * _border ;
6071 }
6172
6273 public Vector3 GetFirstCorner ( HexDirection direction )
6374 {
64- return corners [ ( int ) direction ] ;
75+ return _corners [ ( int ) direction ] ;
6576 }
6677
6778 public Vector3 GetSecondCorner ( HexDirection direction )
6879 {
69- return corners [ ( int ) direction + 1 ] ;
80+ return _corners [ ( int ) direction + 1 ] ;
7081 }
7182
7283 public Vector3 GetFirstSolidCorner ( HexDirection direction )
7384 {
74- return corners [ ( int ) direction ] * Solid ;
85+ return _corners [ ( int ) direction ] * Solid ;
7586 }
7687
7788 public Vector3 GetSecondSolidCorner ( HexDirection direction )
7889 {
79- return corners [ ( int ) direction + 1 ] * Solid ;
90+ return _corners [ ( int ) direction + 1 ] * Solid ;
8091 }
8192
8293 public Mesh CreateMesh ( )
8394 {
84- Mesh mesh = new Mesh ( ) ;
85- mesh . vertices = vertices . ToArray ( ) ;
86- mesh . triangles = triangles . ToArray ( ) ;
87- mesh . colors = colors . ToArray ( ) ;
88- mesh . uv = uv . ToArray ( ) ;
95+ var mesh = new Mesh
96+ {
97+ vertices = _vertices . ToArray ( ) ,
98+ triangles = _triangles . ToArray ( ) ,
99+ colors = _colors . ToArray ( ) ,
100+ uv = _uv . ToArray ( )
101+ } ;
89102 mesh . RecalculateNormals ( ) ;
90103 return mesh ;
91104 }
@@ -186,7 +199,7 @@ public static Mesh GenerateHexagonMesh(float radius, float border, int startX, i
186199 var index = ( y * mapWidth ) + x ;
187200
188201 var xOffset = x + y * 0.5f - ( int ) ( y / 2 ) ;
189- var center = new Vector3 ( xOffset * meshData . innerRadius * 2 , 0 , y * meshData . outerRadius * 1.5f ) ;
202+ var center = new Vector3 ( xOffset * meshData . InnerRadius * 2 , 0 , y * meshData . OuterRadius * 1.5f ) ;
190203
191204 for ( var direction = 0 ; direction < 6 ; direction ++ )
192205 {
@@ -254,51 +267,51 @@ private static void AddTriangle(HexMeshData meshData, Vector3 center, Vector3 uv
254267
255268 private static void AddTriangle ( HexMeshData meshData , Vector3 v1 , Vector3 v2 , Vector3 v3 , Color color , Vector3 uv )
256269 {
257- var vertexIndex = meshData . vertices . Count ;
270+ var vertexIndex = meshData . Vertices . Count ;
258271
259- meshData . vertices . Add ( v1 ) ;
260- meshData . vertices . Add ( v2 ) ;
261- meshData . vertices . Add ( v3 ) ;
272+ meshData . Vertices . Add ( v1 ) ;
273+ meshData . Vertices . Add ( v2 ) ;
274+ meshData . Vertices . Add ( v3 ) ;
262275
263- meshData . colors . Add ( color ) ;
264- meshData . colors . Add ( color ) ;
265- meshData . colors . Add ( color ) ;
276+ meshData . Colors . Add ( color ) ;
277+ meshData . Colors . Add ( color ) ;
278+ meshData . Colors . Add ( color ) ;
266279
267- meshData . uv . Add ( uv ) ;
268- meshData . uv . Add ( uv ) ;
269- meshData . uv . Add ( uv ) ;
280+ meshData . Uv . Add ( uv ) ;
281+ meshData . Uv . Add ( uv ) ;
282+ meshData . Uv . Add ( uv ) ;
270283
271- meshData . triangles . Add ( vertexIndex ) ;
272- meshData . triangles . Add ( vertexIndex + 1 ) ;
273- meshData . triangles . Add ( vertexIndex + 2 ) ;
284+ meshData . Triangles . Add ( vertexIndex ) ;
285+ meshData . Triangles . Add ( vertexIndex + 1 ) ;
286+ meshData . Triangles . Add ( vertexIndex + 2 ) ;
274287 }
275288
276289 private static void AddQuad ( HexMeshData meshData , Vector3 v1 , Vector3 v2 , Vector3 v3 , Vector3 v4 , Color color , Vector3 uv )
277290 {
278- var vertexIndex = meshData . vertices . Count ;
291+ var vertexIndex = meshData . Vertices . Count ;
279292
280- meshData . vertices . Add ( v1 ) ;
281- meshData . vertices . Add ( v2 ) ;
282- meshData . vertices . Add ( v3 ) ;
283- meshData . vertices . Add ( v4 ) ;
293+ meshData . Vertices . Add ( v1 ) ;
294+ meshData . Vertices . Add ( v2 ) ;
295+ meshData . Vertices . Add ( v3 ) ;
296+ meshData . Vertices . Add ( v4 ) ;
284297
285- meshData . colors . Add ( color ) ;
286- meshData . colors . Add ( color ) ;
287- meshData . colors . Add ( color ) ;
288- meshData . colors . Add ( color ) ;
298+ meshData . Colors . Add ( color ) ;
299+ meshData . Colors . Add ( color ) ;
300+ meshData . Colors . Add ( color ) ;
301+ meshData . Colors . Add ( color ) ;
289302
290- meshData . uv . Add ( uv ) ;
291- meshData . uv . Add ( uv ) ;
292- meshData . uv . Add ( uv ) ;
293- meshData . uv . Add ( uv ) ;
303+ meshData . Uv . Add ( uv ) ;
304+ meshData . Uv . Add ( uv ) ;
305+ meshData . Uv . Add ( uv ) ;
306+ meshData . Uv . Add ( uv ) ;
294307
295- meshData . triangles . Add ( vertexIndex ) ;
296- meshData . triangles . Add ( vertexIndex + 2 ) ;
297- meshData . triangles . Add ( vertexIndex + 1 ) ;
308+ meshData . Triangles . Add ( vertexIndex ) ;
309+ meshData . Triangles . Add ( vertexIndex + 2 ) ;
310+ meshData . Triangles . Add ( vertexIndex + 1 ) ;
298311
299- meshData . triangles . Add ( vertexIndex + 1 ) ;
300- meshData . triangles . Add ( vertexIndex + 2 ) ;
301- meshData . triangles . Add ( vertexIndex + 3 ) ;
312+ meshData . Triangles . Add ( vertexIndex + 1 ) ;
313+ meshData . Triangles . Add ( vertexIndex + 2 ) ;
314+ meshData . Triangles . Add ( vertexIndex + 3 ) ;
302315 }
303316
304317 }
0 commit comments