playMaker

Author Topic: ...just another big Custom Action collection  (Read 1653 times)

Deek

  • Junior Playmaker
  • **
  • Posts: 89
    • View Profile
...just another big Custom Action collection
« on: July 14, 2017, 02:59:34 PM »
________________________________________

The bulk of my actions is now on the Ecosystem, making this topic
the hub for all related remarks, suggestions and problems. ________________________________________



Since I work on a somewhat larger project for ~3 years I encountered all kinds of challenges to overcome and often times the default- and ecosystem-actions, even though large in numbers, couldn't suffice for all those hurdles.

That's why I had to help myself out and create or modify existing actions which I'd like to share with this community, because without PlayMaker and people contributing additional functionalities I wouldn't have even come close to an almost complete game.

Most of them can be found in the Ecosystem (Unity 5 and up), but for the ones that aren't feasible for that of if you use an earlier version you'd have to skim through my GitHub Repository and install them manually: https://github.com/justDeek/Useful-Unity-Utilities

I will still add more actions when I see the need for them. If you have any questions or want an action that works in a similar fashion to the prevalent ones, ask right ahead.
If you found any errors or room for improvement, you can also point those out. Any feedback is heartily welcome.


Summary of all currently included actions (their purpose can be derived from their name or action-description):

Ecosystem
Action Name
Usefulness
Animator:
Get Animator Runtime Controller★★
Set Animator Runtime Controller★★
Applications:
Is On Platform Event★★★
Array List:
Array List Get Length★★★
Audio:
Int Switch AudioClip★★★★
Get AudioProgress★★★★★
Get AudioClip Length★★★
Get AudioClip Name★★ (Editor only)
Camera:
Collider Is Visible★★★★
Collider2D Is Visible★★★★
Color:
Compare Colors★★★★
Device:
Get Device Linear Acceleration(not fully tested yet)
Get Device Roll Custom★★★
Swipe Gesture Event Advanced★★★★
Enum:
Enum Get Random★★
Get Enum As Array★★★★
Random Weighted Enum★★★
GameObject & UnityObject:
Activate Components★★★★
Activate Game Objects★★★★★
Destroy Children★★★★
Enable Children★★★★★
GameObject Compare Multi★★★★★
Get Child Count Advanced★★★★
Get GameObject Sibling★★★★★
Get Multilevel GameObject★★★★★
Get Object Name★★★
Logic:
Float Compare Range★★★★
Int Compare Range★★★★
Int Switch Advanced★★★
Math:
Float Flip★★★★
Int Flip★★★★
Int Round To Nearest★★★★
Random Float On Slope★★★
Random Point On Slope★★
Physics & Transform:
Enable Collider★★★★
Enable Collider Multi★★★★
Follow Mouse 2D★★★★★
Get Position Add Offset★★★★
Get Scale Add Offset★★★★
Set Positions★★★★
Random:
Random Float Around Range★★★★★
Random Int Around Range★★★★★
Random Wait Custom★★
Random Weighted Vector3★★
Select Random AudioClip★★★★
Select Random Object★★★★★
StateMachine:
Send Event Random Delay★★★★
Send Events★★★★
Send Event Set Value★★★★★
Send Event Set Multi★★★★
String:
Get String Numbers★★★★
String Contains Switch★★★★★
String Remove Chars★★★
String Replace Each Char★★★
String Switch Custom★★★★★
System & Time:
Countup Timer★★★★
Find Asset By Name(Editor only)
Get File Extension★★★
Get TimeScale★★★★
uGUI:
Debug Variable On Screen★★★★★
Draw Fullscreen Color Advanced★★
Vector:
Vector2 Operator Advanced★★★★
Vector3 Operator Advanced★★★★
______________
Third Party
¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ANA:
ANA Non Redundant File
GDE:
GDE Add Float★★★
GDE Add Int★★★
GDE Add String★★★
GDE Bool Test★★★★
GDE Create Item★★★★★
GDE Find Item By Value★★★★
GDE Get Random Item★★★★★
GDE Get Schema By Item★★★★★
GDE Has Item★★★
GDE Load All Items By Schema★★★★
GDE Load All Keys By Schema★★★
GDE Load Schema List★★
GDE Load String List Custom★★★
GDE Multiply Float★★★
GDE Multiply Int★★★
NGUI:
NGUI Get Widget Details★★★★
NGUI Set Sprite Multiple★★★★
NGUI Set Sprite Size★★
NGUI Set Widget Alpha Multi★★★★
NGUI Set Widget Color★★★
NGUI Set Widget Details★★★★
NGUI Sprite Is Visible
NGUI Tools Add Child Advanced★★★★★
NGUI Tools Destroy Multi★★

