Exemple #1
0
    void FixedUpdate()
    {
        var newPlayers = inputRecognizer
                         .GetJoystickWichPress(JoystickButton.Start)
                         .Except(CurrentPlayers)
                         .ToArray();

        if (!newPlayers.Any())
        {
            return;
        }

        var playersToBeAdded = newPlayers.Take(playerCount - CurrentPlayers.Count);

        foreach (var playerJoystick in playersToBeAdded)
        {
            CurrentPlayers.Add(playerJoystick);
            var player = Instantiate(playerPrefab);
            player.name = $"Player{playerJoystick}";
            player.GetComponent <PlayerInput>().AssignJoystick(playerJoystick);
        }

        if (CurrentPlayers.Count == playerCount)
        {
            gameObject.SetActive(false);
        }
    }
        public void IfNoButtonIsPassedShouldRegnizeAny(JoystickButton button)
        {
            var unityInputMock = Substitute.For <UnityInput>();

            unityInputMock.GetButton($"J2.{button}").Returns(true);

            var sut = new InputRecognizer(unityInputMock);

            var stick = sut.GetJoystickWichPress(button);

            stick.Should().BeEquivalentTo(Joystick._2);
        }
        public void InputRecognizerShouldReturnEmptyIfNoButtonIsPressed()
        {
            var unityInputMock = Substitute.For <UnityInput>();

            unityInputMock.GetButton(Arg.Any <string>()).Returns(false);

            var sut = new InputRecognizer(unityInputMock);

            var stick = sut.GetJoystickWichPress(JoystickButton.A);

            stick.Should().BeEmpty();
        }
        public void InputRecognizerShouldReturnIfControllerXPressTheButtonA(int jNumber, Joystick joystick)
        {
            var unityInputMock = Substitute.For <UnityInput>();

            unityInputMock.GetButton($"J{jNumber}.A").Returns(true);

            var sut = new InputRecognizer(unityInputMock);

            var stick = sut.GetJoystickWichPress(JoystickButton.A);

            stick.Should().BeEquivalentTo(joystick);
        }
        public void InputRecognizerShouldReturnJoystickIfPressOneOfThePassedButtons()
        {
            var unityInputMock = Substitute.For <UnityInput>();

            unityInputMock.GetButton("J1.A").Returns(false);
            unityInputMock.GetButton("J1.B").Returns(true);

            var sut = new InputRecognizer(unityInputMock);

            var stick = sut.GetJoystickWichPress(JoystickButton.A, JoystickButton.B);

            stick.Should().BeEquivalentTo(Joystick._1);
        }
        public void ShouldGetMoreThenOneStickIfTwoOfThenPressInSameTime()
        {
            var unityInputMock = Substitute.For <UnityInput>();

            unityInputMock.GetButton("J1.A").Returns(true);
            unityInputMock.GetButton("J2.A").Returns(true);

            var sut = new InputRecognizer(unityInputMock);

            var stick = sut.GetJoystickWichPress(JoystickButton.A);
            var x     = stick.ToList();

            stick.ToList().Should().BeEquivalentTo(Joystick._1, Joystick._2);
        }