public PolyCurveSO Create(SOMaterial defaultMaterial) { if (curve == null) { LineGenerator gen = new LineGenerator() { Start = Vector3.zero, End = 10.0f * Vector3.up, StepSize = 0.1f }; gen.Generate(); curve = new DCurve3(); gen.Make(curve); } // assumes type identifier is something like BlahBlahSO root = new GameObject(UniqueNames.GetNext(Type.identifier.Remove(Type.identifier.Length - 2))); if (EnableLineRenderer) { LineRenderer ren = root.AddComponent <LineRenderer>(); ren.startWidth = ren.endWidth = 0.05f; ren.useWorldSpace = false; } AssignSOMaterial(defaultMaterial); // need to do this to setup BaseSO material stack Material useMaterial = CurrentMaterial; Create_internal(useMaterial); UpdateGeometry(); increment_timestamp(); return(this); }