Notes:
- Third Party actions and the like (e.g. NGUI, Array Lists, ...) aren't on the Ecosystem (yet), since they are planned to be bundled in a package (see the uGUI action-package for an example), which then would be put on the Ecosystem, rather than polluting it with actions only a small group of users can use
- the rest of the actions not put on the Ecosystem are either not really useful/interesting for most, only change a little bit of an already existing action, are not tested sufficiently or there is already a similar action available
- the actions are available & supported for Unity 5 and up, because that's the version I mainly use and tested them on, meaning that most if not all of them are likely compatible with earlier Unity versions; but unless there are several people demanding it, it wouldn't be worthwile for me to test them on and provide them for earlier versions (namely Unity 4)

Edit:
|15.07.17|:
- Added: Direct-Download Links since you can't download single files in GitHub
|19.07.17|:
- Added: Actions "Countup Timer", "Swipe Gesture Event Advanced" & Custom Menu options to quickly change between scenes with shortcuts
|21.07.17|:
- Added: GDE-Actions: "GDE Add Float", "GDE Add Int", "GDE Add String", "GDE Multiply Float", "GDE Multiply Int"
- Fixed: GitHub Screenshot-Previews, they should all be visible now
|02.08.17|:
- Added: "Activate Multiple Components" and several GDE-related Actions
|28.08.17|:
- Added: "GDE Find Item By Value", "NGUI Tools Destroy Multi", "Enum Get Random", "Get Enum As Array", "Random Weighted Enum", "Random Weighted Vector3"
|09.10.17|:
- Added: "NGUI Set Sprite Size", "NGUI Set Widget Color", "Get -" + "Set Runtime Animator Controller", "Get AudioClip Length", "Get Audio Progress", "Int Switch", "Set Position Multi", "Debug Variable On Screen", "Send Event Random Delay", "Send Event Set Multi"
- Re-arranged how the list is represented in this post
|09.12.17|:
- Added: "Random Float On Slope", "Random Point On Slope"
- Updated: "Countup Timer" (now supports to pause the timer, reset and restart on enter),
                  "Debug Variable On Screen" (added option to change the font size)
