Example #1
0
        public IEnumerator TouchInputPasses()
        {
            yield return(null);

            var input = new ReplayableInput();

            {//TouchSupported
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.touchSupported, input.TouchSupported);
                input.IsReplaying            = true;
                input.RecordedTouchSupported = !UnityEngine.Input.touchSupported;
                Assert.AreEqual(input.RecordedTouchSupported, input.TouchSupported);
            }

            {//MultiTouchEnabled
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.multiTouchEnabled, input.MultiTouchEnabled);
                input.IsReplaying = true;
                input.RecordedMultiTouchEnabled = !UnityEngine.Input.multiTouchEnabled;
                Assert.AreEqual(input.RecordedMultiTouchEnabled, input.MultiTouchEnabled);
            }

            {//StylusTouchSupported
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.stylusTouchSupported, input.StylusTouchSupported);
                input.IsReplaying = true;
                input.RecordedStylusTouchSupported = !UnityEngine.Input.stylusTouchSupported;
                Assert.AreEqual(input.RecordedStylusTouchSupported, input.StylusTouchSupported);
            }

            {//TouchPressureSupported
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.touchPressureSupported, input.TouchPressureSupported);
                input.IsReplaying = true;
                input.RecordedTouchPressureSupported = !UnityEngine.Input.touchPressureSupported;
                Assert.AreEqual(input.RecordedTouchPressureSupported, input.TouchPressureSupported);
            }

            {//TouchCount
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.touchCount, input.TouchCount);
            }

            {//GetTouch
                input.IsReplaying = true;
                for (var i = 0; i < input.TouchCount; ++i)
                {
                    var t = new Touch()
                    {
                        fingerId = i,
                    };
                    input.SetRecordedTouch(i, t);
                    Assert.AreEqual(input.GetRecordedTouch(i), input.GetTouch(i));
                    Assert.AreEqual(i + 1, input.TouchCount);
                }
            }
        }
 /// <summary>
 /// この関数を呼び出した後は、このインスタンスとReplayableInputのパラメータがFrameのものへ更新されます。
 /// </summary>
 /// <param name="input"></param>
 public void RecoverTo(ReplayableInput input)
 {
     input.ClearRecordedTouch();
     //手ごろなプロパティに設定しているだけで、特に意味はない処理
     input.SetRecordedTouch(0, new Touch()
     {
         fingerId = DummyData
     });
 }
Example #3
0
        public IEnumerator MouseInputPasses()
        {
            yield return(null);

            var input = new ReplayableInput();

            {//GetMouseButton
                foreach (InputDefines.MouseButton btn in System.Enum.GetValues(typeof(InputDefines.MouseButton)))
                {
                    input.IsReplaying = false;
                    input.GetMouseButton(btn);
                    Assert.AreEqual(InputDefines.ToButtonCondition(btn), input.GetMouseButton(btn));

                    input.IsReplaying = true;
                    var condition = InputDefines.ButtonCondition.Push;
                    input.SetRecordedMouseButton(btn, condition);
                    Assert.AreEqual(condition, input.GetRecordedMouseButton(btn));
                    Assert.AreEqual(condition, input.GetMouseButton(btn));
                }
            }

            {//MousePos
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.mousePosition, input.MousePos);
                input.IsReplaying      = true;
                input.RecordedMousePos = Vector3.one;
                Assert.AreEqual(input.RecordedMousePos, input.MousePos);
            }

            {//MousePresent
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.mousePresent, input.MousePresent);
                input.IsReplaying          = true;
                input.RecordedMousePresent = !UnityEngine.Input.mousePresent;
                Assert.AreEqual(input.RecordedMousePresent, input.MousePresent);
            }

            {//MouseScrollDelta
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.mouseScrollDelta, input.MouseScrollDelta);
                input.IsReplaying = true;
                input.RecordedMouseScrollDelta = Vector2.one;
                Assert.AreEqual(input.RecordedMouseScrollDelta, input.MouseScrollDelta);
            }
        }
Example #4
0
        public void GetKeyConditionPasses()
        {
            var input = new ReplayableInput();

            input.IsReplaying = true;

            Assert.AreEqual(KeyCode.RightApple, KeyCode.RightCommand);
            Assert.AreEqual(KeyCode.LeftApple, KeyCode.LeftCommand);

            foreach (var keyCode in KeyCodeDefines.AllSupportedKeyCodes)
            {
                var errorMessage = $"Failed KeyCode({keyCode})...";
                Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode), errorMessage);

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Down);
                Assert.AreEqual(InputDefines.ButtonCondition.Down, input.GetKeyCondition(keyCode), errorMessage);
            }
        }
