コード例 #1
0
        public void UseWeapon_SetsOwnerRotationToFaceTarget()
        {
            _holdable.OnHeld(_owner);
            _holdable.UseWeapon(_target);

            ExtendedAssertions.AssertVectorsNearlyEqual(_holdable.gameObject.transform.up, (_target.transform.position - _owner.transform.position).normalized);
        }
コード例 #2
0
        public void Initialised_RotatesToFaceGoal()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject));
            _goal.Initialise();

            ExtendedAssertions.AssertVectorsNearlyEqual(_pathfinding.gameObject.transform.up, (_targetObject.transform.position - _pathfinding.gameObject.transform.position).normalized);
        }
コード例 #3
0
        public void CalculateDesirability_ChecksWildlifeServiceWithCurrentPositionAndFollowRadius()
        {
            _ownerSpecies.transform.position = new Vector3(12.0f, 13.0f, 1.0f);
            _goal.CalculateDesirability();

            ExtendedAssertions.AssertVectorsNearlyEqual(_ownerSpecies.gameObject.transform.position, _wildlifeService.GetWildlifeInRadiusLocationInput);
            Assert.AreEqual(_params.FollowRadius, _wildlifeService.GetWildlifeInRadiusDesiredRadiusInput);
        }
コード例 #4
0
        public void SetVirtualMousePosition_UpdatesPositionIgnoringZ()
        {
            var expectedVector = new Vector3(200.0f, 300.0f, 0.0f);

            _virtualMouse.SetVirtualMousePosition(expectedVector + new Vector3(0.0f, 0.0f, 100.0f));

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedVector, _image.rectTransform.position);
        }
コード例 #5
0
        public void Update_Trigger_LerpsToFinalPositionMax()
        {
            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration + 1.0f);

            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.position, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.eulerAngles, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #6
0
        public void Update_ZeroDuration_InstantTransform()
        {
            _triggerResponse.MoveDuration = 0.0f;
            BeginTriggerResponse();
            _triggerResponse.TestUpdate(1.0f);

            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.position, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.eulerAngles, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #7
0
        public void OnHeld_OwnerWithInterface_PositionMatchesSocket()
        {
            _heldItem.GetHeldItemSocketResult.position    = new Vector3(1.0f, 2.0f, 3.0f);
            _heldItem.GetHeldItemSocketResult.eulerAngles = new Vector3(4.0f, 7.0f, 12.0f);
            _holdable.OnHeld(_heldItem.gameObject);

            ExtendedAssertions.AssertVectorsNearlyEqual(_heldItem.GetHeldItemSocketResult.position, _holdable.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_heldItem.GetHeldItemSocketResult.eulerAngles, _holdable.transform.eulerAngles);
        }
コード例 #8
0
        public void Initialised_RotatesToFaceGoal()
        {
            var expectedDisturbance = new Vector3(1.0f, 2.0f, 4.0f);

            _goal.TestRecordDisturbance(expectedDisturbance);
            _goal.Initialise();

            ExtendedAssertions.AssertVectorsNearlyEqual(_pathfinding.gameObject.transform.up, (expectedDisturbance - _pathfinding.gameObject.transform.position).normalized);
        }
コード例 #9
0
        public void HandleHorizontalAnalog_OwnerAndPushable_PushInRightVectorByModifier()
        {
            var         inputHandler  = new PushObjectInputHandler(_owner, _pushable);
            const float inputModifier = 0.7f;

            inputHandler.HandleAnalogInput(EInputKey.HorizontalAnalog, inputModifier);

            Vector2 expectedResult = _owner.transform.right * inputModifier;

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedResult, _pushable.PushResult.Value);
        }
コード例 #10
0
        public void SetRelativeCameraPosition_CameraSetToGivenOrientation()
        {
            var         expectedLocation  = new Vector3(25.0f, 50.0f, -10.0f);
            var         expectedRotation  = new Vector3(10.0f, 20.0f, 30.0f);
            const float expectedOrthoSize = 3.0f;

            _cameraComponent.SetRelativeCameraPosition(expectedLocation, expectedRotation, expectedOrthoSize);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedLocation, _cameraComponent.gameObject.transform.localPosition);
            ExtendedAssertions.AssertVectorsNearlyEqual(expectedRotation, _cameraComponent.gameObject.transform.rotation.eulerAngles);
            Assert.AreEqual(expectedOrthoSize, _camera.orthographicSize);
        }
コード例 #11
0
        public void ApplyVerticalMovement_ModifierIsClampedToMin()
        {
            const float movementMod = -1.0f;
            const float updateDelta = 1.5f;

            _virtualMouse.ApplyVerticalMovement(movementMod - 100.0f);
            _virtualMouse.TestUpdate(updateDelta);

            var expectedPosition = new Vector3(0.0f, movementMod * updateDelta * _virtualMouse.MouseSpeed, 0.0f);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedPosition, _image.rectTransform.position);
        }
コード例 #12
0
        public void ApplyHorizontalMovement_PositionIsTransformedAsExpected()
        {
            const float movementMod = 0.5f;
            const float updateDelta = 1.5f;

            _virtualMouse.ApplyHorizontalMovement(movementMod);
            _virtualMouse.TestUpdate(updateDelta);

            var expectedPosition = new Vector3(movementMod * updateDelta * _virtualMouse.MouseSpeed, 0.0f, 0.0f);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedPosition, _image.rectTransform.position);
        }
コード例 #13
0
        public void RotateHorizontal_ClampsToRange()
        {
            const float rotationValue = 1.5f;
            const float deltaTime     = 1.2f;

            _cameraComponent.RotateHorizontal(rotationValue);
            _cameraComponent.TestUpdate(deltaTime);

            var expectedRotation = new Vector3(0.0f, 0.0f, 120.0f);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedRotation, _cameraComponent.gameObject.transform.parent.rotation.eulerAngles);
        }
コード例 #14
0
        public void ApplyVerticalAndHorizontalMovement_Normalised()
        {
            const float movementMod = 1.0f;
            const float updateDelta = 1.5f;

            _virtualMouse.ApplyVerticalMovement(movementMod);
            _virtualMouse.ApplyHorizontalMovement(movementMod);
            _virtualMouse.TestUpdate(updateDelta);

            var expectedPosition = new Vector3(movementMod, movementMod, 0.0f).normalized *updateDelta *_virtualMouse.MouseSpeed;

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedPosition, _image.rectTransform.position);
        }
コード例 #15
0
        public void Start_SetsCameraPositionBasedOnParams()
        {
            var spawningParams = new SpawningActionStateParams {
                InitialCameraLocation = new Vector3(10.0f, 11.0f, 30.0f), InitialCameraRotation = new Vector3(1.0f, 0.5f, 2.0f), InitialOrthographicSize = 3.0f
            };
            var spawning = new SpawningActionState(new ActionStateInfo(_inputBinder.gameObject), spawningParams);

            spawning.Start();

            ExtendedAssertions.AssertVectorsNearlyEqual(spawningParams.InitialCameraLocation, _playerCamera.SetLocation.Value);
            ExtendedAssertions.AssertVectorsNearlyEqual(spawningParams.InitialCameraRotation, _playerCamera.SetRotation.Value);

            Assert.AreEqual(spawningParams.InitialOrthographicSize, _playerCamera.SetOrthographicSize);
        }
コード例 #16
0
        public void Update_TriggerParent_LerpsToFinalPositionMax()
        {
            var expectedFinalPosition = _triggerResponse.FinalPosition.transform.position;
            var expectedFinalRotation = _triggerResponse.FinalPosition.transform.eulerAngles;

            _triggerResponse.FinalPosition.transform.parent = _triggerResponse.transform;

            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * 0.5f);
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * 0.5f);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedFinalPosition, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(expectedFinalRotation, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #17
0
        public void Read_Triggered_ReadImplSetsToFinalPosition()
        {
            BeginTriggerResponse();

            var stream = new MemoryStream();

            _triggerResponse.WriteData(stream);

            var readData = new MemoryStream(stream.ToArray());

            _triggerResponse.ReadData(readData);

            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.position, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.eulerAngles, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #18
0
        public void Update_CancelTrigger_NoMulti_DoesNotLerpToStartAfterOriginalDurationElapsed()
        {
            const float expectedLerp = 0.5f;

            _triggerResponse.MultiTrigger = false;

            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * expectedLerp);

            BeginCancelTriggerResponse();
            _triggerResponse.TestUpdate((_triggerResponse.MoveDuration * expectedLerp) + 0.1f);

            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.position, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.gameObject.transform.eulerAngles, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #19
0
        public void Update_TriggerAfterCancel_LerpsToFinalPositionAfterDelay()
        {
            _triggerResponse.MultiTrigger = true;

            const float expectedMoveDuration   = 0.5f;
            const float expectedCancelDuration = 0.6f;

            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * expectedMoveDuration);

            BeginCancelTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * expectedCancelDuration);

            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration * (expectedMoveDuration + expectedCancelDuration));

            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.position, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(_triggerResponse.FinalPosition.transform.eulerAngles, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #20
0
        public void Read_TriggerCompleted_ReadImplSetsToFinalPosition()
        {
            var expectedFinalPosition = _triggerResponse.FinalPosition.transform.position;
            var expectedFinalRotation = _triggerResponse.FinalPosition.transform.eulerAngles;

            BeginTriggerResponse();
            _triggerResponse.TestUpdate(_triggerResponse.MoveDuration + 0.1f);

            var stream = new MemoryStream();

            _triggerResponse.WriteData(stream);

            var readData = new MemoryStream(stream.ToArray());

            _triggerResponse.ReadData(readData);

            ExtendedAssertions.AssertVectorsNearlyEqual(expectedFinalPosition, _triggerResponse.gameObject.transform.position);
            ExtendedAssertions.AssertVectorsNearlyEqual(expectedFinalRotation, _triggerResponse.gameObject.transform.eulerAngles);
        }
コード例 #21
0
        public void ReadData_ReadsInPositionsCorrectly()
        {
            var priorPosition = _entity.gameObject.transform.position;
            var priorRotation = _entity.gameObject.transform.eulerAngles;
            var initialActive = _entity.gameObject.activeSelf;

            var stream = new MemoryStream();

            _entity.WriteData(stream);

            _entity.gameObject.SetActive(!_entity.gameObject.activeSelf);
            _entity.gameObject.transform.position    = Vector3.down;
            _entity.gameObject.transform.eulerAngles = Vector3.forward;

            _entity.ReadData(new MemoryStream(stream.ToArray()), false);

            Assert.AreEqual(initialActive, _entity.gameObject.activeSelf);
            ExtendedAssertions.AssertVectorsNearlyEqual(_entity.gameObject.transform.position, priorPosition);
            ExtendedAssertions.AssertVectorsNearlyEqual(_entity.gameObject.transform.eulerAngles, priorRotation);
        }