PlayMaker Ecosystem version 0.5.2
PlayMaker Ecosystem is a centralized resource search system:
- Works inside Unity
- Download and install files automatically
- Download packages and launch package imported automatically
Content is PlayMaker oriented, so you can search for PlayMaker custom actions, custom samples, templates and add-ons support.
Read the change log to see what's new, fixed and improved.
- The project must have PlayMaker installed.
- You need to be online
- your project must be clean of errors. It's not a show stopper but always a good idea to not work on a project that has errors
If you had previously installed this Ecosystem browser in your project prior version 0.4.0, make sure you delete the "net.fabrejean" folder or the "jf_plugins" folder. This new package is not compatible with versions less than 0.4.0
- Open the browser via the menu "PlayMaker/Addons/Ecosystem"
- Read carefully the disclaimer, agree or get in touch with us to learn more about what it does if you are unsure
- Click on "search" button, let the browser return the results. If the search field if empty it lists everything. It's always a good idea to narrow down if you are looking for something specific
- move over the list
- on the custom action you want to have in your project, click on the "get" button for that custom action
- Wait for the download procedure to finish. The action will be automatically added to your project
- Wait for Unity to compile the new action
- Open the PlayMaker Actions Browser, and the downloaded action will be there ready to be used within your fsm states
The actions are all available publicly, outside this ecosystem browser. They are hosted online on github repositories:
- https://github.com/jeanfabre/PlayMakerBetaActions_U4 (only available for PlayMaker beta testers)
More repositories will be created or already exists, waiting for features to become available or released, they will also soon target specific assets found on the asset store and various sdks or tools ( like arrayMaker, ParseMaker, XmlMaker, etc etc)
Make use of the PlayMaker forum to ask for help
This section explains how the ecosystem works under the hood. It's very important for future contributions coming from various authors.
ALL content must be stored in a public Github Repository. It's free, and Github as a special feature allowing searches within public repositories, The ecosystem is using this Github search system to return the results.
content must be separated by unity major versions, so ALL content that will work on Unity 4.7.x should be in a specific repository, while all content that only works on Unity 4-x will be hosted on another dedicated github rep. The ecosystem will work this out under the hood to retrieve and propose only the relevant content ( typically, if you are running on Unity 4.x all Unity 5.x actions and content will be ignored).
To register an action for the ecosystem, you must include in your Action's script "__ECO__" and "__ACTION__", the "__ECO__" flag is a way to let the ecosystem know that this file is supposed to be part of the search. "__ACTION__" is a flag telling the ecosystem that indeed this script is a PlayMaker action. This way you can have lots of scripts in your github rep without polluting the ecosystem search results with junk.
Dependencies is a very important aspect of more complex actions. Let's say your custom action is using another class defined in another script. Since the ecosystem downloads directly the file, this dependency would be missing. To reference dependencies, a Json formatted object can be inserted in the custom action script comment as follow ( taken from the AddForce2d custom action):
"Assets/PlayMaker Custom Actions/Physics 2d/Internal/RigidBody2dActionBase.cs"
Watch out the spelling for "dependencies" I should I have used "dependencies", it's not wrong, it's just not as common.
Templates and packages (like samples) can not have these content embedded ( as they are not plain text), and so simply create a text file featuring the necessary tags and meta information. Example:
The sample "Movementconstraint" has all its content in the assets folder as usual, within "PlayMaker Custom Samples", BUT the actual package to download is in [Project root]/PlayMaker/Ecosystem/Custom Samples/Physics alongside a text file of the same name as the package with the extension ".sample.txt", feature the following content:
and so the ecosystem will find this text file, because it has the flags __ECO__ and __SAMPLE__ and when downloaded will know it has to download a UnityPackage. It's different from "script dependancies" because unitypackages have to be ran to be extracted, as opposed to a single file that simply needs to be put in the assets with a call to refresh assets, with no interaction required from the user.
For templates, the same applies ( it must be packaged like sample), only that the flag for template is __TEMPLATE__, not __SAMPLE__
Structuring and Conventions
- It's strongly advised that content are stored in a folder "PlayMaker Custom XXXX", so that the projects Assets remains sane. It's much easier to publish and work with when you know that all custom actions, samples or templates are in one place.
- Repositories doesn't need to follow any name conventions but it's strongly advised for clarity ( even if you are the only one to use it). append _U4 and _U5 to clearly mark what Unity version these rep are targeting.
- It's important to follow the naming convention of templates and samples text files, because this is how the ecosystems tracks what's installed on this project ( turning the item green).
Requesting new custom actions
Make use of the playmaker forum with its specific Action request section
A dedicated Trello board is maintained listing work in progress, wish lists and to do's. You can contribute and express your self there if you have ideas and comments on the future of this Ecosystem.
- More skins, as well as no skin option
- actions feedback, rating, comments, flagspublishing tools for authors to push their custom actions to this ecosystem
- rss feed reader
- integration of drag and drop and use of actions directly form this browser, without the need for the PlayMaker action browser itself
- options to refine the listing with tag filtering ( category, Unity version, sdk or add-ons requirements, etc)
Packaging procedure is proudly automated using uTomate, it's very much PlayMaker for project management! Simply Amazing!