Пример #1
0
        public override void OnEnter()
        {
            if (!FsmString.IsNullOrEmpty(key) && !variable.IsNone)
            {
                // Get json saved with PlayerPrefsSaveVariable

                var json = PlayerPrefs.GetString(key.Value, "");
                if (json == "") // variable keeps current value
                {
                    Finish();
                    return;
                }

                // PlayerPrefsSaveVariable saves and FsmVar
                // So we have type info to check

                var fsmVar = JsonUtility.FromJson <FsmVar>(json);

                if (fsmVar.Type == variable.Type &&
                    fsmVar.ObjectType == variable.ObjectType)
                {
                    fsmVar.ApplyValueTo(variable.NamedVar);
                }

                variable.NamedVar.Init();
            }

            Finish();
        }
Пример #2
0
 private void DoGetAxis()
 {
     if (!FsmString.IsNullOrEmpty(axisName))
     {
         float num = Input.GetAxis(axisName.Value);
         if (!multiplier.IsNone)
         {
             num *= multiplier.Value;
         }
         store.Value = num;
     }
 }
Пример #3
0
        public override void OnEnter()
        {
            if (!FsmString.IsNullOrEmpty(key))
            {
                // Save variable as json string

                variable.UpdateValue();
                var json = JsonUtility.ToJson(variable);

                PlayerPrefs.SetString(key.Value, json);
                PlayerPrefs.Save();
            }

            Finish();
        }
Пример #4
0
        private void DoGetAxisRaw()
        {
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }

            var axisValue = Input.GetAxisRaw(axisName.Value);

            if (!multiplier.IsNone)
            {
                axisValue *= multiplier.Value;
            }

            store.Value = axisValue;
        }
Пример #5
0
        private void DoStopAnimation()
        {
            GameObject ownerDefaultTarget = base.Fsm.GetOwnerDefaultTarget(gameObject);

            if (UpdateCache(ownerDefaultTarget))
            {
                if (FsmString.IsNullOrEmpty(animName))
                {
                    base.animation.Stop();
                }
                else
                {
                    base.animation.Stop(animName.Value);
                }
            }
        }
Пример #6
0
        void DoGetAxis()
        {
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }

            var axisValue = Input.GetAxis(axisName.Value);

            // if variable set to none, assume multiplier of 1
            if (!multiplier.IsNone)
            {
                axisValue *= multiplier.Value;
            }

            store.Value = axisValue;
        }
        public override void OnUpdate()

        {
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }
            var axisValue = Input.GetAxisRaw(axisName.Value);

            if (Input.GetButtonDown(axisName.Value) && Input.GetAxisRaw(axisName.Value) > 0)
            {
                Fsm.Event(eventPositiveButton);
            }
            else if (Input.GetButtonDown(axisName.Value) && Input.GetAxisRaw(axisName.Value) < 0)
            {
                Fsm.Event(eventNegativeButton);
            }
        }
Пример #8
0
        private void DoStopAnimation()
        {
            var go = Fsm.GetOwnerDefaultTarget(gameObject);

            if (!UpdateCache(go))
            {
                return;
            }

            if (FsmString.IsNullOrEmpty(animName))
            {
                animation.Stop();
            }
            else
            {
                animation.Stop(animName.Value);
            }
        }
Пример #9
0
        public override string ErrorCheck()
        {
            if (FsmString.IsNullOrEmpty(expression))
            {
                return("");
            }

            try
            {
                ParseExpression();
                return("");
            }
            catch (Exception e)
            {
                if (e is ArithmeticException)
                {
                    return("@expression:" + e.Message);
                }
                return("@expression: Parsing error...");
            }
        }
Пример #10
0
        private void DoGetAxis()
        {
#if !NEW_INPUT_SYSTEM_ONLY
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }

            var axisValue = Input.GetAxis(axisName.Value);

            // if variable set to none, assume multiplier of 1
            if (!multiplier.IsNone)
            {
                axisValue *= multiplier.Value;
            }

            if (invert.Value)
            {
                axisValue *= -1;
            }

            store.Value = axisValue;
#endif
        }
Пример #11
0
        public override void OnUpdate()
        {
            // Error Handling
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }

            // Listen for Button AND direction.
            var buttonDown = Input.GetButtonDown(buttonName.Value);
            var axisValue  = Input.GetAxisRaw(axisName.Value);

            if (buttonDown)
            {
                if (Input.GetAxisRaw(axisName.Value) > 0)
                {
                    Fsm.Event(eventPositiveButton);
                }
                else if (Input.GetAxisRaw(axisName.Value) < 0)
                {
                    Fsm.Event(eventNegativeButton);
                }
            }
        }
Пример #12
0
        void DoAxisToVelocity()
        {
            if (FsmString.IsNullOrEmpty(axisName))
            {
                return;
            }
            var axisValue = Input.GetAxis(axisName.Value);

            storeAxisAbs.Value = Mathf.Abs(axisValue);

            // Velocity Part

            var go = Fsm.GetOwnerDefaultTarget(gameObject);

            if (!UpdateCache(go))
            {
                return;
            }

            var velocity = rigidbody2d.velocity;

            if (space == Space.Self)
            {
                velocity = rigidbody2d.transform.InverseTransformDirection(velocity);
            }

            // override any axis

            if (axisOrientation == AxisOrientation.Vertical)
            {
                velocity.y = axisValue * multiplier.Value;
            }
            else
            {
                velocity.x = axisValue * multiplier.Value;
            }


            // apply


            if (Input.GetAxis(axisName.Value) > deadzone.Value * -1 && Input.GetAxis(axisName.Value) < deadzone.Value)
            {
                // Don't set velocity when hasNeutral is true, and the axis is zeroed.
            }


            else
            {
                rigidbody2d.velocity = velocity;
            }


            // Event Switch


            if (Input.GetAxis(axisName.Value) > 0)
            {
                Fsm.Event(eventPositiveButton);
            }
            else if (Input.GetAxis(axisName.Value) < 0)
            {
                Fsm.Event(eventNegativeButton);
            }

            if (!everyFrame)
            {
                Finish();
            }
        } // Method