New PlayMaker action: GetMode

This commit is contained in:
2015-12-13 23:08:18 +06:00
parent ffaed11858
commit e8627d11ee
11 changed files with 193 additions and 53 deletions

View File

@@ -52,6 +52,7 @@
<Compile Include="Assets\IsoTools\Examples\Scripts\IsoEchoListener.cs" /> <Compile Include="Assets\IsoTools\Examples\Scripts\IsoEchoListener.cs" />
<Compile Include="Assets\IsoTools\Examples\Scripts\PlayerController.cs" /> <Compile Include="Assets\IsoTools\Examples\Scripts\PlayerController.cs" />
<Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoComponentAction.cs" /> <Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoComponentAction.cs" />
<Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoGetMode.cs" />
<Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoGetPosition.cs" /> <Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoGetPosition.cs" />
<Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoGetSize.cs" /> <Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoGetSize.cs" />
<Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoResize.cs" /> <Compile Include="Assets\IsoTools\PlayMaker\Actions\IsoResize.cs" />

View File

@@ -444,6 +444,7 @@ MonoBehaviour:
- HutongGames.PlayMaker.Actions.Wait - HutongGames.PlayMaker.Actions.Wait
- IsoTools.PlayMaker.Actions.IsoGetPosition - IsoTools.PlayMaker.Actions.IsoGetPosition
- IsoTools.PlayMaker.Actions.IsoGetSize - IsoTools.PlayMaker.Actions.IsoGetSize
- IsoTools.PlayMaker.Actions.IsoGetMode
- PlayMaker.ConditionalExpression.ConditionalExpression - PlayMaker.ConditionalExpression.ConditionalExpression
customNames: customNames:
- -
@@ -451,10 +452,11 @@ MonoBehaviour:
- -
- -
- -
actionEnabled: 0101010101 -
actionIsOpen: 0000000000 actionEnabled: 010101010101
actionStartIndex: 00000000090000000c0000001200000018000000 actionIsOpen: 000000000100
actionHashCodes: 8ef8760048c011017ebd02027ebd0202490c8701 actionStartIndex: 00000000090000000c00000012000000180000001b000000
actionHashCodes: 8ef8760048c011017ebd02027ebd020236f6fc01490c8701
unityObjectParams: [] unityObjectParams: []
fsmGameObjectParams: [] fsmGameObjectParams: []
fsmOwnerDefaultParams: fsmOwnerDefaultParams:
@@ -482,6 +484,14 @@ MonoBehaviour:
showInInspector: 0 showInInspector: 0
networkSync: 0 networkSync: 0
value: {fileID: 0} value: {fileID: 0}
- ownerOption: 0
gameObject:
useVariable: 0
name:
tooltip:
showInInspector: 0
networkSync: 0
value: {fileID: 0}
animationCurveParams: [] animationCurveParams: []
functionCallParams: [] functionCallParams: []
fsmTemplateControlParams: [] fsmTemplateControlParams: []
@@ -498,7 +508,14 @@ MonoBehaviour:
fsmObjectParams: [] fsmObjectParams: []
fsmVarParams: [] fsmVarParams: []
fsmArrayParams: [] fsmArrayParams: []
fsmEnumParams: [] fsmEnumParams:
- useVariable: 1
name: iso_mode
tooltip:
showInInspector: 1
networkSync: 0
enumName: IsoTools.IsoObject+Mode
intValue: 0
fsmFloatParams: fsmFloatParams:
- useVariable: 1 - useVariable: 1
name: name:
@@ -595,12 +612,12 @@ MonoBehaviour:
- FINISHED - FINISHED
- TO_RESET_POSITION - TO_RESET_POSITION
- -
byteData: 000000000100000000 byteData: 00000000010000000000
arrayParamSizes: arrayParamSizes:
arrayParamTypes: [] arrayParamTypes: []
customTypeSizes: customTypeSizes:
customTypeNames: [] customTypeNames: []
paramDataType: 140000001c0000000f0000000f0000000f000000010000000100000001000000010000000f0000001700000001000000140000001c0000000f0000000f0000000f00000001000000140000001c0000000f0000000f0000000f00000001000000120000001700000017000000010000000100000011000000 paramDataType: 140000001c0000000f0000000f0000000f000000010000000100000001000000010000000f0000001700000001000000140000001c0000000f0000000f0000000f00000001000000140000001c0000000f0000000f0000000f00000001000000140000002a00000001000000120000001700000017000000010000000100000011000000
paramName: paramName:
- gameObject - gameObject
- vector - vector
@@ -626,14 +643,17 @@ MonoBehaviour:
- y - y
- z - z
- everyFrame - everyFrame
- gameObject
- mode
- everyFrame
- expression - expression
- isTrueEvent - isTrueEvent
- isFalseEvent - isFalseEvent
- everyFrame - everyFrame
- rawResult - rawResult
- storeResult - storeResult
paramDataPos: 000000000000000000000000010000000200000000000000010000000200000003000000030000000000000004000000010000000100000004000000050000000600000005000000020000000200000007000000080000000900000006000000000000000100000002000000070000000800000000000000 paramDataPos: 000000000000000000000000010000000200000000000000010000000200000003000000030000000000000004000000010000000100000004000000050000000600000005000000020000000200000007000000080000000900000006000000030000000000000007000000000000000100000002000000080000000900000000000000
paramByteDataSize: 000000000000000000000000000000000000000001000000010000000100000001000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000010000000100000000000000 paramByteDataSize: 000000000000000000000000000000000000000001000000010000000100000001000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000001000000000000000000000000000000010000000100000000000000
- name: State 3 - name: State 3
description: description:
colorIndex: 0 colorIndex: 0
@@ -659,16 +679,26 @@ MonoBehaviour:
actionNames: actionNames:
- IsoTools.PlayMaker.Actions.IsoSetPosition - IsoTools.PlayMaker.Actions.IsoSetPosition
- HutongGames.PlayMaker.Actions.Wait - HutongGames.PlayMaker.Actions.Wait
- IsoTools.PlayMaker.Actions.IsoSetMode
customNames: customNames:
- -
- -
actionEnabled: 0101 -
actionIsOpen: 0101 actionEnabled: 010101
actionStartIndex: 0000000007000000 actionIsOpen: 010101
actionHashCodes: afff110548c01101 actionStartIndex: 00000000080000000b000000
actionHashCodes: ac9f610448c01101672cde03
unityObjectParams: [] unityObjectParams: []
fsmGameObjectParams: [] fsmGameObjectParams: []
fsmOwnerDefaultParams: fsmOwnerDefaultParams:
- ownerOption: 0
gameObject:
useVariable: 0
name:
tooltip:
showInInspector: 0
networkSync: 0
value: {fileID: 0}
- ownerOption: 0 - ownerOption: 0
gameObject: gameObject:
useVariable: 0 useVariable: 0
@@ -687,7 +717,14 @@ MonoBehaviour:
fsmObjectParams: [] fsmObjectParams: []
fsmVarParams: [] fsmVarParams: []
fsmArrayParams: [] fsmArrayParams: []
fsmEnumParams: [] fsmEnumParams:
- useVariable: 0
name:
tooltip:
showInInspector: 0
networkSync: 0
enumName: IsoTools.IsoObject+Mode
intValue: 1
fsmFloatParams: fsmFloatParams:
- useVariable: 0 - useVariable: 0
name: name:
@@ -728,12 +765,12 @@ MonoBehaviour:
fsmQuaternionParams: [] fsmQuaternionParams: []
stringParams: stringParams:
- FINISHED - FINISHED
byteData: 000001 byteData: 00000001
arrayParamSizes: arrayParamSizes:
arrayParamTypes: [] arrayParamTypes: []
customTypeSizes: customTypeSizes:
customTypeNames: [] customTypeNames: []
paramDataType: 140000001c0000000f0000000f0000000f00000001000000010000000f0000001700000001000000 paramDataType: 140000001c0000000f0000000f0000000f0000000100000001000000010000000f0000001700000001000000140000002a000000
paramName: paramName:
- gameObject - gameObject
- vector - vector
@@ -742,11 +779,14 @@ MonoBehaviour:
- z - z
- everyFrame - everyFrame
- lateUpdate - lateUpdate
- fixedUpdate
- time - time
- finishEvent - finishEvent
- realTime - realTime
paramDataPos: 00000000000000000000000001000000020000000000000001000000030000000000000002000000 - gameObject
paramByteDataSize: 00000000000000000000000000000000000000000100000001000000000000000000000001000000 - mode
paramDataPos: 00000000000000000000000001000000020000000000000001000000020000000300000000000000030000000100000000000000
paramByteDataSize: 00000000000000000000000000000000000000000100000001000000010000000000000000000000010000000000000000000000
events: events:
- name: FINISHED - name: FINISHED
isSystemEvent: 1 isSystemEvent: 1
@@ -802,10 +842,17 @@ MonoBehaviour:
materialVariables: [] materialVariables: []
textureVariables: [] textureVariables: []
arrayVariables: [] arrayVariables: []
enumVariables: [] enumVariables:
- useVariable: 1
name: iso_mode
tooltip:
showInInspector: 1
networkSync: 0
enumName: IsoTools.IsoObject+Mode
intValue: 0
categories: categories:
- -
variableCategoryIDs: 00000000000000000000000000000000 variableCategoryIDs: 0000000000000000000000000000000000000000
description: description:
docUrl: docUrl:
showStateLabel: 1 showStateLabel: 1

