Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Force Mesh creation at runtime?
#1
How do I force the creation of a mesh at runtime?  If I use a generator, the mesh gets created if I run the creation through a co-routine, but how do I force the mesh to be created without a co-routine?
Reply
#2
Like answered by mail: Call CurvyGenerator.Refresh(), then use the CreateMesh module's SaveToScene() method to "extract" the meshes.
Reply
#3
This code does not work, unless, I put it into a co-routine with a 0.1f second wait.

Code:
   // Create the spline
   var GENERATOR = CurvyGenerator.Create();
   var SHAPE = Rails[0].CopyTo(GENERATOR);

   var PATH = GENERATOR.AddModule<InputSplinePath>();
   var EXTRUSION = GENERATOR.AddModule<BuildShapeExtrusion>();
   var VOLUME = GENERATOR.AddModule<BuildVolumeMesh>();
   VOLUME.SetMaterial(0, RailMaterials[1]);
   VOLUME.MaterialSetttings[0].KeepAspect = CGKeepAspectMode.ScaleU;
   var MESH = GENERATOR.AddModule<CreateMesh>();

   // Wire the Generator Parts
   PATH.OutputByName["Path"].LinkTo(EXTRUSION.InputByName["Path"]);
   SHAPE.OutputByName["Shape"].LinkTo(EXTRUSION.InputByName["Cross"]);
   EXTRUSION.OutputByName["Volume"].LinkTo(VOLUME.InputByName["Volume"]);
   VOLUME.OutputByName["VMesh"].LinkTo(MESH.InputByName["VMesh"]);

   // Create the spline
   PATH.Spline = CurvySpline.Create();

   GENERATOR.Initialize(true);

   // ... logic to add points to SPLINE

   GENERATOR.Refresh(true);
   var CREATED_MESH = MESH.SaveToScene(myGameObject.transform);

   // CREATED_MESH is null
Reply
#4
What does "var SHAPE=Rails[0].CopyTo(GENERATOR)" is supposed to do?

Edit: Nevermind, should know my own API better Big Grin

You shouldn't need to make your shape spline a managed spline (that's what you do with copying it into the CG space). I just noticed your other post, will continue there...
Reply
#5
Rails[0] is a shape inside of another generator created within the editor.  The thing is, the code runs fun if I put it into a co-routine and let the system run though a bunch of frames, but doesn't work if I run it straight.

[Image: 51d688a126.png]

In retrospect, I may have done this because I couldn't figure out a way to create the shape at runtime.  I could create a shape consisting of pre-fab elements like circles and boxes, but how do I create a spline and tell Curvy to extrude it along the path ... all at runtime?  There was no sample in the example code that I could find to do that.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Adjust radius of generated mesh via script? Shackman 1 3 03-26-2024, 01:12 PM
Last Post: _Aka_
  Avoiding runtime GC allocations on control point position change Ell223 8 18 02-24-2024, 10:43 AM
Last Post: _Aka_
  Not seeing mesh extended after following YT PaulM 1 3 02-02-2024, 12:01 PM
Last Post: _Aka_
Wink Modifying Splines at Runtime artsung 1 7 01-30-2024, 09:40 AM
Last Post: _Aka_

Forum Jump: