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