- Home /
Adding and removing specific triangles ?
I'm trying to create procedural terrain made out of cubes. I have and array of cubes and i'm trying make each cube check if there's air next to it, if there is this script will create a side as needed, but it doesn't work for some reason. Am I doing something wrong ? I need to add a face to an already existing mesh. Here's my script bellow.
public function UpdateChunkBlocks(){ var vertices : Vector3[]; var uvs : Vector2[]; var newMesh : Mesh; newMesh = transform.GetComponent(MeshFilter).mesh; //newMesh = newMesh.mesh; newMesh = new Mesh(); var p1 : Vector3 = new Vector3(.5 + transform.position.x, .5 + transform.position.y, .5 + transform.position.z); var p2 : Vector3 = new Vector3(.5 + transform.position.x, .5 + transform.position.y, -.5 + transform.position.z); var p3 : Vector3 = new Vector3(-.5 + transform.position.x, .5 + transform.position.y, -.5 + transform.position.z); var p4 : Vector3 = new Vector3(-.5 + transform.position.x, .5 + transform.position.y, .5 + transform.position.z); var p5 : Vector3 = new Vector3(.5 + transform.position.x, -.5 + transform.position.y, .5 + transform.position.z); var p6 : Vector3 = new Vector3(.5 + transform.position.x, -.5 + transform.position.y, -.5 + transform.position.z); var p7 : Vector3 = new Vector3(-.5 + transform.position.x, -.5 + transform.position.y, -.5 + transform.position.z); var p8 : Vector3 = new Vector3(-.5 + transform.position.x, -.5 + transform.position.y, .5 + transform.position.z); for (var c = 0; c <= 4096; c++) { for (var b = 0; b <= 4096; b++){ var cBlock; cBlock = c; //every block in the array var bBlock;//every block that is being checked bBlock = b; if(bBlock.Position == cBlock.Position + Vector3(0, 1, 0) && bBlock.Type == "air"){ vertices[0] = p1; vertices[1] = p2; vertices[2] = p3; vertices[3] = p3; uvs[0] = new Vector2(0, .5); uvs[1] = new Vector2(.5, .5); uvs[2] = new Vector2(.5,0); uvs[3] = new Vector2(0, 0); newMesh.triangles += [0, 1, 2, 0, 2, 3]; newMesh.vertices += vertices; newMesh.triangles += [0, 1, 2, 0, 2, 3]; newMesh.uv += uvs; } } } newMesh.RecalculateNormals(); newMesh.RecalculateBounds(); }
I get this error message every time. MissingFieldException: Field 'System.Int32.Position' not found. Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates) Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos) Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateGetter () Boo.Lang.Runtime.RuntimeServices.DoCreatePropGetDispatcher (System.Object target, System.Type type, System.String name) Boo.Lang.Runtime.RuntimeServices.CreatePropGetDispatcher (System.Object target, System.String name) Boo.Lang.Runtime.RuntimeServices+c_AnonStorey14.<>m_9 () Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name) UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)
Answer by Paulius-Liekis · May 02, 2012 at 08:47 AM
cBlock and bBlock are type int in your case. type int has no method Position.
My recommendation: use C# and you will get error like that during compile time. Or add "pragma strict" (or something like that) to your JS files.
Your answer
![](https://koobas.hobune.stream/wayback/20220613070937im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Can unity handle this city (it's multiple meshes)? 1 Answer
creating a mesh procedurally 4 Answers
Easy way to convert a bunch of vertices to triangles or uv's? 1 Answer
minimize vertex artifacting for procedural mesh manipulations - vertex collision same object? 0 Answers