public override void OnSetRotation(CameraController.SetRotationPayload payload) { var eulerDir = Vector3.zero; if (payload.cameraTarget.HasValue) { var newPos = new Vector3(payload.x, payload.y, payload.z); var cameraTarget = payload.cameraTarget.GetValueOrDefault(); var dirToLook = (cameraTarget - newPos); eulerDir = Quaternion.LookRotation(dirToLook).eulerAngles; } defaultVirtualCameraAsFreeLook.m_XAxis.Value = eulerDir.y; defaultVirtualCameraAsFreeLook.m_YAxis.Value = eulerDir.x; }
public override void OnSetRotation(CameraController.SetRotationPayload payload) { var eulerDir = Vector3.zero; if (payload.cameraTarget.HasValue) { var newPos = new Vector3(payload.x, payload.y, payload.z); var cameraTarget = payload.cameraTarget.GetValueOrDefault(); var dirToLook = (cameraTarget - newPos); eulerDir = Quaternion.LookRotation(dirToLook).eulerAngles; } if (pov != null) { pov.m_HorizontalAxis.Value = eulerDir.y; pov.m_VerticalAxis.Value = eulerDir.x; } }
public override void OnSetRotation(CameraController.SetRotationPayload payload) { var eulerDir = Vector3.zero; if (payload.cameraTarget.HasValue) { var newPos = new Vector3(payload.x, payload.y, payload.z); var cameraTarget = payload.cameraTarget.GetValueOrDefault(); var dirToLook = (cameraTarget - newPos); eulerDir = Quaternion.LookRotation(dirToLook).eulerAngles; } if (defaultVirtualCamera is CinemachineVirtualCamera vcamera) { var pov = vcamera.GetCinemachineComponent <CinemachinePOV>(); pov.m_HorizontalAxis.Value = eulerDir.y; pov.m_VerticalAxis.Value = eulerDir.x; } }
public void ReactToSetRotation(float lookAtX, float lookAtY, float lookAtZ) { var payload = new CameraController.SetRotationPayload() { x = 0, y = 0, z = 0, cameraTarget = new Vector3(lookAtX, lookAtY, lookAtZ) }; var rotationEuler = Quaternion.LookRotation(payload.cameraTarget.Value).eulerAngles; cameraController.SetRotation(JsonConvert.SerializeObject(payload, Formatting.None, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })); Assert.AreEqual(cameraController.GetRotation().y, rotationEuler.y); Assert.AreEqual(cameraController.GetRotation().x, rotationEuler.x); }
public void SetBuilderCameraRotation(string yawpitchRotation) { if (LOG_MESSAGES) { Debug.Log($"RECEIVE: SetBuilderCameraRotation {yawpitchRotation}"); } if (!string.IsNullOrEmpty(yawpitchRotation)) { string[] splitRotationStr = yawpitchRotation.Split(','); if (splitRotationStr.Length == 2) { float yaw, pitch = 0; float.TryParse(splitRotationStr[0], out yaw); float.TryParse(splitRotationStr[1], out pitch); if (isPreviewMode) { if (DCLCharacterController.i != null) { DCLCharacterController.i.transform.rotation = Quaternion.Euler(0f, yaw * Mathf.Rad2Deg, 0f); } if (cameraController) { var cameraRotation = new CameraController.SetRotationPayload() { x = pitch * Mathf.Rad2Deg, y = 0, z = 0 }; cameraController.SetRotation(JsonUtility.ToJson(cameraRotation)); } } else { OnSetCameraRotation?.Invoke(yaw * Mathf.Rad2Deg, pitch * Mathf.Rad2Deg); } } } }
public IEnumerator OnPointerHoverFeedbackIsDisplayedCorrectly() { IDCLEntity entity; BoxShape shape; shape = TestHelpers.InstantiateEntityWithShape <BoxShape, BoxShape.Model>( scene, DCL.Models.CLASS_ID.BOX_SHAPE, Vector3.zero, out entity, new BoxShape.Model() { }); TestHelpers.SetEntityTransform(scene, entity, new Vector3(8, 2, 10), Quaternion.identity, new Vector3(3, 3, 3)); yield return(shape.routine); var OnPointerDownModel = new OnPointerDown.Model() { type = OnPointerDown.NAME, uuid = "pointerevent-1" }; var component = TestHelpers.EntityComponentCreate <OnPointerDown, OnPointerDown.Model>(scene, entity, OnPointerDownModel, CLASS_ID_COMPONENT.UUID_CALLBACK); Assert.IsTrue(component != null); yield return(null); var cursorController = GameObject.FindObjectOfType <CursorController>(); // Check cursor shows normal sprite Assert.AreEqual(cursorController.cursorImage.sprite, cursorController.normalCursor); DCLCharacterController.i.PauseGravity(); DCLCharacterController.i.SetPosition(new Vector3(8, 1, 7f)); var cameraController = GameObject.FindObjectOfType <CameraController>(); // Rotate camera towards the interactive object var cameraRotationPayload = new CameraController.SetRotationPayload() { x = 45, y = 0, z = 0 }; cameraController.SetRotation(JsonConvert.SerializeObject(cameraRotationPayload, Formatting.None, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })); yield return(null); // Check cursor shows hover sprite Assert.AreEqual(cursorController.cursorImage.sprite, cursorController.hoverCursor); // Rotate the camera away from the interactive object cameraRotationPayload = new CameraController.SetRotationPayload() { x = 0, y = 0, z = 0, cameraTarget = (DCLCharacterController.i.transform.position - entity.gameObject.transform.position) }; cameraController.SetRotation(JsonConvert.SerializeObject(cameraRotationPayload, Formatting.None, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })); yield return(null); // Check cursor shows normal sprite Assert.AreEqual(cursorController.cursorImage.sprite, cursorController.normalCursor); DCLCharacterController.i.ResumeGravity(); }
public virtual void OnSetRotation(CameraController.SetRotationPayload payload) { }