Example #5
0
        public IEnumerator AxisPasses()
        {
            yield return(null);

            var input     = new ReplayableInput();
            var axisNames = new string[] {
                "Horizontal",
                "Vertical",
            };

            {//ContainsRecordedButton
                foreach (var buttonName in axisNames)
                {
                    var errorMessage = $"Failed Button({buttonName})...";
                    Assert.IsFalse(input.ContainsRecordedAxis(buttonName), errorMessage);

                    var axis = 1f;
                    input.SetRecordedAxis(buttonName, axis);
                    Assert.AreEqual(axis, input.GetRecordedAxis(buttonName), errorMessage);

                    input.SetRecordedAxis(buttonName, 0f);
                    Assert.IsFalse(input.ContainsRecordedAxis(buttonName), errorMessage);
                    Assert.AreEqual(0f, input.GetRecordedAxis(buttonName), errorMessage);
                }
            }
            Debug.Log($"Success to ReplayableInput#RecordedButton Methods");

            {//GetAxis
                var axisName = axisNames[0];
                Assert.IsFalse(input.ContainsRecordedAxis(axisName));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetAxis(axisName), input.GetAxis(axisName));

                input.IsReplaying = true;
                var axis = 1f;
                input.SetRecordedAxis(axisName, axis);
                Assert.AreEqual(axis, input.GetAxis(axisName));

                input.SetRecordedAxis(axisName, 0f);
                Assert.AreEqual(0f, input.GetAxis(axisName));
            }
            Debug.Log($"Success to ReplayableInput#GetAxis()");
        }
Example #6
0
        public IEnumerator PointerPos_Passes()
        {
            yield return(null);

            var input = new ReplayableInput();

            input.IsReplaying            = true;
            input.RecordedTouchSupported = true;

            //use Touch
            input.RecordedMousePos = Vector3.one * 100f;
            input.SetRecordedTouch(0, new Touch()
            {
                fingerId = 0, position = Vector3.one
            });
            AssertionUtils.AreNearlyEqual((Vector3)Vector2.one, input.PointerPos, float.Epsilon, "");

            //use Mouse
            input.RemoveRecordedTouch(0);
            AssertionUtils.AreNearlyEqual(Vector3.one * 100f, input.PointerPos, float.Epsilon, "");
        }
Example #7
0
        public IEnumerator GetPointerButton_Passes()
        {
            yield return(null);

            var input = new ReplayableInput();

            input.IsReplaying            = true;
            input.RecordedTouchSupported = true;

            //use Touch
            input.SetRecordedMouseButton(InputDefines.MouseButton.Left, InputDefines.ButtonCondition.Down);
            input.SetRecordedTouch(0, new Touch()
            {
                fingerId = 0, phase = TouchPhase.Stationary
            });

            Assert.AreEqual(InputDefines.ButtonCondition.Push, input.GetPointerButton());

            //use Mouse
            input.RemoveRecordedTouch(0);
            Assert.AreEqual(InputDefines.ButtonCondition.Down, input.GetPointerButton());
        }
Example #8
0
        public IEnumerator RemoveRecordedTouch_Passes()
        {
            yield return(null);

            var input = new ReplayableInput();

            input.IsReplaying = true;
            for (int i = 0; i < 3; ++i)
            {
                var t = new Touch()
                {
                    fingerId = i,
                };
                input.SetRecordedTouch(i, t);
            }

            input.RemoveRecordedTouch(1);

            AssertionUtils.AssertEnumerable(
                new int[] { 0, 2 }
                , input.GetTouches().Select(_t => _t.fingerId)
                , "");
        }
Example #9
0
        public IEnumerator GetButtonConditionPasses()
        {
            yield return(null);

            var input = new ReplayableInput();

            input.IsReplaying = true;
            var buttonNames = new string[] {
                "Fire1",
                "Fire2",
                "Jump",
            };

            foreach (var name in buttonNames)
            {
                foreach (var condition in System.Enum.GetValues(typeof(InputDefines.ButtonCondition))
                         .OfType <InputDefines.ButtonCondition>())
                {
                    var errorMessage = $"Failed Button({name}) and Condition({condition})...";
                    input.SetRecordedButton(name, condition);
                    Assert.AreEqual(condition, input.GetButtonCondition(name), errorMessage);
                }
            }
        }
