Fungus is a tool which makes it easy to add colourful characters and craft gripping storylines in your game, even if you have never used <ahref="http://unity3d.com"target="_blank">Unity</a> before. Our intuitive interface lets everyone create beautiful story games easily - <b>for free and with no coding</b>!
%Fungus is a tool which makes it easy to add colourful characters and craft gripping storylines in your game, even if you have never used <ahref="http://unity3d.com"target="_blank">Unity</a> before. Our intuitive interface lets everyone create beautiful story games easily - <b>for free and with no coding</b>!
![img fungus_town]
## Who's it for?
Fungus is popular with writers, illustrators, animators and game designers, especially visual novel & interactive fiction authors. Many people using Fungus are creating games in Unity for the very first time. It is a popular choice for game jams and game design courses.
%Fungus is popular with writers, illustrators, animators and game designers, especially visual novel & interactive fiction authors. Many people using %Fungus are creating games in Unity for the very first time. It is a popular choice for game jams and game design courses.
## Free & Open Source
We believe that interactive storytelling should be accessible to everyone, so Fungus is <b>100% free & open source</b>. It works great with both the free and pro versions of Unity 3D. Fungus is inspired by other great open source storytelling tools like [Twine], [Ren'Py] and [Scratch].
We believe that interactive storytelling should be accessible to everyone, so %Fungus is <b>100% free & open source</b>. It works great with both the free and pro versions of Unity 3D. %Fungus is inspired by other great open source storytelling tools like [Twine], [Ren'Py] and [Scratch].
## Community
The Fungus community is very welcoming and helpful to newcomers. Many people using Fungus have never used Unity or even made a game before, so feel free to ask questions on our [community forum]. Helping other people with their questions is a fantastic and very welcome way to contribute back to the community.
The %Fungus community is very welcoming and helpful to newcomers. Many people using %Fungus have never used Unity or even made a game before, so feel free to ask questions on our [community forum]. Helping other people with their questions is a fantastic and very welcome way to contribute back to the community.
![img community]
@ -27,7 +27,7 @@ The Fungus community is very welcoming and helpful to newcomers. Many people usi
</div>
@endhtmlonly
Fungus allows you to easily add storytelling features to your Unity games with no coding, via an intuitive visual scripting system.
%Fungus allows you to easily add storytelling features to your Unity games with no coding, via an intuitive visual scripting system.
- Suitable for making visual novels, RPGs, hidden object, puzzle and interactive fiction games.
- Flowchart-based character dialogue
@ -40,28 +40,28 @@ Fungus allows you to easily add storytelling features to your Unity games with n
## Contribute
We welcome all sorts of contributions to Fungus. You can report bugs, suggest new features, contribute source code, write an article, help answer questions on the forums or even just tell your friends about the project!
We welcome all sorts of contributions to %Fungus. You can report bugs, suggest new features, contribute source code, write an article, help answer questions on the forums or even just tell your friends about the project!
- Issue Tracker: [GitHub issue tracker]
- Source Code: [GitHub code repository]
## Credits
[Chris Gregan] is the main author and maintainer of Fungus. He's co-founder of [Snozbot], along with [John O' Kane] and [Ronan Pearce].
[Chris Gregan] is the main author and maintainer of %Fungus. He's co-founder of [Snozbot], along with [John O' Kane] and [Ronan Pearce].
[Dr. Matt Smith] has kindly contributed the written documentation for the Fungus project. If you're new to Unity development then a great source of information, ideas and sample projects is his [Unity 5.x Cookbook], by Matt and [Chico Queiroz].
[Dr. Matt Smith] has kindly contributed the written documentation for the %Fungus project. If you're new to Unity development then a great source of information, ideas and sample projects is his [Unity 5.x Cookbook], by Matt and [Chico Queiroz].
![img cookbook]
[Paul Mc Grath] is Animator / Designer / Film-maker at Whackala. He contributed the [tutorial videos] for this site as well as creating the [Fungus Training Course]. Special thanks also to [Vicky Lee] and [Coding Grace] who have helped us to organise loads of Fungus workshops,
[Paul Mc Grath] is Animator / Designer / Film-maker at Whackala. He contributed the [tutorial videos] for this site as well as creating the [%Fungus Training Course]. Special thanks also to [Vicky Lee] and [Coding Grace] who have helped us to organise loads of %Fungus workshops,
Fungus wouldn't be possible without all the awesome people in our community who have contributed to the project and supported us in myriad ways. Thank you all!
%Fungus wouldn't be possible without all the awesome people in our community who have contributed to the project and supported us in myriad ways. Thank you all!
## License
The Fungus software is licensed under the [Open Source MIT License].
The %Fungus software is licensed under the [Open Source MIT License].
The Fungus documentation is licensed under the [Creative Commons Attribution-NonCommercial License].
The %Fungus documentation is licensed under the [Creative Commons Attribution-NonCommercial License].
[Snozbot]: http://snozbot.com
[Chris Gregan]: http://twitter.com/gofungus
@ -71,7 +71,7 @@ The Fungus documentation is licensed under the [Creative Commons Attribution-Non
[Paul Mc Grath]: http://whackala.com
[Coding Grace]: https://www.codinggrace.com
[tutorial videos]: tutorial_videos/index.md
[Fungus Training Course]: training_course/index.md
[%Fungus Training Course]: training_course/index.md
## The 3 types of Block (Event Block, Branching Block, Standard Block)
Fungus Flowcharts visually differentiate three differents kinds of Block behavior:
%Fungus Flowcharts visually differentiate three differents kinds of Block behavior:
1. Event Block - blue rounded rectangle (Block execution triggered by an event)
2. Branching Block - orange polygon (passes control to 2 or more other Blocks, and not and Event Block)
3. Standard Block - yellow rectangle (no event, passes control to 0 or 1 other blocks)
### 1: Event Block - blue rounded rectangle
One way Fungus decides when to start executing the Commands inside a Block is if a Block has defined an Execute On Event. If a Block has any of the possible Execute On Events chosen (such as Game Started, Message Received, Sprite Drag Completed, Key Pressed etc.) then this Block will be displayed as a **blue rounded rectangle**:
One way %Fungus decides when to start executing the Commands inside a Block is if a Block has defined an Execute On Event. If a Block has any of the possible Execute On Events chosen (such as Game Started, Message Received, Sprite Drag Completed, Key Pressed etc.) then this Block will be displayed as a **blue rounded rectangle**:
![event block]
@ -120,11 +120,11 @@ A whole scene's logic can rarely fit all into a single Block, therefore we need
## Executing Commands in another Block with the Call Command
The Call Command tells Fungus to go and start executing the Commands in named Block. There are several ways to do this, we can tell Fungus to Stop execution completely in the current Block, and just pass control to named Block. We can also tell Fungus to go and completed all Commands in the named Block, and when they are finished, to then continue executing any remaining commands in the current Block. Finally, and perhaps the most complicated/sophisticated technique, we can tell Fungus to both started executing Commands in a named Block WHILE simultaneously continuing to execute remaining Commands in the current Block.
The Call Command tells %Fungus to go and start executing the Commands in named Block. There are several ways to do this, we can tell %Fungus to Stop execution completely in the current Block, and just pass control to named Block. We can also tell %Fungus to go and completed all Commands in the named Block, and when they are finished, to then continue executing any remaining commands in the current Block. Finally, and perhaps the most complicated/sophisticated technique, we can tell %Fungus to both started executing Commands in a named Block WHILE simultaneously continuing to execute remaining Commands in the current Block.
To pass control to another Block, and stop executing Commands in the current Block, do the following:
1. (setup) If you have not already done so: Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) If you have not already done so: Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename this Block "Start".
3. Add to Block "Start" a Say Command with the Story Text "I am in Start".
![block start]
@ -137,7 +137,7 @@ To pass control to another Block, and stop executing Commands in the current Blo
![call block menu]
8. Note: We will keep the default of **Target Flowchart** (None), which means the current Flowchart.
9. Note: We will keep the default of **Call Mode** Stop, which means that execution in the current Block (Start) will stop once execution of the called Block has begun.
10. You should now see an arrow in the Flowchart window, connecting Block "Start" with Block "Block2". This visually tells us (the game developer) that a Call or Menu Command is present inside Block "Start" that tells Fungus to execute commands in Block "Block2":
10. You should now see an arrow in the Flowchart window, connecting Block "Start" with Block "Block2". This visually tells us (the game developer) that a Call or Menu Command is present inside Block "Start" that tells %Fungus to execute commands in Block "Block2":
![arrow between blocks]
@ -147,7 +147,7 @@ To pass control to another Block, and stop executing Commands in the current Blo
Let's use a Say command above to ask a tricky mathematical question, and demonstrate the Menu command by offering the user a choice been "correct' and "incorrect" answers. Menu commands transfer control to another block - so we'll need to add 2 new blocks to correspond to the 2 answers.
Do the following:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Block in the Flowchart to "Question".
3. Create a Say command, with **Story Text** to ask the question: "Is 2 + 2?".
4. Uncheck the "Wait For Click" checkbox (this is so we see the menu options immediately after the Say command has displayed the question):
We want an open and respectful community at Fungus. So we would ask you when communicating (for example, posting on our Forums, Comments or github repository ) to be friendly and helpful. We find, for most people, this is not a problem. Our list of guidelines below is not exhaustive but should give a strong indication of what we consider acceptable community behaviour.
We want an open and respectful community at %Fungus. So we would ask you when communicating (for example, posting on our Forums, Comments or github repository ) to be friendly and helpful. We find, for most people, this is not a problem. Our list of guidelines below is not exhaustive but should give a strong indication of what we consider acceptable community behaviour.
## Be welcoming
We welcome and support people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
@ -26,7 +26,7 @@ The following behaviours are not acceptable:
- Advocating for, or encouraging, any of the above behaviour.
## Assume Good Intentions
Give people the benefit of the doubt. If you believe they have acted against the code of conduct, please refer them to this document. Remember, although English is the primary language of Fungus development, that not all members have English as their primary language.
Give people the benefit of the doubt. If you believe they have acted against the code of conduct, please refer them to this document. Remember, although English is the primary language of %Fungus development, that not all members have English as their primary language.
Thanks to [http://www.apache.org/foundation/policies/conduct.html](http://www.apache.org/foundation/policies/conduct.html) and [https://www.djangoproject.com/conduct](https://www.djangoproject.com/conduct) for inspiration and content.
Fungus is a free open source tool for creating storytelling games, with a strong focus on accessibility for novice game developers. Users all over the world are now using it to create a wonderfully diverse range of storytelling games.
## What is %Fungus ?
%Fungus is a free open source tool for creating storytelling games, with a strong focus on accessibility for novice game developers. Users all over the world are now using it to create a wonderfully diverse range of storytelling games.
## Who makes Fungus ?
Fungus is developed by [Snozbot](http://snozbot.com), a small independent games company. Chris Gregan is the main developer of Fungus.
## Who makes %Fungus ?
%Fungus is developed by [Snozbot](http://snozbot.com), a small independent games company. Chris Gregan is the main developer of %Fungus.
## Where do I get Fungus ?
Fungus is available on the [Unity Asset Store](http://u3d.as/f0T) and in the download section of this website.
## Where do I get %Fungus ?
%Fungus is available on the [Unity Asset Store](http://u3d.as/f0T) and in the download section of this website.
## Is Fungus really free to use?
Yes. Fungus has an Open Source M.I.T. license. You can use Fungus with any version of the Unity game engine, including the freely available personal edition.
## Is %Fungus really free to use?
Yes. %Fungus has an Open Source M.I.T. license. You can use %Fungus with any version of the Unity game engine, including the freely available personal edition.
## Can I sell the apps I make with Fungus ?
## Can I sell the apps I make with %Fungus ?
Yes. We do not charge a license fee.
## What platforms does Fungus support ?
Fungus runs on any platform supported by the Unity game engine. See here for a list of supported platforms.
## What platforms does %Fungus support ?
%Fungus runs on any platform supported by the Unity game engine. See here for a list of supported platforms.
## Do I need to be a programmer to use Fungus ?
No. Fungus can be used to make a variety of story-driven games with no coding required.
## Do I need to be a programmer to use %Fungus ?
No. %Fungus can be used to make a variety of story-driven games with no coding required.
## Is Fungus useful for programmers ?
Yes. Fungus provides an easy way to add visual novel features to any Unity game. It is also possible to extend Fungus to customise the workflow for your team. Checkout the documentation and tutorials for more information.
## Is %Fungus useful for programmers ?
Yes. %Fungus provides an easy way to add visual novel features to any Unity game. It is also possible to extend %Fungus to customise the workflow for your team. Checkout the documentation and tutorials for more information.
## Where can I learn more about Fungus ?
## Where can I learn more about %Fungus ?
We provide extensive tutorials and documentation on our website here. There is also a comprehensive online training course suitable for beginners at Udemy.
## I've made something cool with Fungus. Wanna see?
## I've made something cool with %Fungus. Wanna see?
Most definitely! Please tweet @gofungus and/or post an item in the announcements section of our forum.
## How can I upload my Fungus game for others to see?
## How can I upload my %Fungus game for others to see?
After creating a build, you can use a hosting service such as [itch.io](http://itch.io), [gamejolt.com](http://gamejolt.com) or [newgrounds.com](http://newgrounds.com)
## How can I suggest new features for Fungus ?
## How can I suggest new features for %Fungus ?
Please use the forum to request new features. You can also checkout our github issues list to see what we have planned.
## How do I report a bug in Fungus?
## How do I report a bug in %Fungus?
Please use the forum to report bugs.
## How long will I have to wait for a bug-fix ?
If a bug is critical and we can't offer a sensible workaround, we will try to fix it as soon as possible. Otherwise, we will aim to fix the issue in the next release.
## Can I get my hands on beta versions of Fungus ?
## Can I get my hands on beta versions of %Fungus ?
The very latest version is always available at our [github repository](https://github.com/snozbot/fungus)
## How can I contribute to Fungus?
There are lots of ways to help the Fungus community to grow
## How can I contribute to %Fungus?
There are lots of ways to help the %Fungus community to grow
1. Answer questions and post tips on the forum
2. Contribute code either via a Github pull request or post code snippets in the forums.
3. Improve the documentation by editing the [fungus-site repo](https://github.com/snozbot/fungus-site) and send in a pull request.
4. Let us know on the forum if you've made a game with Fungus so we can add it to the site.
5. If you write an article, blog post, podcast, etc. about Fungus send it in and we'll add it to the [community articles](../articles/index.md) section.
4. Let us know on the forum if you've made a game with %Fungus so we can add it to the site.
5. If you write an article, blog post, podcast, etc. about %Fungus send it in and we'll add it to the [community articles](../articles/index.md) section.
## Are you planning to integrate Fungus into other game engines ?
## Are you planning to integrate %Fungus into other game engines ?
Not currently. We're sticking with Unity for the foreseeable future.
A Fungus **Flowchart** contains the Blocks in which all your Fungus Commands are located. A Unity scene can contain multiple Flowcharts, and commands can be executing simultaneously in different Flowcharts. However, for many games it is sufficient for one Block in one Flowcart to be executing at any one time.
A %Fungus **Flowchart** contains the Blocks in which all your %Fungus Commands are located. A Unity scene can contain multiple Flowcharts, and commands can be executing simultaneously in different Flowcharts. However, for many games it is sufficient for one Block in one Flowcart to be executing at any one time.
@ -45,7 +45,7 @@ To create a Fungus Flowchart do the following:
4. If you have not already displayed the Flowchart Window, you can do so by clicking the Flowchart Window button in the Inspector.
5. As you can see, when a new Flowchat is created a single command Block named "New Block" is automatically created, with the Event handler "Game Started" (so it will start executing Fungus commands as soon as the scene goes into **Play Mode**).
5. As you can see, when a new Flowchat is created a single command Block named "New Block" is automatically created, with the Event handler "Game Started" (so it will start executing %Fungus commands as soon as the scene goes into **Play Mode**).
Follow these steps to get up and running with Fungus quickly, then learn more about what Fungus can do and how to do it from the other documentation pages and videos.
Follow these steps to get up and running with %Fungus quickly, then learn more about what %Fungus can do and how to do it from the other documentation pages and videos.
Two folders are created when you install Fungus, the Fungus features themslves (in folder 'Fungus') and a set of examples (in folder 'FungusExamples').
Two folders are created when you install %Fungus, the %Fungus features themslves (in folder '%Fungus') and a set of examples (in folder 'FungusExamples').
Examples include Drag and Drop, Sherlock and Fungus Town:
Examples include Drag and Drop, Sherlock and %Fungus Town:
![Fungus Examples]
![%Fungus Examples]
You can use the left-hand side of the Unity Project window to explore each example folder:
![Fungus Examples Project window]
![%Fungus Examples Project window]
Alternatively, you can 'filter' the Project view to show all scenes (and no other files) by clicking the scene filter icon to the right of the search bar:
![Fungus Examples Project window filter scenes]
![%Fungus Examples Project window filter scenes]
You can cancel the filter by clicking the 'x' in the search bar:
To **load** an example scene, double click the desired example's scene object in the Project window, and the scene should load. For example, this screenshot shows the scene and Flowchart windows when the DragAndDrop example scene has been loaded:
![Fungus Examples Drag Drop]
![%Fungus Examples Drag Drop]
To **run** the currently loaded scene (i.e. to enter **Play-mode**), click the Unity 'play' triangle button at the center top of the Unity application window, and then do whatever makes sense in that scene (e..g click/type text/drag-and-drop objects etc.!):
@ -97,32 +97,32 @@ To create a new scene in Unity do the following:
The core Fungus operations are available from the Unity ```Tools``` menu.
## Menu: Tools | %Fungus
The core %Fungus operations are available from the Unity ```Tools``` menu.
Choose menu: ```Tools | Fungus``` to see the options available:
Choose menu: ```Tools | %Fungus``` to see the options available:
![Fungus Tools menu]
![%Fungus Tools menu]
As can be seen, there are 2 submenus, ```Create``` and ```Utilities```, plus the ```Flowchart Window``` action (which reveals the window if already open, or opens a new window if the Flowchart window was not previously opened).
<!--*********** -->
### Menu: Tools | Fungus | Create
The Fungus Tools ```Create``` submenu offers the following actions:
### Menu: Tools | %Fungus | Create
The %Fungus Tools ```Create``` submenu offers the following actions:
![Fungus Tools Create menu]
![%Fungus Tools Create menu]
<!--*********** -->
### Menu: Tools | Fungus | Utilities
The Fungus Tools ```Utilties``` submenu offers the following actions:
### Menu: Tools | %Fungus | Utilities
The %Fungus Tools ```Utilties``` submenu offers the following actions:
@ -136,13 +136,13 @@ To create a Fungus Flowchart do the following:
4. If you have not already displayed the Flowchart Window, you can do so by clicking the Flowchart Window button in the Inspector.
5. As you can see, when a new Flowchat is created a single command Block named "New Block" is automatically created, with the Event handler "Game Started" (so it will start executing Fungus commands as soon as the scene goes into **Play Mode**).
5. As you can see, when a new Flowchat is created a single command Block named "New Block" is automatically created, with the Event handler "Game Started" (so it will start executing %Fungus commands as soon as the scene goes into **Play Mode**).
@ -40,7 +40,7 @@ A special component of Unity objects that can refer to a particular audio clip f
<!--******************************* -->
**Block**:
A Fungus Block is a sequence of Commands that have been created inside a Fungus Flowchart.
A %Fungus Block is a sequence of Commands that have been created inside a %Fungus Flowchart.
<!--******************************* -->
**Block connection**:
@ -99,7 +99,7 @@ A computer programming language developed by Microsoft, similar to Java. C&sharp
<!--******************************* -->
**Character**:
A Fungus gameObject allowing the personalisation of narrative, allowing characters to have names, special colours for their text on screen, and a range of different named images so character images can be displayed corresponding to the content of their dialog.
A %Fungus gameObject allowing the personalisation of narrative, allowing characters to have names, special colours for their text on screen, and a range of different named images so character images can be displayed corresponding to the content of their dialog.
<!--******************************* -->
**Clickable Sprite**:
@ -107,7 +107,7 @@ A 2D image on screen that has been code to do something when clicked with the mo
<!--******************************* -->
**Coding / Scripting**:
Writing lines of computer code to control execution of a computer program, such as a Unity game (as opposed to using a visual language such as Fungus Flowcharts).
Writing lines of computer code to control execution of a computer program, such as a Unity game (as opposed to using a visual language such as %Fungus Flowcharts).
<!--******************************* -->
**Command**:
@ -115,16 +115,16 @@ An instruction for the Unity game engine to do something, examples are to play o
<!--******************************* -->
**Command category**:
THe Fungus commands are grouped according to what kind of action they will lead to.
THe %Fungus commands are grouped according to what kind of action they will lead to.
<!--******************************* -->
**Command property panel**:
When a Block is selected in a Fungus Flowchart, the top-half of the Inspector window will show the properties and list of Commands for that Block. When one of the Commands is selected, that its properties are displayed in the bottom-half of the Inspector window.
When a Block is selected in a %Fungus Flowchart, the top-half of the Inspector window will show the properties and list of Commands for that Block. When one of the Commands is selected, that its properties are displayed in the bottom-half of the Inspector window.
<!--******************************* -->
**Condition**:
Conditions are tests that are either "TRUE" or "FALSE" at a particular point in time. Different Commands can be defined to be executed depending on the value of a condition test in a Fungus Block.
Conditions are tests that are either "TRUE" or "FALSE" at a particular point in time. Different Commands can be defined to be executed depending on the value of a condition test in a %Fungus Block.
<!--******************************* -->
@ -164,7 +164,7 @@ An application allowing the editing of game resources. The Unity Editor has mult
<!--******************************* -->
**Event Handler**:
A Fungus Block or a Unity coded "method" that will be executed when a particular "Event" occurs. For example when the "SPACE" key is pressed the game should respond to the user having executed a spell or fired a gun or whatever.
A %Fungus Block or a Unity coded "method" that will be executed when a particular "Event" occurs. For example when the "SPACE" key is pressed the game should respond to the user having executed a spell or fired a gun or whatever.
<!--******************************* -->
**Event block**:
@ -198,11 +198,11 @@ A variable that stores decimal numbers, such as 5.5, -0.11 etc.
<!--******************************* -->
**Flowchart**:
A Fungus Flowchart contains a set of Blocks, each containing Commands to be executed.
A %Fungus Flowchart contains a set of Blocks, each containing Commands to be executed.
<!--******************************* -->
**Flow control**:
A general term referring to how a computer decides what to do next. So it is deciding which Fungus Command or Unity code statement to execute next. Typical Flow commands include decision choices such as loops or IF-conditions etc.
A general term referring to how a computer decides what to do next. So it is deciding which %Fungus Command or Unity code statement to execute next. Typical Flow commands include decision choices such as loops or IF-conditions etc.
<!--******************************* -->
**Flowchart item id**:
@ -210,7 +210,7 @@ The unique number that is created for each Block of a Flowchart. This ID is used
<!--*************************** -->
**Flowchart Localization id**:
A special, unique name, used for associating language localization data for each Fungus game project.
A special, unique name, used for associating language localization data for each %Fungus game project.
<!--******************************* -->
**Flowchart Message**:
@ -220,7 +220,7 @@ Messages can be sent (via the ```Flow | Send Message``` Command), either to the
<!--******************************* -->
**Flowchart Window**:
A special window available in the Unity Editor for editing and working with Fungus Flowcharts and their Blocks.
A special window available in the Unity Editor for editing and working with %Fungus Flowcharts and their Blocks.
<!---------------------------->
<!------------ I ------------->
@ -247,7 +247,7 @@ An orientation of an image or computer screen, where the width is greater than t
When you first export the localization .csv (Comma-Separated-Variable) file it has 3 columns (Key, Description, Standard).
When you want to add a new language to the file you add a new column for that language. You can use whatever column name you like, though it's typical to use two letter language codes (FR, ES, DE, etc.).
The Set Language command is provided with the name of the column for the language you wish to use in Fungus.
The Set Language command is provided with the name of the column for the language you wish to use in %Fungus.
<!--******************************* -->
**Libre Office**:
@ -283,7 +283,7 @@ The UI elements (background / lines / text) that define the visual style of how
Fungus provides a default Menu Dialog, but custom variations can be defined, for different games / scenes / characters etc.
%Fungus provides a default Menu Dialog, but custom variations can be defined, for different games / scenes / characters etc.
<!---------------------------->
<!------------ O ------------->
@ -313,7 +313,7 @@ Refers to the device and type of application that the Unity editor will create.
<!--******************************* -->
**Portrait**:
The Fungus Portrait Command is used to make the game display one of the Character Portrait images on the Stage. A particular image can be selected, and it can be made to move on/off stage.
The %Fungus Portrait Command is used to make the game display one of the Character Portrait images on the Stage. A particular image can be selected, and it can be made to move on/off stage.
<!--******************************* -->
**Portrait orientation**:
@ -355,7 +355,7 @@ The UI elements (background / lines / text) that define the visual style of how
![story text output](./images/010_say_command/4_scene_running.png "story text output")
Fungus provides a default Say Dialog, but custom variations can be defined, for different games / scenes / characters etc.
%Fungus provides a default Say Dialog, but custom variations can be defined, for different games / scenes / characters etc.
<!--******************************* -->
**Scenes**:
@ -379,21 +379,21 @@ Spine is a third-party 2D animation system from [EsotericSoftware.com].
<!--******************************* -->
**Spine Animation**:
Animation clip based on the Spine 2D system, that can be controlled from Fungus Commands (once the Unity Spine and Fungus Spine add-on packages have been installed).
Animation clip based on the Spine 2D system, that can be controlled from %Fungus Commands (once the Unity Spine and %Fungus Spine add-on packages have been installed).
<!--******************************* -->
**Sprites**:
2D Images, that may be hidden / revealed. Sprite may be moved through Fungus Commands, or Unity code. Sprites can also be defined to be "draggable" by the users computer mouse pointer or mobile device touch gestures.
2D Images, that may be hidden / revealed. Sprite may be moved through %Fungus Commands, or Unity code. Sprites can also be defined to be "draggable" by the users computer mouse pointer or mobile device touch gestures.
<!--******************************* -->
**Stage**:
A Fungus gameObject in the scene, used to define the position and start-end movements of Character Portrait images controlled by Fungus Portrait Commands.
A %Fungus gameObject in the scene, used to define the position and start-end movements of Character Portrait images controlled by %Fungus Portrait Commands.
<!--******************************* -->
**Standard block**:
A Fungus Block whose execution is **not** triggered by an event (so it is not an Event Block), and which does **not** cause the execution of 2 or more other Blocks (so is **not** a Branching Block).
A %Fungus Block whose execution is **not** triggered by an event (so it is not an Event Block), and which does **not** cause the execution of 2 or more other Blocks (so is **not** a Branching Block).
Note: Standard Blocks are displayed as yellow rectangles in the Flowchart window.
@ -404,7 +404,7 @@ Note: Standard Blocks are displayed as yellow rectangles in the Flowchart window
**Standard Text**:
When you export the localization file, there is a Standard Text field. This is populated with the text that has been entered into the Say, Menu, etc. text fields in the Unity editor. In normal usage, this field is in the localisation file for reference so localizers know what text needs to be translated. For example, if the project is drafted using English, then the text in Say, Menu Commands etc. would be in English, and in the exported localization file this text would appear in the Standard Text fields.
Note, if you use the Set Language command with an empty language string then the values in the Standard Text field will be used when Fungus runs.
Note, if you use the Set Language command with an empty language string then the values in the Standard Text field will be used when %Fungus runs.
<!--******************************* -->
@ -434,7 +434,7 @@ A variable that stores text characters, such as the player's name, or colour of
<!--******************************* -->
**Tag**:
Special characters that can be inserted into Fungus Say Commands, to control other aspects of the scene, such as the playing of a sound, or the shaking of the camera, or the sending of a message to cause other Blocks to start executing.
Special characters that can be inserted into %Fungus Say Commands, to control other aspects of the scene, such as the playing of a sound, or the shaking of the camera, or the sending of a message to cause other Blocks to start executing.
<!---------------------------->
@ -456,7 +456,7 @@ The building of visual interfaces for computer programs deployed by Unity.
**Usfxr**:
A system for generating sound effects from mathematical parameters.
Built into Fungus and based on the open source project at: [Usfxr at GitHub]
Built into %Fungus and based on the open source project at: [Usfxr at GitHub]
<!---------------------------->
<!------------ V ------------->
@ -476,7 +476,7 @@ A "default" value refers to the value given to a variable automatically, if no p
<!--******************************* -->
**Variables Panel**:
The very bottom section of the Flowchart window is where variables (such as score, playerName, carryingGreenKey etc.) can be defined for use in Fungus Commands.
The very bottom section of the Flowchart window is where variables (such as score, playerName, carryingGreenKey etc.) can be defined for use in %Fungus Commands.
<!--******************************* -->
**Variable saving**:
@ -495,7 +495,7 @@ The core tools offered in the Unity editor for changing basic properties of 2D a
<!--******************************* -->
**View**:
A Fungus gameObject that helps ensure good visual experience regardless of device aspect ration, and used for camera movements and control by Fungus Commands.
A %Fungus gameObject that helps ensure good visual experience regardless of device aspect ration, and used for camera movements and control by %Fungus Commands.
This page explains how to download and install Unity and Fungus.
This page explains how to download and install Unity and %Fungus.
# Video Tutorial
@ -10,49 +10,49 @@ This page explains how to download and install Unity and Fungus.
</div>
@endhtmlonly
# How do I install Fungus?
# How do I install %Fungus?
1. Install the latest version of [Unity].
3. Launch Unity and create a new Project by selecting File > New Project.
4. Select 'Use Defaults for 2D' when creating the new project.
## To install Fungus from the Asset Store (recommended):
## To install %Fungus from the Asset Store (recommended):
1. Open the Asset Store window in Unity
2. Search for Fungus on the [Asset Store]
3. Download and import Fungus to your project using the Asset Store window.
2. Search for %Fungus on the [Asset Store]
3. Download and import %Fungus to your project using the Asset Store window.
## To install Fungus from the latest release on Github:
## To install %Fungus from the latest release on Github:
1. Download the latest Fungus .unitypackage from [Github]
2. Import Fungus into the new project by selecting Assets > Import Package > Custom Package.
1. Download the latest %Fungus .unitypackage from [Github]
2. Import %Fungus into the new project by selecting Assets > Import Package > Custom Package.
# First steps
1. Display the Flowchart editor window by selecting Window > Tools > Fungus > Flowchart Window.
1. Display the Flowchart editor window by selecting Window > Tools > %Fungus > Flowchart Window.
2. For convenience, you should dock the Flowchart window somewhere in the editor window.
3. In the project window, open The Hunter example scene (FungusExamples > TheHunter > TheHunter.unity).
4. Press play and click through the example game.
Try playing the other example scenes and watch how the gameplay is controlled by the flowchart in the Fungus Script window.
Try playing the other example scenes and watch how the gameplay is controlled by the flowchart in the %Fungus Script window.
# How do I upgrade an existing Fungus project ?
# How do I upgrade an existing %Fungus project ?
To upgrade an existing project to the latest version of Fungus.
To upgrade an existing project to the latest version of %Fungus.
1. Take a backup of your project. No really, do it!
2. We recommend updating to the latest version of [Unity].
3. Delete the Fungus and FungusExamples folders from your project.
4. Download and import the latest version of Fungus.
3. Delete the %Fungus and FungusExamples folders from your project.
4. Download and import the latest version of %Fungus.
We try to maintain backwards compatibility between releases but sometimes breaking changes are necessary. If you're having trouble upgrading your project just ask for assistance on the forum.
# Fungus System Requirements
# %Fungus System Requirements
- We recommend installing the latest version of [Unity].
- Fungus requires at least Unity 5.0 and is not compatible with Unity 4.x or earlier.
- Fungus works with both the PC & Mac versions of Unity
- Fungus works with both the free Personal and Professional editions of Unity
- %Fungus requires at least Unity 5.0 and is not compatible with Unity 4.x or earlier.
- %Fungus works with both the PC & Mac versions of Unity
- %Fungus works with both the free Personal and Professional editions of Unity
@ -6,11 +6,11 @@ Almost every game benefits from some sound! Often we categorise audio clips into
2. Sound effects
3. Speech
Fungus provides straightforward ways to include all 3 kinds of audio clip in your game, using the techniques presented here.
%Fungus provides straightforward ways to include all 3 kinds of audio clip in your game, using the techniques presented here.
<!--**************************************** -->
# Sources of free to use audio clips and music
Before you can **add** audio clips to a game you need to get some audio clips. Here are some sources of audio clips to use when learning about audio in Fungus, in case you don't have some of your own to hand.
Before you can **add** audio clips to a game you need to get some audio clips. Here are some sources of audio clips to use when learning about audio in %Fungus, in case you don't have some of your own to hand.
The following are some good places online to fine music and sound effects for games. Some are free for any use (including commerical), some are just free for personal use. As always, check the licence of media assets before using them for any commerical products ...
@ -19,9 +19,9 @@ The following are some good places online to fine music and sound effects for ga
- a great list of audio sources in peoples answers to questions at [Answers.unity3d] and [StackOverflow.com]
- mixture of free and paid music sources at [PixelProspector.com]
You'll find a range of audio clips included inside the Fungus Examples folders:
You'll find a range of audio clips included inside the %Fungus Examples folders:
![Fungus Examples audio]
![%Fungus Examples audio]
# Adding audio assets to your project
Once you have some audio clips on your computer, you need to import them into your Unity project.
@ -35,27 +35,27 @@ Alternatively you can **drag** files or entire folders into your Unity Project w
![drag audio folder into Unity]
<!--**************************************** -->
# Three ways to work with audio in Fungus games
There are 3 main ways to work with audio in Fungus games. These are the Audio commands, the Say command, and gameObjects containing Unity Audio Source components. All three are discussed below:
# Three ways to work with audio in %Fungus games
There are 3 main ways to work with audio in %Fungus games. These are the Audio commands, the Say command, and gameObjects containing Unity Audio Source components. All three are discussed below:
![audio big picture]
<!--**************************************** -->
## List of Fungus audio commands
## List of %Fungus audio commands
The range of audio **Commands** you can add to a Block are as follows:
![Fungus audio commands]
![%Fungus audio commands]
Also you can declare an audio clip that contains the speech voiceover to correspond to text displayed with a **Say** command:
Music sound clips loop, so they are restarted once they have finished playing. Often the first Command in a Block is a **Play Music** Command. Add music to a Block as follows:
1. (if you have not already done so: Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart).
1. (if you have not already done so: Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart).
2. Add a Play Music Command to the current Block by clicking the Add Command (plus-sign "+" button) in the Inspector, and then choosing menu: ```Audio | Play Music```.
3. Ensure the Play Music command is selected (green highlight) in the top of the Inspector, and then drag the desired music clip file into the "Music Clip" property in the bottom half of the Inspector:
![Add Play Music command]
@ -67,13 +67,13 @@ NOTE: If you wish to start playing the music clip from a known time-point (rathe
<!--**************************************** -->
## Play Sound command
The Fungus Play Sound Command will play a stated audio clip once. With your Flowchart Block selected, click the Add Command button in the Inspector and choose menu: ```Audio | Play Sound```. Drag in a sound effect (we chose the BearRoad sound from the Hunter example):
The %Fungus Play Sound Command will play a stated audio clip once. With your Flowchart Block selected, click the Add Command button in the Inspector and choose menu: ```Audio | Play Sound```. Drag in a sound effect (we chose the BearRoad sound from the Hunter example):
![Play Sound command]
Play the scene, you should hear your sound effect play once.
Note. The default Fungus setting is for the sound effect to start playing, and while it is playing the next Command in the Block will start executing. However, you if you check the "Wait Until Finished" checkbox, then Fungus will wait until the sound effect has finished playing, before moving on to execute the next Command in the block:
Note. The default %Fungus setting is for the sound effect to start playing, and while it is playing the next Command in the Block will start executing. However, you if you check the "Wait Until Finished" checkbox, then %Fungus will wait until the sound effect has finished playing, before moving on to execute the next Command in the block:
![wait until finished]
@ -82,7 +82,7 @@ Note. The default Fungus setting is for the sound effect to start playing, and w
The default volume for music being played is 1 (100%). However, we can change this easily with the Set Audio Volume command. Do the following:
1. (if you have not already done so: Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart).
1. (if you have not already done so: Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart).
2. Rename this Block "Play Music".
3. Add a Play Music Command to the current Block, then drag the desired music clip file into the "Music Clip" property in the bottom half of the Inspector:
![sherlock music]
@ -103,14 +103,14 @@ The default volume for music being played is 1 (100%). However, we can change th
![set audio running]
## The 3 Unity audio concepts
Unity has 3 different kinds of Audio 'object', that it is worth understanding when working with audio in Fungus (or any other) Unity project:
Unity has 3 different kinds of Audio 'object', that it is worth understanding when working with audio in %Fungus (or any other) Unity project:
1. Audio Clip
2. Audio Listener
3. Audio Source
### Unity Audio Clip
Unity uses the term Audio "Clip" to refer to the physical sound files (.mp3, .wav, .ogg etc.) that are stored in your Project folder. It is these Audio Clip files that you drag and drop into the "Music Clip" and "Sound Clip" properties in the Inspector Window, when creating Play Music and Play Sound Commands in a Fungus Block.
Unity uses the term Audio "Clip" to refer to the physical sound files (.mp3, .wav, .ogg etc.) that are stored in your Project folder. It is these Audio Clip files that you drag and drop into the "Music Clip" and "Sound Clip" properties in the Inspector Window, when creating Play Music and Play Sound Commands in a %Fungus Block.
### Unity Audio "Listener"
Basically, if you want sound to be played there must be an Audio Listener component inside one of the gameObjects in your scene. The Main Camera of a scene has one by default, so in most cases you just leave this alone and can rest assured that you have an Audio Listener.
@ -119,26 +119,26 @@ If a scene has no Audio Listener in any gameObject, then no audio will be heard
Sometimes you may add gameObjects to your scene that contain another Audio Listener component. In this case, Unity will present a warning message stating that more than 1 Audio Listener is present in the scene. If you see such a message, then its best to resolve this problem by disabling all but one Audio Listener...
If you are working with a 3D game, and/or you wish to present a sophisticated stereo sound experience for your user, then you may need to learn about 3D audio. In such games the 3D "position" of the gameObject containing the Audio Listener becomes important - but don't worry about this if you are just getting started with audio in Fungus. For 3D effects the Audio Listener is like an "electronic ear", so its location determines things like how loud a sound is played (distance from "ear") and left-right stereo balance (which "side" audio is to the "ear") etc.
If you are working with a 3D game, and/or you wish to present a sophisticated stereo sound experience for your user, then you may need to learn about 3D audio. In such games the 3D "position" of the gameObject containing the Audio Listener becomes important - but don't worry about this if you are just getting started with audio in %Fungus. For 3D effects the Audio Listener is like an "electronic ear", so its location determines things like how loud a sound is played (distance from "ear") and left-right stereo balance (which "side" audio is to the "ear") etc.
### Unity Audio Source
In Unity the link between an Audio Clip (music/sound) file that we wish to be played, and the Audio Listener in the scene is a Unity Audio Source component of a gameObject. However, in most cases Fungus creates one of these if needed, so we don't need to worry about them!
In Unity the link between an Audio Clip (music/sound) file that we wish to be played, and the Audio Listener in the scene is a Unity Audio Source component of a gameObject. However, in most cases %Fungus creates one of these if needed, so we don't need to worry about them!
However, for sophisticated control of music and sound and speech in your game there is the facility to make Fungus have detailed control of Unity Audio Sources. It is an Audio Source component that controls how and when and which part of an audio clip is playing (and whether it should loop or not), and whether it is playing or paused, and when resuming should continue from where paused or restart. The volume of a playing clip can also be controlled by properties of an Audio Source.
However, for sophisticated control of music and sound and speech in your game there is the facility to make %Fungus have detailed control of Unity Audio Sources. It is an Audio Source component that controls how and when and which part of an audio clip is playing (and whether it should loop or not), and whether it is playing or paused, and when resuming should continue from where paused or restart. The volume of a playing clip can also be controlled by properties of an Audio Source.
Learn more about audio in Unity at the [Unity Manual Audio Page].
<!--**************************************** -->
## Control Audio command
The Fungus Audio Commands cover all common music and sound effect actions, for specialist audio work you may need to access the raw (and complicated) power of Unity audio. The Fungus Command "Control Audio" lets Fungus Blocks communicate directly with Unity Audio Source components in any gameObject in the current scene, so your wizard audio team member can do what they need to do with the Unity toolkit, and you can still control playing / looping / volume etc. of the audio in those complex gameObjects.
The %Fungus Audio Commands cover all common music and sound effect actions, for specialist audio work you may need to access the raw (and complicated) power of Unity audio. The %Fungus Command "Control Audio" lets %Fungus Blocks communicate directly with Unity Audio Source components in any gameObject in the current scene, so your wizard audio team member can do what they need to do with the Unity toolkit, and you can still control playing / looping / volume etc. of the audio in those complex gameObjects.
The Control Audio Command offers five actions that can be communicated to Unity Audio Source components:
![control audio options]
We'll learn about this with a simple Unity gameObject that plays a bear sound two times, first at full volume and then reduces the volume before playing a second time, using three "Control Audio" Fungus Commands. Do the following:
We'll learn about this with a simple Unity gameObject that plays a bear sound two times, first at full volume and then reduces the volume before playing a second time, using three "Control Audio" %Fungus Commands. Do the following:
1. (setup) If you have not already done so: Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) If you have not already done so: Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename this Block "Control Audio".
3. In the Hierarchy Window create a new Empty gameObject, choose menu: ```Create | Create Empty```:
![create empty]
@ -149,7 +149,7 @@ We'll learn about this with a simple Unity gameObject that plays a bear sound tw
![audio source added]
7. With your Flowchart Block selected, click the Add Command button in the Inspector and choose menu: ```Audio | Control Audio```.
![Control Audio command]
. Drag the "GameObject - bear sound" gameObject from the Hierarchy into the Audio Source property in the Inspector, and select the Wait Until Finished checkbox (so Fungus will wait for the sound to finish playing before moving on):
. Drag the "GameObject - bear sound" gameObject from the Hierarchy into the Audio Source property in the Inspector, and select the Wait Until Finished checkbox (so %Fungus will wait for the sound to finish playing before moving on):
![drag gameobject]
8. Note that the default Control action for a Control Audio Command is "Play Once" - we'll leave this property unchanged, since we want our bear sound inside our gameObject to be played once.
9. If you run the scene now, you'll hear the bear sound play once at full volume.
@ -164,7 +164,7 @@ We'll learn about this with a simple Unity gameObject that plays a bear sound tw
<!--**************************************** -->
## Audio Tags (in Say Commands)
Since often dialog authors will know just what sound effects or music they wish to associate with their characters utterances, Fungus allows audio-related 'tags' to be embedded in the text of Say Commands. There are four audio related tags:
Since often dialog authors will know just what sound effects or music they wish to associate with their characters utterances, %Fungus allows audio-related 'tags' to be embedded in the text of Say Commands. There are four audio related tags:
{audio=AudioObjectName} Play Audio Once
{audioloop=AudioObjectName} Play Audio Loop
@ -173,7 +173,7 @@ Since often dialog authors will know just what sound effects or music they wish
Using tags like this make it important to carefully **name** the gameObjects in the Hierarchy window. To explore how to control sounds in gameObjects do the following:
1. (setup) If you have not already done so: Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) If you have not already done so: Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename this Block "Say audio tags".
3. In the Hierarchy Window create a new Empty gameObject, choose menu: ```Create | Create Empty```:
![create empty]
@ -192,10 +192,10 @@ Using tags like this make it important to carefully **name** the gameObjects in
Having got up and running, here are some next steps to get you familiar with the storytelling features in Fungus.
Having got up and running, here are some next steps to get you familiar with the storytelling features in %Fungus.
<!--**************************************** -->
## Adding Characters, for use in Say commands
@ -14,12 +14,12 @@ We can associated words spoken by the Say Command with a particular Character. C
[Jerry] Arrrrggggggg!!!!!!!
```
To implement the above in Fungus we need to create and name two Characters. Do the following:
To implement the above in %Fungus we need to create and name two Characters. Do the following:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Flowchart Block "cat and mouse".
3. Choose menu:
```Tools | Fungus | Create | Character```:
```Tools | %Fungus | Create | Character```:
![Menu create character]
4. You should now see a new gameObject "Character" in the Hierarchy window, named Character.
![new character]
@ -47,7 +47,7 @@ If you add one or more portrait images to a character, then each Say command for
To add portrait images to a character do the following:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Flowchart Block "The case of the missing violin".
3. Create a character, and in the Inspector give your character Name Text (we chose "Sherlock") and a name color.
4. Now in the Inspector click the Add Portrait button (the plus-sign "+"), to get a 'slot' into which to add a portrait image:
@ -55,7 +55,7 @@ To add portrait images to a character do the following:
5. Drag the appropriate image into your new portrait image slot (in this screenshot we used the 'condident' image from the Sherlock example project). Also set the direction that the image is facing (left / front / right):
![sherlock image]
6. Create a second character (e.g. John, using Name Color blue, and portrait image 'annoyed').
7. Now select your Block in the Fungus Flowchart, so you can add some Commands to be executed...
7. Now select your Block in the %Fungus Flowchart, so you can add some Commands to be executed...
8. Create a Say command, for your Sherlock Character, saying "Watson, have you seen my violin?" and choosing portrait 'confident' (since this is the only we added to the Character):
![sherlock Say command]
9. Add a second Say command, this time for Character John, saying "No, why don't you find it yourself using your amazing powers of deduction..." and choosing the 'annoyed' portrait for John.
@ -63,41 +63,41 @@ To add portrait images to a character do the following:
10. When you run the scene you should see a sequence of statements, clearly showing who is saying both with (colored) name text AND also the portrait image you selected for each Say command:
![sherlock output]
![john output]
As you can see in some of the Fungus Example projects, many games will have a wide range of different portrait images for each character, to allow a full range of visual expression of emotion to support the text of Say commands:
As you can see in some of the %Fungus Example projects, many games will have a wide range of different portrait images for each character, to allow a full range of visual expression of emotion to support the text of Say commands:
![sherlock image list]
<!--**************************************** -->
## Add a Stage
Portrait images can be used in two ways in Fungus.
Portrait images can be used in two ways in %Fungus.
- They can be shown as part of the **Say** commands in the Say Dialog.
- Alternatively Portraits can be displayed and moved around the screen inside Fungus **Stages**, using the Portrait Command.
- Alternatively Portraits can be displayed and moved around the screen inside %Fungus **Stages**, using the Portrait Command.
Create a simple stage that covers the whole game Window as follows:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Flowchart Block "stage demo".
3. Create a Fungus Stage gameObject in the scene by choosing menu:
```Tools | Fungus | Create | Stage```:
3. Create a %Fungus Stage gameObject in the scene by choosing menu:
```Tools | %Fungus | Create | Stage```:
![menu add stage]
4. You should now see a new gameObject "Stage" added to the scene Hierarchy.
5. If you select it you will see its properties in the Inspector. We can leave the default settings, since these are for the stage to cover the whole Game window. There are some child gameObjects inside the Stage, but you don't need to worry about these unless you are doing some advanced customisation of stages for a particular game effect.
![stage gameObject]
Now you have added a Fungus Stage to your scene, you will be able to make large Portrait images appear / move in-out of the screen using the **Portrait** Command in Fungus Flowchart Blocks...
Now you have added a %Fungus Stage to your scene, you will be able to make large Portrait images appear / move in-out of the screen using the **Portrait** Command in %Fungus Flowchart Blocks...
<!--**************************************** -->
## Displaying Portrait images on stages with the Portrait command
Once you have a Fungus Stage, and a character then you can instruct Fungus to display / move onscreen the Character Portrait images. To make character images appear as part of a scene do the following:
Once you have a %Fungus Stage, and a character then you can instruct %Fungus to display / move onscreen the Character Portrait images. To make character images appear as part of a scene do the following:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Flowchart Block "sherlock enters dramatically".
3. Create a Fungus Stage gameObject in the scene by choosing menu:
```Tools | Fungus | Create | Stage```.
4. Create a new character, name the gameObject "Character1 - Sherlock", set the Name Text to "sherlock" and the Name Color to green. Add to this character a portrait (we used the sherlock-confident image from the Fungus Example project "Sherlock"). And set the image facing to the appropriate side (in our case: left):
3. Create a %Fungus Stage gameObject in the scene by choosing menu:
```Tools | %Fungus | Create | Stage```.
4. Create a new character, name the gameObject "Character1 - Sherlock", set the Name Text to "sherlock" and the Name Color to green. Add to this character a portrait (we used the sherlock-confident image from the %Fungus Example project "Sherlock"). And set the image facing to the appropriate side (in our case: left):
![sherlock image]
5. Add a Portrait Command by clicking the Add Command button (the plus-sign "+"), then choosing menu:
```Narrative | Portrait```:
@ -121,7 +121,7 @@ Note, a common Command flow sequence is:
- then have another character enter the screen (Portrait command),
- and then that second character says something (Say command).
Here is just such a sequence for the "Case of the missing violin" two-sentence scenario explored in the recipe to learning how to create Fungus Characters (recipe: Listing portrait image(s) for use by Characters):
Here is just such a sequence for the "Case of the missing violin" two-sentence scenario explored in the recipe to learning how to create %Fungus Characters (recipe: Listing portrait image(s) for use by Characters):
![sherlock portrait output]
Here we see the Play Mode user experience of the output of running such a workflow:
@ -134,7 +134,7 @@ Here we see the Play Mode user experience of the output of running such a workfl
## Play some music
Music sound clips loop, so they are restarted once they have finished playing. Often the first Command in a Block is a **Play Music** Command. Add music to a Block as follows:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Add a Play Music Command to the current Block by clicking the Add Command (plus-sign "+" button) in the Inspector, and then choosing menu: ```Audio | Play Music```.
3. Ensure the Play Music command is selected (green highlight) in the top of the Inspector, and then drag the desired music clip file into the "Music Clip" property in the bottom half of the Inspector:
![Add Play Music command]
@ -149,7 +149,7 @@ NOTE: If you wish to start playing the music clip from a known time-point (rathe
Let's use a Say command above to ask a tricky mathematical question, and demonstrate the Menu command by offering the user a choice been "correct' and "incorrect" answers. Menu commands transfer control to another block - so we'll need to add 2 new blocks to correspond to the 2 answers.
Do the following:
1. (setup) Create a new scene, add a Fungus Flowchart to the scene, and select the Block in the Flowchart.
1. (setup) Create a new scene, add a %Fungus Flowchart to the scene, and select the Block in the Flowchart.
2. Rename the Block in the Flowchart to "Question".
3. Create a Say command, with **Story Text** to ask the question: "Is 2 + 2?".
4. Uncheck the "Wait For Click" checkbox (this is so we see the menu options immediately after the Say command has displayed the question):
@ -193,17 +193,17 @@ To add any sprite image file from your Unity Project folder into the current sce
![sprite into scene]
NOTE: You may not be able to see the sprite, because what we see depends on the current settings for the camera. What the camera shows, how it moves etc. can be controlled by Fungus Views and Commmands relating to Views.
NOTE: You may not be able to see the sprite, because what we see depends on the current settings for the camera. What the camera shows, how it moves etc. can be controlled by %Fungus Views and Commmands relating to Views.
<!--**************************************** -->
## Adding and customising a view
What the main camera of a scene displays to the user, and how it moves etc. can be controlled by Fungus Views and Fungus Commmands relating to Views. A Fungus View is a special gameObject in the Hierarchy, it appears as a green outlined inner rectangle, with two filled green rectangles on the left and the right. The ratio of the outlined inner rectangle is 4:3. The ratio of the outer rectangle (which includes the two filled green left and right rectangles) is 16:9. These two ratios cover almost every common phone, tablet and computer screen width-to-height ratio. So arranging the view so that a background Sprite image looks good for both inner- and outer- rectangles of a view, pretty much ensures your game will look good on any device. Setting the background color of the camera to something like black also means on the rare device that has an odd ratio showing content outside of the view outer rectangle, the game should still look perfectly acceptable.
What the main camera of a scene displays to the user, and how it moves etc. can be controlled by %Fungus Views and %Fungus Commmands relating to Views. A %Fungus View is a special gameObject in the Hierarchy, it appears as a green outlined inner rectangle, with two filled green rectangles on the left and the right. The ratio of the outlined inner rectangle is 4:3. The ratio of the outer rectangle (which includes the two filled green left and right rectangles) is 16:9. These two ratios cover almost every common phone, tablet and computer screen width-to-height ratio. So arranging the view so that a background Sprite image looks good for both inner- and outer- rectangles of a view, pretty much ensures your game will look good on any device. Setting the background color of the camera to something like black also means on the rare device that has an odd ratio showing content outside of the view outer rectangle, the game should still look perfectly acceptable.
To add a view to the current scene do the following:
1. (setup) Create / Edit a scene that has a Sprite background image gameObject
4. Use the two white squares to resize the view (it maintains its proportions). Use the center square outline, or vertical and horizontal arrows to move the View around the Scene window.
@ -214,15 +214,15 @@ To add a view to the current scene do the following:
![resize view]
7. Note: You can also rotate the view with the Unity Rotate tool
NOTE: Utnil you add a "Fade To View" Fungus command, you still may not see the Sprite in the Game window when the scene plays, since the Main Camera has not been oriented to resize and align with the view.
NOTE: Utnil you add a "Fade To View" %Fungus command, you still may not see the Sprite in the Game window when the scene plays, since the Main Camera has not been oriented to resize and align with the view.
<!--**************************************** -->
## Add a Fade To View command
Once you have a Scene that contains some background Sprites and Fungus Views, you are ready to use the Fungus camera related Commands to control what the user sees. The simplest camera control is to make the Game window fade from a solid colour to the Main Camera being sized, positioned (and if necessary rotated) to show a specified Fungus View. Do the following:
Once you have a Scene that contains some background Sprites and %Fungus Views, you are ready to use the %Fungus camera related Commands to control what the user sees. The simplest camera control is to make the Game window fade from a solid colour to the Main Camera being sized, positioned (and if necessary rotated) to show a specified %Fungus View. Do the following:
1. (setup) Create / being editing a Scene containing a background Sprite image, and a Fungus View that has been positioned to show all / some of the Sprite.
2. In the Fungus Flowchart rename the Block "Camera Control".
1. (setup) Create / being editing a Scene containing a background Sprite image, and a %Fungus View that has been positioned to show all / some of the Sprite.
2. In the %Fungus Flowchart rename the Block "Camera Control".
3. Add a new "Fade to View" Command to the Block. First click the Plus button in the bottom half of the Inspector window, to add a new Command, then choose menu: ```Camera | Fade To View```:
![menu Fade to View]
4. Now Drag "View1" from the Hierarchy window into the "Target View" property of the Fade to View Command in the Inspector:
We've teamed up with Paul Mc Grath to create an extensive [training course] which teaches how to make storytelling games using Fungus and Unity. Sales of this course help us to continue developing Fungus, so it's a nice way to learn Fungus and to support the work we're doing on the project.
We've teamed up with Paul Mc Grath to create an extensive [training course] which teaches how to make storytelling games using %Fungus and Unity. Sales of this course help us to continue developing %Fungus, so it's a nice way to learn %Fungus and to support the work we're doing on the project.
This course is aimed at anyone who wants to make interactive story based games, but, who doesn't know how to code.
Fungus is a free Unity 3D plugin that allows non coders (like Paul) access to some of Unity's core features. If you have never used game development software, or if you have struggled with code trying to make games, Fungus and this course are exactly what you need.
%Fungus is a free Unity 3D plugin that allows non coders (like Paul) access to some of Unity's core features. If you have never used game development software, or if you have struggled with code trying to make games, %Fungus and this course are exactly what you need.
## What are the requirements?
- A Mac or PC that is capable of running Unity 3D.
- The latest version of Unity 3D (we will talk you through download and install on the course).
- The latest Version of Fungus (we will talk you through download and install on the course).
- The latest Version of %Fungus (we will talk you through download and install on the course).
## What am I going to get from this course?
- Over 43 lectures and 8 hours of content!
- You will have a full working knowledge of Fungus and how it integrates with Unity.
- You will have a full working knowledge of %Fungus and how it integrates with Unity.
- You will be able to create narrative story games, point and click adventures and hidden object games.
- You will be able to publish your games to Unity’s WebGL platform and have them on your own website, publish them to Android and iOS versions (if you have a Apple developer Licence) and sell them through Google play or the iOS Store.
- Most importantly you will be able to do all of this **without writing a line of code.**
These free tutorial videos cover most of the functionality available in Fungus. Many thanks to [Paul Mc Grath](http://whackala.com) for contributing the videos, and [Eric Chen](https://twitter.com/Eric_hjk) for Chinese subtitles.
These free tutorial videos cover most of the functionality available in %Fungus. Many thanks to [Paul Mc Grath](http://whackala.com) for contributing the videos, and [Eric Chen](https://twitter.com/Eric_hjk) for Chinese subtitles.
@htmlonly
<divalign="center"style="float:right;">
@ -8,9 +8,9 @@ These free tutorial videos cover most of the functionality available in Fungus.
</div>
@endhtmlonly
* [Fungus Overview]
* [Installing Fungus in your project]
* [Basics of using Fungus]
* [%Fungus Overview]
* [Installing %Fungus in your project]
* [Basics of using %Fungus]
* [Using Event Handlers]
* [Controlling the camera]
* [2D graphics with Sprites]
@ -27,13 +27,13 @@ These free tutorial videos cover most of the functionality available in Fungus.