示例#1
0
 private void Start()
 {
     input          = new PlayerInput();
     movementPlane  = new Plane(Vector3.up, transform.position);
     playerMovement = GetComponent <PlayerMovement>();
     fpsController  = GetComponent <FirstPersonShooter>();
 }
        public IEnumerator UpdateShouldRotateCameraAroundTheXAxisWhenMouseMovesAlongTheYAxis()
        {
            GameObject       cameraGameObject = new GameObject("Camera");
            CameraController cameraController = cameraGameObject.AddComponent <CameraController>();

            IPlayerMovementInput playerInput = Substitute.For <IPlayerMovementInput>();

            playerInput.GetAxis("Mouse Y").Returns(1);
            playerInput.GetDeltaTime().Returns(1);

            cameraController._playerInput = playerInput;

            Assert.AreEqual(0, cameraGameObject.transform.rotation.x, 0.1f);
            yield return(null);

            Assert.AreEqual(-0.7, cameraGameObject.transform.rotation.x, 0.1f);
        }
示例#3
0
        public IEnumerator UpdateShouldApplyGrowingGravitationForceVectorOnPlayerWhenFalling()
        {
            GameObject          playerGameObject    = new GameObject("Player");
            PlayerController    playerController    = playerGameObject.AddComponent <PlayerController>();
            CharacterController characterController = playerGameObject.AddComponent <CharacterController>();

            IPlayerMovementInput playerMovementInput = Substitute.For <IPlayerMovementInput>();

            playerMovementInput.GetDeltaTime().Returns(1);

            playerController._playerMovementInput = playerMovementInput;
            playerController.characterController  = characterController;
            yield return(null);

            Assert.AreEqual(-14f, playerGameObject.transform.position.y);
            yield return(null);

            Assert.AreEqual(-42f, playerGameObject.transform.position.y);
        }
示例#4
0
        public IEnumerator UpdateShouldMovePlayerAlongXForHorizontalInput()
        {
            GameObject          playerGameObject    = new GameObject("Player");
            PlayerController    playerController    = playerGameObject.AddComponent <PlayerController>();
            CharacterController characterController = playerGameObject.AddComponent <CharacterController>();

            IPlayerMovementInput playerMovementInput = Substitute.For <IPlayerMovementInput>();

            playerMovementInput.GetAxis("Horizontal").Returns(1);
            playerMovementInput.GetDeltaTime().Returns(1);

            playerController._playerMovementInput = playerMovementInput;
            playerController.characterController  = characterController;

            Assert.AreEqual(0, playerGameObject.transform.position.x);
            yield return(null);

            Assert.AreEqual(12f, playerGameObject.transform.position.x);
        }
示例#5
0
        public IEnumerator UpdateShouldRotatePlayerAroundTheYAxisWhenMouseMovesAlongTheXAxis()
        {
            GameObject          playerGameObject    = new GameObject("Player");
            PlayerController    playerController    = playerGameObject.AddComponent <PlayerController>();
            CharacterController characterController = playerGameObject.AddComponent <CharacterController>();

            IPlayerMovementInput playerMovementInput = Substitute.For <IPlayerMovementInput>();

            playerMovementInput.GetAxis("Mouse X").Returns(1);
            playerMovementInput.GetDeltaTime().Returns(1);

            playerController._playerMovementInput = playerMovementInput;
            playerController.characterController  = characterController;

            Assert.AreEqual(0, playerGameObject.transform.rotation.y);
            yield return(null);

            Assert.AreEqual(0.8, playerGameObject.transform.rotation.y, 0.1f);
        }
示例#6
0
 public void Construct(IPlayerMovementInput playerInput)
 {
     _playerInput = playerInput;
 }
        /******* Monobehavior Methods *******/

        private void Awake()
        {
            _characterController = GetComponent <CharacterController>();
            _input = GetComponent <IPlayerMovementInput>();
        }