10

« **on:** December 15, 2016, 01:32:57 PM »
Hey Everyone, can someone please adjust this code so I can operate on 3 fields instead of the default 2 fields. I tried myself, and it added an extra field but it just didn't calculate the 3rd field, probably something to do with the (Min ,Max)

Thanks

// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.

using UnityEngine;

namespace HutongGames.PlayMaker.Actions

{

[ActionCategory(ActionCategory.Math)]

[Tooltip("Performs math operation on 2 Integers: Add, Subtract, Multiply, Divide, Min, Max.")]

public class IntOperator : FsmStateAction

{

public enum Operation

{

Add,

Subtract,

Multiply,

Divide,

Min,

Max

}

[RequiredField]

public FsmInt integer1;

[RequiredField]

public FsmInt integer2;

public Operation operation = Operation.Add;

[RequiredField]

[UIHint(UIHint.Variable)]

public FsmInt storeResult;

public bool everyFrame;

public override void Reset()

{

integer1 = null;

integer2 = null;

operation = Operation.Add;

storeResult = null;

everyFrame = false;

}

public override void OnEnter()

{

DoIntOperator();

if (!everyFrame)

Finish();

}

// NOTE: very frame rate dependent!

public override void OnUpdate()

{

DoIntOperator();

}

void DoIntOperator()

{

int v1 = integer1.Value;

int v2 = integer2.Value;

switch (operation)

{

case Operation.Add:

storeResult.Value = v1 + v2;

break;

case Operation.Subtract:

storeResult.Value = v1 - v2;

break;

case Operation.Multiply:

storeResult.Value = v1 * v2;

break;

case Operation.Divide:

storeResult.Value = v1 / v2;

break;

case Operation.Min:

storeResult.Value = Mathf.Min(v1, v2);

break;

case Operation.Max:

storeResult.Value = Mathf.Max(v1, v2);

break;

}

}

}

}