- Fixed: "Destroy Children"
- Reworked: "GDE Create Item" (removed the convenient custom inspector that showed which Schemas are available, because it brought more harm than good, but at least it works now better and is more performant)
If you still have the "GDECreateItemInspector.cs" file, remove it when you want to use the new "GDE Create Item" script
|23.12.17|:
- Added: "Compare Colors"
- Started uploading most of these onto the Ecosystem (Unity 5 and up)
- Adjusted the list of actions to indicate which action can now be found on the Ecosystem
- Sorted certain actions into better matching categories
- Removed: "Set Sprite Color Custom" and "Remove Fullscreen Color"
|26.12.17|:
- Added: "Follow Mouse 2D"
- Reworked: "Activate Game Objects" (a re-work of the quite deprecated "Activate Multiple Game Objects" with additional options), "Activate Components" (a better version of "Activate Multiple Components", in the same vein as "Activate Game Objects")
- Created info-banner at the top of this post
|30.12.17|:
- Updated: "NGUI Set Sprite Multiple" (added required OnPreprocess() prerequisite for PlayMaker 1.8.5 and up)
- Reworked: "Set Positions" (previously "Set Positions Multi", added ability to set each GameObject's position individually (next to setting them all to one as initially intended), as well as the options to choose the update type)
|19.01.18|:
- Reworked: "Send Events" (previously called "Send Event Multi" and was fairly limited+threw an error when the event, even if global, wasn't used by the current FSM)
- Removed: direct download links since most of the actions are on the Ecosystem anyway and it's one system less that I'd have to maintain whenever I add/update any script
|04.02.18|:
- Added: "Nav Mesh Agent Move To", "Get Child Count Advanced", "Float Compare Range", "Int Compare Range"
« Last Edit: February 07, 2018, 02:31:34 PM by Deek »

tcmeric

  • Hero Member
  • *****
  • Posts: 525
    • View Profile
Re: ...just another big Custom Action collection
« Reply #1 on: July 14, 2017, 08:04:11 PM »
Awesome, looks like some great actions! Thank you for posting.

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 2659
    • View Profile
    • jinxtergames
Re: ...just another big Custom Action collection
« Reply #2 on: July 15, 2017, 09:30:27 AM »
Hi,
Wow a nice bunch of actions, i will certainly check them out.
May i add some of those on the Ecosystem?

Deek

  • Junior Playmaker
  • **
  • Posts: 89
    • View Profile
Re: ...just another big Custom Action collection
« Reply #3 on: July 15, 2017, 11:10:33 AM »
Hi,
Wow a nice bunch of actions, i will certainly check them out.
May i add some of those on the Ecosystem?
Sure thing, do as you please!
The GitHub Repository also contains all the preview pictures for the actions in the folder "Screenshots" if you want to include them for the Documentation-Button (the ?-Symbol on actions in the Ecosystem).

But I'm still unclear how the actions you choose to use could be updated if I improve or modify something inside of them... by replying to this post or is there another way?

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 2659
    • View Profile
    • jinxtergames
Re: ...just another big Custom Action collection
« Reply #4 on: July 15, 2017, 10:56:01 PM »
Hi,
Thx i will post when i added some actions.
(might take a while :) )

craigz

  • Junior Playmaker
  • **
  • Posts: 84
    • View Profile
    • Haven Made
Re: ...just another big Custom Action collection
« Reply #5 on: December 06, 2017, 09:51:27 AM »
Hi Deek!

Just wanted to say this is an awesome list - and thanks for tuning me in about Game Data Editor! It's so crazy useful! :D

I am getting some errors specifically on the 'Destroy Children' action, any ideas for a quick fix?

Code: [Select]
UsefulUnityUtilitiesMaster/Custom PlayMaker Actions/GameObject & UnityObject Customs/DestroyChildren.cs(30,18): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `DestroyChildren' and no extension method `DestroyChildren' of type `UnityEngine.Transform' could be found. Are you missing an assembly reference?
Let me know, these have been super useful :)

-craigz

Deek

  • Junior Playmaker
  • **
  • Posts: 89
    • View Profile
Re: ...just another big Custom Action collection
« Reply #6 on: December 09, 2017, 07:56:03 AM »
Whoopsie... Yeah that action used an extension method from NGUI which I haven't noticed (though it would be one from Unity's transform class).
Anyway, fixed it so it should work fine now. If you encounter further problems, please let me know; also I'm glad you find these helpful.

jellyam

  • Playmaker Newbie
  • *
  • Posts: 19
    • View Profile
Re: ...just another big Custom Action collection
« Reply #7 on: December 09, 2017, 09:09:39 AM »
thanks man, downloadign right now, can't to check 'em out

craigz

  • Junior Playmaker
  • **
  • Posts: 84
    • View Profile
    • Haven Made
Re: ...just another big Custom Action collection
« Reply #8 on: December 09, 2017, 07:04:57 PM »
Wahoo! Awesome, thank you so much Deek! You rock :D was it updated via Github? Just pulled the latest and still no dice! D:
« Last Edit: December 09, 2017, 07:37:20 PM by craigz »

Deek

  • Junior Playmaker
  • **
  • Posts: 89
    • View Profile
Re: ...just another big Custom Action collection
« Reply #9 on: December 10, 2017, 04:35:31 AM »
The updated version is available on both ends.
The direct download links lag a bit behind since I usually only sync my changes at the end of the day or the morning after, but I will likely soon have a better way of providing these (or maybe push these to the Ecosystem).

For your convenience I put the updated script as an attachment to this post, so you don't have to skim through the folders again ;)
« Last Edit: December 15, 2017, 08:31:53 AM by Deek »

craigz

  • Junior Playmaker
  • **
  • Posts: 84
    • View Profile
    • Haven Made
Re: ...just another big Custom Action collection
« Reply #10 on: December 11, 2017, 07:10:51 PM »
Dahhhh! Deek you're the best :D thank you for making things so convenient :P

And heck yeah! Would love to see some of them on Ecosystem, they're so useful! Because it's easy to tell they were made to help actually MAKE a game, rather than just a mish mash of just cool utilities :P

**EDIT**
Oh noes! Getting this on reimport!

