Exemplo n.º 1
0
 private void PassObjectsToController()
 {
     // Is this the best way to use Unity related objects?
     controller.SetState(State);
     controller.SetMovementSpeed(movementSpeed);
     controller.SetRotatonSpeed(rotationSpeed);
 }
Exemplo n.º 2
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);
        }