View File

@@ -0,0 +1,43 @@
using UnityEngine;
using HutongGames.PlayMaker;
namespace IsoTools.PlayMaker.Actions {
[ActionCategory("IsoTools")]
[HutongGames.PlayMaker.Tooltip("Gets the Mode of a IsoObject and stores it in a Enum Variable")]
public class IsoGetMode : IsoComponentAction<IsoObject> {
[RequiredField]
[CheckForComponent(typeof(IsoObject))]
public FsmOwnerDefault gameObject;
[ObjectType(typeof(IsoObject.Mode))]
[UIHint(UIHint.Variable)]
public FsmEnum mode;
public bool everyFrame;
public override void Reset() {
gameObject = null;
mode = null;
everyFrame = false;
}
public override void OnEnter() {
DoAction();
if ( !everyFrame ) {
Finish();
}
}
public override void OnUpdate() {
DoAction();
}
void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) {
var value = isoObject.mode;
mode.Value = value;
}
}
}
} // IsoTools.PlayMaker.Actions

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ee5d31a178d81452ea41e5945bdec367
timeCreated: 1450021857
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -33,17 +33,17 @@ namespace IsoTools.PlayMaker.Actions {
} }
public override void OnEnter() { public override void OnEnter() {
DoGetPosition(); DoAction();
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
DoGetPosition(); DoAction();
} }
void DoGetPosition() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = isoObject.position; var value = isoObject.position;

