Exemplo n.º 1
0
        public void OnRemotePlayerMovement_MovePlayerGameObject()
        {
            // Given
            const float horizontal = 1f;
            const float vertical   = 2f;
            var         jobj       = JSONObjectBuilder.Empty()
                                     .WithPlayerId("TEST_ID")
                                     .WithMovementCoordinates(horizontal, vertical)
                                     .WrapAsPayload();
            var         socketEvent = SocketIOEventBuilder.New("test").WithData(jobj).Build();
            const float time        = 0.123f;

            unityTimeProxyMock.Setup(x => x.deltaTime).Returns(time);
            const float movementSpeed = 12f;
            const float rotationSpeed = 7f;

            controller.SetMovementSpeed(movementSpeed);
            controller.SetRotatonSpeed(rotationSpeed);

            // When
            Debug.Log(fakePlayerInstance.transform.position);
            controller.OnRemotePlayerMovement(socketEvent);
            Debug.Log(fakePlayerInstance.transform.position);

            // Then
            unityGameObjectProxyMock.Verify(x => x.Find("Player:TEST_ID"), Times.Once);
            const float rotationAngle = horizontal * rotationSpeed * time * Mathf.Rad2Deg;

            Assert.AreEqual(vertical * movementSpeed * time, fakePlayerInstance.transform.position.x);
            Assert.AreEqual(rotationAngle, fakePlayerInstance.transform.rotation.y);
        }
        private static SocketIOEvent BuildSocketIOEventWithPlayer(string eventName, string playerId, float posX = 0F, float posY = 0F, float posZ = 0F)
        {
            var jobj = JSONObjectBuilder.Empty()
                       .WithPayload(BuildJSONObjectWithPlayerId(playerId, posX, posY, posZ))
                       .Build();
            var socketEvent = SocketIOEventBuilder.New(eventName).WithData(jobj).Build();

            return(socketEvent);
        }
        private static SocketIOEvent BuildOnPlayerReceivedEvent(List <JSONObject> players)
        {
            var jobj = JSONObjectBuilder.Empty()
                       .WithField(SOCKET_DATA_FIELDS.Payload, players)
                       .Build();
            var socketEvent = SocketIOEventBuilder.New("test").WithData(jobj).Build();
            var data        = socketEvent.data.GetField("players");

            return(socketEvent);
        }
        private static SocketIOEvent BuildPlayerInitialPositionSocketEvent(float posX, float posY, float posZ)
        {
            var data = JSONObjectBuilder.Empty()
                       .WithPosition(posX, posY, posZ)
                       .WrapAsPayload();

            var socketEvent = SocketIOEventBuilder.Empty(SOCKET_EVENTS.ServerWelcome)
                              .WithData(data)
                              .Build();

            return(socketEvent);
        }