示例#1
0
    void Start()
    {
        // Load graph
        graph            = GetComponent <StoryGraph>();
        graph.controller = this;
        graph.LoadGraph();

        dialogueText.text = "";

        audioSource.Play();
    }
        /// <summary>
        /// Starts a provided StoryGraph
        /// </summary>
        /// <param name="graph"></param>
        /// <returns>True if the Story is started directly. False if the provided Graph is Queued.</returns>
        public bool StartStory(StoryGraph graph)
        {
            if (_currentStoryManager == null)
            {
                Canvas.Show();
                _currentStoryManager = new UVNFStoryManager(graph, this, Canvas, FinishStory);
                return(true);
            }

            QueueStory(graph);
            return(false);
        }
        public void CreateSubStory(StoryGraph graph, UVNFManager manager, UVNFCanvas canvas)
        {
            if (_subgraphHandler == null)
            {
                _afterSubgraphElement = _currentElement.Next;

                _subgraphHandler  = new UVNFStoryManager(graph, manager, canvas, HandleSubgraphFinish);
                _handlingSubgraph = true;
            }
            else
            {
                _subgraphHandler.CreateSubStory(graph, manager, canvas);
            }
        }
        /// <summary>
        /// Creates a StoryManager that automatically starts at the start of the provided Graph
        /// </summary>
        /// <param name="graph"></param>
        /// <param name="manager"></param>
        /// <param name="canvas"></param>
        /// <param name="afterStoryHandler"></param>
        public UVNFStoryManager(StoryGraph graph, UVNFManager manager, UVNFCanvas canvas, Action afterStoryHandler)
        {
            _storyGraph = graph;

            _manager = manager;
            _canvas  = canvas;

            if (_storyGraph != null)
            {
                StartStory();
            }

            _afterSubgraphHandler += afterStoryHandler;
        }
 public void SetUpTests()
 {
     script = new Mystery1Script();
     graph  = script.GetStoryGraph();
 }
 public void StartSubStory(StoryGraph subGraph)
 {
     _currentStoryManager.CreateSubStory(subGraph, this, Canvas);
 }
 private void QueueStory(StoryGraph graph)
 {
     _graphQueue.Enqueue(graph);
 }
 public void SetUpTests()
 {
     script = new ExampleStoryScript();
     graph  = script.GetStoryGraph();
 }