Пример #1
0
        public override void OnUpdate()
        {
            var buttonDown = How_To_Do_Touch_InputManager.GetButtonDown(ButtonName.Value);

            if (buttonDown)
            {
                Fsm.Event(SendEvent);
            }

            StoreResult.Value = buttonDown;
        }
Пример #2
0
        void DoGetAxis()
        {
            var axisValue = How_To_Do_Touch_InputManager.GetAxis(AxisName.Value);

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

            Store.Value = axisValue;
        }
 void DoGetButton()
 {
     StoreResult.Value = How_To_Do_Touch_InputManager.GetButton(ButtonName.Value);
 }
        public override void OnUpdate()
        {
            var forward = new Vector3();
            var right   = new Vector3();

            if (relativeTo.Value == null)
            {
                switch (mapToPlane)
                {
                case AxisPlane.XZ:
                    forward = Vector3.forward;
                    right   = Vector3.right;
                    break;

                case AxisPlane.XY:
                    forward = Vector3.up;
                    right   = Vector3.right;
                    break;

                case AxisPlane.YZ:
                    forward = Vector3.up;
                    right   = Vector3.forward;
                    break;
                }
            }
            else
            {
                var transform = relativeTo.Value.transform;

                switch (mapToPlane)
                {
                case AxisPlane.XZ:
                    forward   = transform.TransformDirection(Vector3.forward);
                    forward.y = 0;
                    forward   = forward.normalized;
                    right     = new Vector3(forward.z, 0, -forward.x);
                    break;

                case AxisPlane.XY:
                case AxisPlane.YZ:
                    // NOTE: in relative mode XY ans YZ are the same!
                    forward   = Vector3.up;
                    forward.z = 0;
                    forward   = forward.normalized;
                    right     = transform.TransformDirection(Vector3.right);
                    break;
                }

                // Right vector relative to the object
                // Always orthogonal to the forward vector
            }

            // get individual axis
            // leaving an axis blank or set to None sets it to 0

            var h = (horizontalAxis.IsNone || string.IsNullOrEmpty(horizontalAxis.Value)) ? 0f : How_To_Do_Touch_InputManager.GetAxis(horizontalAxis.Value);
            var v = (verticalAxis.IsNone || string.IsNullOrEmpty(verticalAxis.Value)) ? 0f : How_To_Do_Touch_InputManager.GetAxis(verticalAxis.Value);

            // calculate resulting direction vector

            var direction = h * right + v * forward;

            direction *= multiplier.Value;

            storeVector.Value = direction;

            if (!storeMagnitude.IsNone)
            {
                storeMagnitude.Value = direction.magnitude;
            }
        }