Posts: 5
Threads: 2
Joined: May 2021
Hello. I've gone thoroughly through the documentation, api reference, YouTube tutorials and searched here on the forums, but cannot find anything that can explain how I might reference a geneator's input spline path module and assign a spline that was created at runtime. I already have the spline created and configured at runtime and I have a reference to the generator in question, but I can't understand the method or module reference syntax etc. If someone could help it would be very appreciated. Thanks
Posts: 2,150
Threads: 95
Joined: Jun 2017
Hi
This post addresses your question:
https://forum.curvyeditor.com/thread-435...ml#pid1572
Have a nice day
Please consider leaving a
review for Curvy, this helps immensely. Thank you.
Available for freelance work—feel free to reach out.
Posts: 5
Threads: 2
Joined: May 2021
06-17-2021, 08:46 AM
(This post was last modified: 06-17-2021, 08:48 AM by smackledorf.)
Yep that did the trick thank you! For those who may come here in the future, here is my simple method for doing this which I derived from the infinite track scene.
// make spline, you can put in start or have it run once in update add at points to it.
if (!spline)
{
spline = CurvySpline.Create();
spline.Interpolation = CurvyInterpolation.CatmullRom;
buildGenerator();
}
// optional method of adding points to the spline at runtime, I have mine in a crappy frame skip. Make sure to refresh the generator after any change to the spline
if (i < 1)
{
spline.Add(transform.position);
gen.Refresh();
i++;
}
else if (i < 9)
{
i++;
}
else
{
spline.Add(fmpTransform.position);
gen.Refresh();
i = 0;
}
// build a generator
CurvyGenerator buildGenerator()
{
// Create the Curvy Generator
gen = CurvyGenerator.Create();
gen.AutoRefresh = false;
// Create Modules
InputSplinePath path = gen.AddModule<InputSplinePath>();
InputSplineShape shape = gen.AddModule<InputSplineShape>();
BuildShapeExtrusion extrude = gen.AddModule<BuildShapeExtrusion>();
BuildVolumeMesh vol = gen.AddModule<BuildVolumeMesh>();
CreateMesh msh = gen.AddModule<CreateMesh>();
// Create Links between modules
path.OutputByName["Path"].LinkTo(extrude.InputByName["Path"]);
shape.OutputByName["Shape"].LinkTo(extrude.InputByName["Cross"]);
extrude.OutputByName["Volume"].LinkTo(vol.InputByName["Volume"]);
vol.OutputByName["VMesh"].LinkTo(msh.InputByName["VMesh"]);
// Set module properties
path.Spline = spline;
path.UseCache = true;
CSRectangle rectShape = shape.SetManagedShape<CSRectangle>();
rectShape.Width = 20;
rectShape.Height = 2;
extrude.Optimize = false;
extrude.CrossHardEdges = true;
vol.Split = false;
vol.SetMaterial(0, mat);
vol.MaterialSetttings[0].SwapUV = true;
msh.Collider = CGColliderEnum.None;
return gen;
}
Posts: 2,150
Threads: 95
Joined: Jun 2017
Thanks for sharing. If and when you feel like it, please leave a review for the asset, that helps a lot.
Have a nice day
Please consider leaving a
review for Curvy, this helps immensely. Thank you.
Available for freelance work—feel free to reach out.