Code: [Select]
Assets/PlayMaker Custom Actions/UsefulUnityUtilitiesMaster/Custom PlayMaker Actions/GameObject & UnityObject Customs/DestroyChildren.cs(30,18): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `DestroyChildren' and no extension method `DestroyChildren' of type `UnityEngine.Transform' could be found. Are you missing an assembly reference?

-craigz
« Last Edit: December 11, 2017, 07:41:07 PM by craigz »

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 2659
    • View Profile
    • jinxtergames
Re: ...just another big Custom Action collection
« Reply #11 on: December 12, 2017, 01:37:45 AM »
Hi Deek.
Do you have some experience with github / sourcetree?

You can find several videos explaining how to use them, here's one of them :


Once you've got this setup you can get access by asking jean.

Once you got a repository the best thing to do is to open it with unity (as a project) and install playmaker.
For u5 repo's you need to install unity 5.6.4, for u4  repo's you need to install 4.7.2
you can install multiple versions on 1 machine.
rename the unity folders to (for example Unity4 , Unity5 , unity2017, unityBeta)

You can also drop the actions directly in the repo custom action folders but it is recommended to do it inside unity for minimizing errors.

In your action scripts you need to add :
Code: [Select]
// (c) Copyright HutongGames, LLC 2010-2017. All rights reserved.
// Author : 'Your Playmaker username'
// supportUrl : 'url to the playmaker forum thread when available'
/*--- __ECO__ __PLAYMAKER__ __ACTION__ ---*/
The last line is mandatory, else the ecosystem won't find the action.

I had a lot of work going on so i did not have the time yet to check them out and add them to the Ecosystem, sorry for that.

For the 3rd party actions, maybe it is best to place then in a bundle package.
We will provide you an asset we are working on to simplify doing this.

Let me know if you need some help.
« Last Edit: December 12, 2017, 01:45:17 AM by djaydino »

Deek

  • Junior Playmaker
  • **
  • Posts: 89
    • View Profile
Re: ...just another big Custom Action collection
« Reply #12 on: December 12, 2017, 11:14:08 AM »
@craigz
Thanks for your kind words.
Yep, the line that causes the error was still in the updated version, even though I could have sworn that I removed it. Anyway, NOW there is the fixed version in the links and in this attachment, sorry for that.  ::)

@djaydino
The fact that I'm currently using GitHub to share these actions should show that I at least have the basic understand on how to handle repositories. :)

Though, for the u5 repo, does it necessarily need to be Unity 5.6.4, because I currently use 5.6.1f1.

Also since I've seen you guys trying to explain the process on several posts individually, why not make a sticky in the 'Share New Actions' section with a more exhaustive and universal explanation which you can then reference/link to when you need to explain it to someone again.
For example, this post on that topic also reveals additional info that would be worth mentioning:


And it might be redundant to rewrite that every time; just a suggestion.

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 2659
    • View Profile
    • jinxtergames
Re: ...just another big Custom Action collection
« Reply #13 on: December 12, 2017, 02:40:26 PM »
Hi.
Quote
The fact that I'm currently using GitHub to share these actions should show that I at least have the basic understand on how to handle repositories. :)
Sorry i was doing several things at the same and not thinking straight lol.

Quote
Though, for the u5 repo, does it necessarily need to be Unity 5.6.4, because I currently use 5.6.1f1.
after you tested on your version you can copy paste them to the repo as i think there will be version issues.
But it's best to ask jean

Quote
Also since I've seen you guys trying to explain the process on several posts individually, why not make a sticky in the 'Share New Actions' section with a more exhaustive and universal explanation which you can then reference/link to when you need to explain it to someone again.

Yes indeed, i am planning to make a wiki page for it.

Voa

  • Playmaker Newbie
  • *
  • Posts: 1
    • View Profile
Re: ...just another big Custom Action collection
« Reply #14 on: January 13, 2018, 06:13:36 PM »
Hi!

Awesome actions, thank you! I'm already using a couple of them, will check others after seeing this post. I found them in the Ecosystem, specifically looking for Send Event Multi.

But, I got an error (on Send Event Multi). Idk if it is already reported or not, but the action does not recognize Global Events, which is really strange given its purpose! I will leave a screenshot attached to better describe.

I tried to fix it myself, but was limited by my skills :P
Would you know why this happens, and how it can be fixed?

Ah, and another problem is that it does not have the option to send to children :(
« Last Edit: January 13, 2018, 06:24:48 PM by Voa »