Christopher
8 years ago
3 changed files with 97 additions and 0 deletions
@ -0,0 +1,95 @@ |
|||||||
|
# Coding Tips # {#coding_tips} |
||||||
|
[TOC] |
||||||
|
|
||||||
|
This is a collection of quick tips for scripting %Fungus from code. |
||||||
|
|
||||||
|
# Executing Blocks # {#executing_blocks} |
||||||
|
|
||||||
|
You first need to get a reference to your flowchart object. Add a public Flowchart property to your component and set it to reference your flowchart in the inspector. |
||||||
|
``` |
||||||
|
using UnityEngine; |
||||||
|
using Fungus; |
||||||
|
|
||||||
|
class MyComponent : public MonoBehaviour |
||||||
|
{ |
||||||
|
public Flowchart flowchart; |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
To execute a named Block in the Flowchart: |
||||||
|
``` |
||||||
|
flowchart.ExecuteBlock("BlockName"); |
||||||
|
``` |
||||||
|
|
||||||
|
To start execution at a specific command index: |
||||||
|
``` |
||||||
|
flowchart.ExecuteBlock("BlockName", 3); |
||||||
|
``` |
||||||
|
|
||||||
|
To tell if a Flowchart has any executing Blocks: |
||||||
|
``` |
||||||
|
if (flowchart.HasExecutingBlocks()) |
||||||
|
{ |
||||||
|
// Do something |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
# Block Signals # {#block_signals} |
||||||
|
|
||||||
|
You can use the BlockSignals class to listen for events from the Block execution system. |
||||||
|
|
||||||
|
``` |
||||||
|
using Fungus; |
||||||
|
|
||||||
|
public MyComponent : MonoBehaviour |
||||||
|
{ |
||||||
|
void OnEnable() |
||||||
|
{ |
||||||
|
// Register as listener for Block events |
||||||
|
BlockSignals.OnBlockStart += OnBlockStart; |
||||||
|
} |
||||||
|
|
||||||
|
void OnDisable() |
||||||
|
{ |
||||||
|
// Unregister as listener for Block events |
||||||
|
BlockSignals.OnBlockStart -= OnBlockStart; |
||||||
|
} |
||||||
|
|
||||||
|
void OnBlockStart(Block block) |
||||||
|
{ |
||||||
|
Debug.Log("Block started " + block.BlockName); |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
# Writer Signals # {#writer_signals} |
||||||
|
|
||||||
|
You can use the WriterSignals class to listen for a variety of events from the text writing system. |
||||||
|
|
||||||
|
``` |
||||||
|
using Fungus; |
||||||
|
|
||||||
|
public MyComponent : MonoBehaviour |
||||||
|
{ |
||||||
|
void OnEnable() |
||||||
|
{ |
||||||
|
// Register as listener for Writer state change events |
||||||
|
WriterSignals.OnWriterState += OnWriterState; |
||||||
|
} |
||||||
|
|
||||||
|
void OnDisable() |
||||||
|
{ |
||||||
|
// Unregister as listener for Writer state change events |
||||||
|
WriterSignals.OnWriterState -= OnWriterState; |
||||||
|
} |
||||||
|
|
||||||
|
void OnWriterState(Writer writer, WriterState writerState) |
||||||
|
{ |
||||||
|
if (writerState == WriterState.Start) |
||||||
|
{ |
||||||
|
Debug.Log("Writing started"); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
Loading…
Reference in new issue