public void AddCamAdjustment(CameraAdjustment c) { if (c.checkState) { for (int i = 0; i < camAdjustments.Count; ++i) { if (c.state == camAdjustments[i].state) { camAdjustments[i].UpdateValues(c); return; } } } camAdjustments.Add(c); }
//public override void OnFixed(StateManager sm) //{ // base.OnFixed(states); // //if (camera != null && Mathf.Abs(cameraAngle) > 0) // //{ // // float angle = 0; // // if (Mathf.Abs(cameraAngle) >= 1.5f) // // { // // angle = 1.5f; // // } // // else if (Mathf.Abs(cameraAngle) >= 0.75f) // // { // // angle = 0.75f; // // } // // else // // { // // angle = Mathf.Abs(cameraAngle); // // } // // camera.AddToYaw(angle * (cameraAngle > 0 ? 1 : -1)); // // cameraAngle -= angle * (cameraAngle > 0 ? 1 : -1); // //} //} void SetCameraAngle(Vector3 prev, Vector3 curr) { //Camera rotations, checking if the camera needs to be repositioned based on where it is relative to the climb angle = Vector3.SignedAngle(prev, curr, Vector3.up); if (angle != 0 && camera != null) { Vector3 cameraForward = camera.transform.forward; cameraForward.y = 0; cameraForward.Normalize(); float a = Vector3.SignedAngle(-cameraForward, curr, Vector3.up); //angle += (angle * 0.1f); CameraAdjustment camState = camera.GetCamAdjustState(states.currentState.name); if (camState != null) { a -= camState.adjustmentValue.y; } if (Mathf.Abs(a) > 45f) { if (camState != null) { a += camState.adjustmentValue.y; } //if (Mathf.Abs(a) > Mathf.Abs(angle)) //{ camera.AddCamAdjustment(new CameraAdjustment(new Vector2(0, a), 1.5f, states.currentState.name)); //cameraAngle += a; //} //else //{ // camera.AddCamAdjustment(new CameraAdjustment(new Vector2(0, angle), 1.5f, states.currentState.name)); // cameraAngle += angle; //} ////Debug.LogError("Adding angle: " + angle + " angle between camera: " + a); } } }
void Start() { _initial = transform.position; //Recording initial transformation. _rb = GetComponent <Rigidbody>(); //Accessing rigidbody component. _cam = FindObjectOfType(typeof(CameraAdjustment)) as CameraAdjustment; //Position view based on gyroscope inputs from CameraAdjustment script. }
public void UpdateValues(CameraAdjustment c) { adjustmentValue.x = c.adjustmentValue.x; adjustmentValue.y = c.adjustmentValue.y; speed = c.speed; }