public void handleTrigger(TrackChangeTrigger trigger) { rotationAmountRemaining = trigger.rotationAmount; rotationCenter = trigger.getRotationCenter(transform.position); rotationAxis = trigger.rotationAxis; rotationSpeed = Mathf.Sign(rotationAmountRemaining) * (movSpeed * 360) / (2 * Mathf.PI * Vector3.Distance(transform.position, rotationCenter)); }
public void handleTriggerUpdatesRotationAxis() { GameObject camera = new GameObject(); CameraController cameraController = camera.AddComponent <CameraController>(); GameObject triggerObject = new GameObject(); TrackChangeTrigger trackChangeTrigger = triggerObject.AddComponent <TrackChangeTrigger>(); Vector3 oldRotationAxis = cameraController.rotationAxis; cameraController.handleTrigger(trackChangeTrigger); Assert.AreNotEqual(oldRotationAxis, cameraController.rotationAxis); }
public void handleTriggerUpdatesRotationAmountRemaining() { GameObject camera = new GameObject(); CameraController cameraController = camera.AddComponent <CameraController>(); GameObject triggerObject = new GameObject(); TrackChangeTrigger trackChangeTrigger = triggerObject.AddComponent <TrackChangeTrigger>(); float oldRotationAmount = cameraController.rotationAmountRemaining; cameraController.handleTrigger(trackChangeTrigger); Assert.AreNotEqual(oldRotationAmount, cameraController.rotationAmountRemaining); }
void OnTriggerEnter(Collider other) { // If we hit a track change, we want to queue a rotation if (other.CompareTag("TrackChange")) { // Here we get the component and check if it actually has it before getting data from it TrackChangeTrigger trigger = other.GetComponent <TrackChangeTrigger>(); if (trigger != null) { handleTrigger(trigger); } } }
public void handleTriggerUpdatesRotationSpeedProperly() { GameObject camera = new GameObject(); CameraController cameraController = camera.AddComponent <CameraController>(); GameObject triggerObject = new GameObject(); TrackChangeTrigger trackChangeTrigger = triggerObject.AddComponent <TrackChangeTrigger>(); camera.transform.position = new Vector3(10f, 0f, 0f); float expectedRotationSpeed = 11.4591559026164f; cameraController.handleTrigger(trackChangeTrigger); Assert.IsTrue(Mathf.Approximately(expectedRotationSpeed, cameraController.rotationSpeed)); }
public void handleTriggerUpdatesRotationCenter() { GameObject camera = new GameObject(); CameraController cameraController = camera.AddComponent <CameraController>(); GameObject triggerObject = new GameObject(); TrackChangeTrigger trackChangeTrigger = triggerObject.AddComponent <TrackChangeTrigger>(); camera.transform.position = new Vector3(100, 100, 100); Vector3 oldRotationCenter = cameraController.rotationCenter; cameraController.handleTrigger(trackChangeTrigger); Assert.AreNotEqual(oldRotationCenter, cameraController.rotationCenter); }
public void getRotationCenterReturnsCorrectlyFor90Degrees() { GameObject triggerObject = new GameObject(); TrackChangeTrigger trigger = triggerObject.AddComponent <TrackChangeTrigger>(); trigger.rotationAmount = 90.0f; trigger.transform.position = Vector3.zero; Vector3 inPosition = new Vector3(10f, 0f, 0f); Vector3 expectedCenter = new Vector3(10f, 0f, 10f); Vector3 rotationCenter = trigger.getRotationCenter(inPosition); Assert.Greater(0.001f, Vector3.Distance(expectedCenter, rotationCenter)); }