Example #10
0
        public IEnumerator ButtonPasses()
        {
            yield return(null);

            var input       = new ReplayableInput();
            var buttonNames = new string[] {
                "Fire1",
                "Fire2",
                "Jump",
            };

            {//ContainsRecordedButton
                foreach (var buttonName in buttonNames)
                {
                    var errorMessage = $"Failed Button({buttonName})...";
                    Assert.IsFalse(input.ContainsRecordedButton(buttonName), errorMessage);

                    input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Down);
                    Assert.IsTrue(input.ContainsRecordedButton(buttonName), errorMessage);

                    input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Push);
                    Assert.IsTrue(input.ContainsRecordedButton(buttonName), errorMessage);

                    input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Up);
                    Assert.IsTrue(input.ContainsRecordedButton(buttonName), errorMessage);

                    input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                    Assert.IsFalse(input.ContainsRecordedButton(buttonName), errorMessage);
                }
            }
            Debug.Log($"Success to ReplayableInput#RecordedButton Methods");

            {//GetButton
                var buttonName = buttonNames[0];
                Assert.IsFalse(input.ContainsRecordedButton(buttonName));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetButton(buttonName), input.GetButton(buttonName));

                input.IsReplaying = true;

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Down);
                Assert.IsTrue(input.GetButton(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Push);
                Assert.IsTrue(input.GetButton(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Up);
                Assert.IsTrue(input.GetButton(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetButton(buttonName));
            }
            Debug.Log($"Success to ReplayableInput#GetButton()");

            {//GetButtonDown
                var buttonName = buttonNames[0];
                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.ContainsRecordedButton(buttonName));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetButtonDown(buttonName), input.GetButtonDown(buttonName));

                input.IsReplaying = true;

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Down);
                Assert.IsTrue(input.GetButtonDown(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Push);
                Assert.IsFalse(input.GetButtonDown(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Up);
                Assert.IsFalse(input.GetButtonDown(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetButtonDown(buttonName));
            }
            Debug.Log($"Success to ReplayableInput#GetButtonDown()");

            {//GetButtonUp
                var buttonName = buttonNames[0];
                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.ContainsRecordedButton(buttonName));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetButtonUp(buttonName), input.GetButtonUp(buttonName));

                input.IsReplaying = true;

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Down);
                Assert.IsFalse(input.GetButtonUp(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Push);
                Assert.IsFalse(input.GetButtonUp(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Up);
                Assert.IsTrue(input.GetButtonUp(buttonName));

                input.SetRecordedButton(buttonName, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetButtonUp(buttonName));
            }
            Debug.Log($"Success to ReplayableInput#GetButtonUp()");
        }
Example #11
0
        public IEnumerator KeyPasses()
        {
            yield return(null);

            var input = new ReplayableInput();

            {//ContainsRecordedKeyCode
                foreach (var keyCode in KeyCodeDefines.AllSupportedKeyCodes)
                {
                    var errorMessage = $"Failed KeyCode({keyCode})...";
                    Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode), errorMessage);

                    input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Down);
                    Assert.IsTrue(input.ContainsRecordedKeyCode(keyCode), errorMessage);

                    input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Push);
                    Assert.IsTrue(input.ContainsRecordedKeyCode(keyCode), errorMessage);

                    input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Up);
                    Assert.IsTrue(input.ContainsRecordedKeyCode(keyCode), errorMessage);

                    input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                    Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode), errorMessage);
                }
            }
            Debug.Log($"Success to ReplayableInput#RecordedKeyButton Methods");

            {//GetKey
                var keyCode = KeyCode.A;
                Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetKey(keyCode), input.GetKey(keyCode));

                input.IsReplaying = true;

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Down);
                Assert.IsTrue(input.GetKey(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Push);
                Assert.IsTrue(input.GetKey(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Up);
                Assert.IsTrue(input.GetKey(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetKey(keyCode));
            }
            Debug.Log($"Success to ReplayableInput#GetKey()");

            {//GetKeyDown
                var keyCode = KeyCode.A;
                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetKeyDown(keyCode), input.GetKeyDown(keyCode));

                input.IsReplaying = true;

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Down);
                Assert.IsTrue(input.GetKeyDown(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Push);
                Assert.IsFalse(input.GetKeyDown(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Up);
                Assert.IsFalse(input.GetKeyDown(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetKeyDown(keyCode));
            }
            Debug.Log($"Success to ReplayableInput#GetKeyDown()");

            {//GetKeyUp
                var keyCode = KeyCode.A;
                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.ContainsRecordedKeyCode(keyCode));

                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.GetKeyUp(keyCode), input.GetKeyUp(keyCode));

                input.IsReplaying = true;

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Down);
                Assert.IsFalse(input.GetKeyUp(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Push);
                Assert.IsFalse(input.GetKeyUp(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Up);
                Assert.IsTrue(input.GetKeyUp(keyCode));

                input.SetRecordedKeyButton(keyCode, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.GetKeyUp(keyCode));
            }
            Debug.Log($"Success to ReplayableInput#GetKeyUp()");

            {//anyKey
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.anyKey, input.AnyKey);

                input.IsReplaying = true;

                input.SetRecordedKeyButton(KeyCode.A, InputDefines.ButtonCondition.Push);
                Assert.IsTrue(input.AnyKey);

                input.SetRecordedKeyButton(KeyCode.A, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.AnyKey);
            }
            Debug.Log($"Success to ReplayableInput#AnyKey()");

            {//anyKeyDown
                input.IsReplaying = false;
                Assert.AreEqual(UnityEngine.Input.anyKeyDown, input.AnyKeyDown);

                input.IsReplaying = true;

                input.SetRecordedKeyButton(KeyCode.A, InputDefines.ButtonCondition.Down);
                Assert.IsTrue(input.AnyKeyDown);

                input.SetRecordedKeyButton(KeyCode.A, InputDefines.ButtonCondition.Free);
                Assert.IsFalse(input.AnyKeyDown);
            }
            Debug.Log($"Success to ReplayableInput#AnyKeyDown()");
        }
 public void Record(ReplayableInput input)
 {
     //手ごろなプロパティに設定しているだけで、特に意味はない処理
     _dummyData.Value = input.TouchCount > 0 ? input.GetTouch(0).fingerId : -1;
 }