View File

@@ -33,17 +33,17 @@ namespace IsoTools.PlayMaker.Actions {
} }
public override void OnEnter() { public override void OnEnter() {
DoGetSize(); DoAction();
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
DoGetSize(); DoAction();
} }
void DoGetSize() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = isoObject.size; var value = isoObject.size;

View File

@@ -39,20 +39,20 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnEnter() { public override void OnEnter() {
if ( !everyFrame && !lateUpdate && !fixedUpdate ) { if ( !everyFrame && !lateUpdate && !fixedUpdate ) {
DoResize(); DoAction();
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
if ( !lateUpdate && !fixedUpdate ) { if ( !lateUpdate && !fixedUpdate ) {
DoResize(); DoAction();
} }
} }
public override void OnLateUpdate() { public override void OnLateUpdate() {
if ( lateUpdate ) { if ( lateUpdate ) {
DoResize(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
@@ -61,18 +61,18 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnFixedUpdate() { public override void OnFixedUpdate() {
if ( fixedUpdate ) { if ( fixedUpdate ) {
DoResize(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
void DoResize() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = vector.IsNone var value = vector.IsNone
? new Vector3(x.Value, y.Value, z.Value) ? Vector3.zero
: vector.Value; : vector.Value;
if ( !x.IsNone ) { if ( !x.IsNone ) {

View File

@@ -12,17 +12,54 @@ namespace IsoTools.PlayMaker.Actions {
[ObjectType(typeof(IsoObject.Mode))] [ObjectType(typeof(IsoObject.Mode))]
public FsmEnum mode; public FsmEnum mode;
public bool everyFrame;
public bool lateUpdate;
public bool fixedUpdate;
public override void Reset() { public override void Reset() {
gameObject = null; gameObject = null;
mode = IsoObject.Mode.Mode2d; mode = new FsmEnum{UseVariable = true};
everyFrame = false;
lateUpdate = false;
fixedUpdate = false;
}
public override void OnPreprocess() {
Fsm.HandleFixedUpdate = true;
} }
public override void OnEnter() { public override void OnEnter() {
DoSetMode(); if ( !everyFrame && !lateUpdate && !fixedUpdate ) {
Finish(); DoAction();
Finish();
}
} }
void DoSetMode() { public override void OnUpdate() {
if ( !lateUpdate && !fixedUpdate ) {
DoAction();
}
}
public override void OnLateUpdate() {
if ( lateUpdate ) {
DoAction();
}
if ( !everyFrame ) {
Finish();
}
}
public override void OnFixedUpdate() {
if ( fixedUpdate ) {
DoAction();
}
if ( !everyFrame ) {
Finish();
}
}
void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
isoObject.mode = (IsoObject.Mode)mode.Value; isoObject.mode = (IsoObject.Mode)mode.Value;

View File

@@ -37,20 +37,20 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnEnter() { public override void OnEnter() {
if ( !everyFrame && !lateUpdate && !fixedUpdate ) { if ( !everyFrame && !lateUpdate && !fixedUpdate ) {
DoSetPosition(); DoAction();
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
if ( !lateUpdate && !fixedUpdate ) { if ( !lateUpdate && !fixedUpdate ) {
DoSetPosition(); DoAction();
} }
} }
public override void OnLateUpdate() { public override void OnLateUpdate() {
if ( lateUpdate ) { if ( lateUpdate ) {
DoSetPosition(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
@@ -59,14 +59,14 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnFixedUpdate() { public override void OnFixedUpdate() {
if ( fixedUpdate ) { if ( fixedUpdate ) {
DoSetPosition(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
void DoSetPosition() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = vector.IsNone var value = vector.IsNone

View File

@@ -37,20 +37,20 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnEnter() { public override void OnEnter() {
if ( !everyFrame && !lateUpdate && !fixedUpdate ) { if ( !everyFrame && !lateUpdate && !fixedUpdate ) {
DoSetSize(); DoAction();
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
if ( !lateUpdate && !fixedUpdate ) { if ( !lateUpdate && !fixedUpdate ) {
DoSetSize(); DoAction();
} }
} }
public override void OnLateUpdate() { public override void OnLateUpdate() {
if ( lateUpdate ) { if ( lateUpdate ) {
DoSetSize(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
@@ -59,14 +59,14 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnFixedUpdate() { public override void OnFixedUpdate() {
if ( fixedUpdate ) { if ( fixedUpdate ) {
DoSetSize(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
void DoSetSize() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = vector.IsNone var value = vector.IsNone

View File

@@ -39,20 +39,20 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnEnter() { public override void OnEnter() {
if ( !everyFrame && !lateUpdate && !fixedUpdate ) { if ( !everyFrame && !lateUpdate && !fixedUpdate ) {
DoTranlate(); DoAction();
Finish(); Finish();
} }
} }
public override void OnUpdate() { public override void OnUpdate() {
if ( !lateUpdate && !fixedUpdate ) { if ( !lateUpdate && !fixedUpdate ) {
DoTranlate(); DoAction();
} }
} }
public override void OnLateUpdate() { public override void OnLateUpdate() {
if ( lateUpdate ) { if ( lateUpdate ) {
DoTranlate(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
@@ -61,18 +61,18 @@ namespace IsoTools.PlayMaker.Actions {
public override void OnFixedUpdate() { public override void OnFixedUpdate() {
if ( fixedUpdate ) { if ( fixedUpdate ) {
DoTranlate(); DoAction();
} }
if ( !everyFrame ) { if ( !everyFrame ) {
Finish(); Finish();
} }
} }
void DoTranlate() { void DoAction() {
var go = Fsm.GetOwnerDefaultTarget(gameObject); var go = Fsm.GetOwnerDefaultTarget(gameObject);
if ( UpdateCache(go) ) { if ( UpdateCache(go) ) {
var value = vector.IsNone var value = vector.IsNone
? new Vector3(x.Value, y.Value, z.Value) ? Vector3.zero
: vector.Value; : vector.Value;
if ( !x.IsNone ) { if ( !x.IsNone ) {