Ecosystem | Action Name | Usefulness |
AnimateVariable: | ||
✔ | Ease Int | ★★★ |
Animator: | ||
✔ | Get Animator Runtime Controller | ★★ |
✔ | Set Animator Runtime Controller | ★★ |
Applications: | ||
✔ | Is On Platform Event | ★★★ |
Array List: | ||
✔ | Array List Contains Name | ★★★ |
✔ | Array List Get Length | ★★★★★ |
✔ | List GameObjects Inside Collider | ★★★★★ |
✔ | List GameObjects Inside Collider2D | ★★★★★ |
Array: | ||
✔ | Array Get Random Advanced | ★★ |
✔ | Array Operator | ★★★ |
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 | ★★ (untested) |
✘ | Get Device Roll Custom | ★★★ (untested) |
✔ | Swipe Gesture Event Advanced | ★★★★ |
Enum: | ||
✔ | Enum Get Random | ★★ |
✔ | Get Enum As Array | ★★★★ |
✔ | Random Weighted Enum | ★★★ |
GameObject & UnityObject: | ||
✔ | Activate Components | ★★★★ |
✔ | Activate Game Objects | ★★★★★ |
✔ | Activate Game Objects Advanced | ★★★★ |
✔ | Destroy Children | ★★★★ |
✔ | Enable Children | ★★★★ |
✔ | Enable Children In Range | ★★★★ |
✔ | Find Children | ★★★ |
✔ | GameObject Compare Multi | ★★★★ |
✔ | GameObject Keep Active | ★★★★★ |
✔ | Get Child Count Advanced | ★★★★ |
✔ | Get GameObject Sibling | ★★★★★ |
✔ | Get Last Child | ★★ |
✔ | Get Multilevel GameObject | ★★★★★ |
✔ | Get Object Name | ★★★ |
✔ | Has Sibling | ★★★★ |
✔ | Set GameObject If Not Null | ★★★ |
✔ | Toggle Component | ★★★★ |
✔ | Toggle GameObject | ★★★★ |
Logic: | ||
✔ | Convert Int To Letter | ★★★★ |
✔ | Float Compare Range | ★★★★ |
✔ | Int Compare Range | ★★★★ |
✔ | Int Sign Test | ★★★ |
✘ | Int Switch Advanced | ★★★ (similar to existing action) |
Hi,Sure thing, do as you please!
Wow a nice bunch of actions, i will certainly check them out.
May i add some of those on the Ecosystem?
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?
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?
// (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.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.
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.
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.
InvalidCastException: Cannot cast from source type to destination type.
HutongGames.PlayMaker.Actions.GDEBoolTest.CheckGDEBool () (at Assets/PlayMaker Custom Actions/UsefulUnityUtilitiesMaster/Custom PlayMaker Actions/_ThirdParty/GDE Customs/GDEBoolTest.cs:56)
HutongGames.PlayMaker.Actions.GDEBoolTest.OnEnter () (at Assets/PlayMaker Custom Actions/UsefulUnityUtilitiesMaster/Custom PlayMaker Actions/_ThirdParty/GDE Customs/GDEBoolTest.cs:40)
HutongGames.PlayMaker.FsmState.ActivateActions (Int32 startIndex) (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:205)
HutongGames.PlayMaker.FsmState.OnEnter () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:175)
HutongGames.PlayMaker.Fsm.EnterState (HutongGames.PlayMaker.FsmState state) (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2695)
HutongGames.PlayMaker.Fsm.SwitchState (HutongGames.PlayMaker.FsmState toState) (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2642)
HutongGames.PlayMaker.Fsm.UpdateStateChanges () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2570)
HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state) (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2711)
HutongGames.PlayMaker.Fsm.Update () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1934)
HutongGames.PlayMaker.Actions.RunFSMAction.OnUpdate () (at Assets/PlayMaker/Actions/RunFSMAction.cs:55)
HutongGames.PlayMaker.FsmState.OnUpdate () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:265)
HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state) (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2710)
HutongGames.PlayMaker.Fsm.Update () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1934)
PlayMakerFSM.Update () (at C:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:539)
// License: Attribution 4.0 International (CC BY 4.0)
/*--- __ECO__ __PLAYMAKER__ __ACTION__ ---*/
// Author : Deek
using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.GameObject)]
[HelpUrl("http://hutonggames.com/playmakerforum/index.php?topic=15458.0")]
[Tooltip("Get the Game Object and name of a higher parent or lower child specified by an index.")]
public class GetMultilevelGameObject : FsmStateAction
{
[RequiredField]
[Tooltip("The GameObject to start from.")]
public FsmOwnerDefault startingFrom;
[Tooltip("How many 'Directories' to go up or down. For example '2' would be the grandparent of the GameObject this FSM is attached to, '3' the parent of that one ... and so on. 0 returns the Owner. Anything below 0 goes in the other direction (-2 = first Child of the first Child). You can also set a very high number to definitely get the root.")]
public FsmInt index;
[UIHint(UIHint.Variable)]
[Tooltip("The final GameObject it reached.")]
public FsmGameObject storeResult;
[Tooltip("The Name of the final GameObject it reached.")]
public FsmString storeResultName;
[Tooltip("Follow the path it takes (throws Debug.Log's for every GameObject it passes). If there are several Log entries with the same GameObject, it means that the given index is higher than the GameObject has parents or lower than it has children.")]
public FsmBool debug;
public override void Reset()
{
startingFrom = null;
index = 1;
storeResult = null;
storeResultName = null;
debug = false;
}
public override void OnEnter()
{
var go = Fsm.GetOwnerDefaultTarget(startingFrom);
if(go != null)
{
//Get Owner
if(index.Value == 0)
{
storeResult.Value = Owner;
storeResultName = storeResult.Value.name;
if(debug.Value == true)
{
Debug.Log("GetMultilevelGameObject - Owner: " + Owner);
}
}
//Get ascending parent
if(index.Value > 0)
{
for(int i = 1; i < index.Value; ++i)
{
go = go.transform.parent == null ? go : go.transform.parent.gameObject;
if(debug.Value == true)
{
var j = i + 1;
Debug.Log("GetMultilevelGameObject - Parent " + j.ToString() + ": " + go.transform.gameObject.name);
}
storeResult.Value = go;
storeResultName = storeResult.Value.name;
}
}
//Get descending Child
if(index.Value < 0)
{
for(int i = -1; i > index.Value; i--)
{
go = go.transform.GetChild(0) == null ? go.transform.gameObject : go.transform.GetChild(0).gameObject;
if(debug.Value == true)
{
//Invert and add 1 to current Index
var j = (i * (-1)) + 1;
Debug.Log("GetMultilevelGameObject - Child " + j.ToString() + ": " + go.transform.gameObject.name);
}
storeResult.Value = go;
storeResultName = storeResult.Value.name;
}
}
}
//If startingFrom is Null
else
{
storeResult.Value = null;
storeResultName = "None";
if(debug.Value == true)
Debug.Log("GetMultilevelGameObject - NullReferenceException: 'Start From' is null");
}
Finish();
}
}
}
result.Value = assignedAudioClip[i].Value;
Sorry 'bout that. I haven't used PlayMaker in a while and didn't test the action :Ptimer = FsmTime.RealtimeSinceStartup - startTime;
doesn't add time like it should.