public void DoStuff()
        {
            if (!astarPath.IsNone && astarPath.Value != null)
            {
                astarp = FsmConverter.GetAstarPath(astarPath);
            }
            else
            {
                astarp = AstarPath.active;
            }

            if (!isScanning.IsNone)
            {
                astarp.isScanning = isScanning.Value;
            }

            if (!showGraphs.IsNone)
            {
                astarp.showGraphs = showGraphs.Value;
            }

            if (!lastUniqueAreaIndex.IsNone)
            {
                astarp.lastUniqueAreaIndex = lastUniqueAreaIndex.Value;
            }

            if (!astarData.IsNone)
            {
                astarp.graphs = FsmConverter.GetNavGraphs(astarData.Value);
            }

            return;
        }
        public override void OnEnter()
        {
            var go = graphs.Value as FsmNavGraphs;

            if ((go.Value == null) || !graph.UseVariable)
            {
                Finish(); return;
            }                                                                            // it would continue for a frame without return

            var goo = FsmConverter.GetNavGraphs(graphs);
            var coo = new FsmNavGraph();

            if (index.Value >= goo.Length)          //check if the index exists
            {
                Finish();
            }

            coo.Value   = goo[index.Value];
            graph.Value = coo;
            Finish();
        }