Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Components not refreshing
#8
Hi
Here is a version of MyScript that has not the issue:

Code:
using FluffyUnderware.Curvy;
using FluffyUnderware.Curvy.Generator;
using FluffyUnderware.Curvy.Generator.Modules;
using FluffyUnderware.Curvy.Shapes;
using UnityEngine;

public class MyScript : MonoBehaviour
{
    public CurvySpline mySpline;
    private CreateMesh createMeshModule;

    public void GenerateColliderVolume()
    {
        GameObject volumeCollider = new GameObject("Volume Collider");
        volumeCollider.transform.parent = this.gameObject.transform;
        CurvyGenerator generator = volumeCollider.AddComponent<CurvyGenerator>();
        generator.ShowDebug = true;
        generator.AutoRefresh = true;

        InputSplinePath inputSplinePath = generator.AddModule<InputSplinePath>();
        InputSplineShape inputSplineShape = generator.AddModule<InputSplineShape>();
        BuildShapeExtrusion shapeExtrusion = generator.AddModule<BuildShapeExtrusion>();
        BuildVolumeMesh volumeMesh = generator.AddModule<BuildVolumeMesh>();
        createMeshModule = generator.AddModule<CreateMesh>();

        inputSplinePath.Spline = mySpline; // this is just the Curvy Spline I've already created elsewhere
        inputSplinePath.Path.LinkTo(shapeExtrusion.InPath);

        CSCircle circle = inputSplineShape.gameObject.AddComponent<CSCircle>();
        circle.Count = 4;
        circle.Radius = 1;
        circle.Refresh();

        inputSplineShape.Shape = circle.Spline;
        inputSplineShape.OutShape.LinkTo(shapeExtrusion.InCross);
        shapeExtrusion.OutVolume.LinkTo(volumeMesh.InVolume);
        volumeMesh.OutVMesh.LinkTo(createMeshModule.InVMeshArray);

        generator.Initialize(true);
        generator.OnRefresh.AddListener(OnGeneratorRefreshed);
    }

    private void OnGeneratorRefreshed(CurvyCGEventArgs aguments)
    {
        aguments.Generator.OnRefresh.RemoveListener(OnGeneratorRefreshed);
        GameObject finalCollider = createMeshModule.SaveToScene(null);
        Debug.Log(finalCollider); // it's null
    }
}


There are two changes:
- calling Refresh() on circle
- saving the mesh in an OnRefresh event listener

I kept the generator.Initialize, even if it is not necessary in this case.

Sorry for the complications. The generator's current initialization process makes it span on possibly multiple frames, so a straight forward code like yours does not always work. Making the generators initialize in one frame is a task in my todo list, but I have to admit that it isn't very high on the list for now, due to the amount of work it involves, and the comparatively low benefits compared to other items on that list. But it should eventually be done.

Thanks for your patience, and have a nice day
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Reply


Messages In This Thread
Components not refreshing - by amccraw - 02-14-2020, 07:34 PM
RE: Components not refreshing - by _Aka_ - 02-14-2020, 11:08 PM
RE: Components not refreshing - by amccraw - 02-17-2020, 01:16 PM
RE: Components not refreshing - by _Aka_ - 02-19-2020, 12:36 AM
RE: Components not refreshing - by _Aka_ - 02-20-2020, 01:00 AM
RE: Components not refreshing - by _Aka_ - 02-20-2020, 01:09 AM
RE: Components not refreshing - by Diasporism - 04-09-2021, 01:17 AM
RE: Components not refreshing - by _Aka_ - 04-09-2021, 09:13 AM
RE: Components not refreshing - by Diasporism - 04-09-2021, 02:51 PM
RE: Components not refreshing - by _Aka_ - 04-09-2021, 02:54 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
Question How to attach custom components to output Sacryn 3 7 02-23-2024, 09:42 AM
Last Post: _Aka_
  CurvyGenerator not refreshing until next frame when created. Lupos 2 7 06-08-2023, 12:12 PM
Last Post: _Aka_
  How to stop spline refreshing when a control point is deleted or removed? Beaver_Boy 4 10 07-23-2022, 11:24 AM
Last Post: _Aka_
  Adding a point, then refreshing the mesh results in wrong mesh for one frame Jellybit 2 7,779 02-17-2014, 05:29 PM
Last Post: Jellybit

Forum Jump: