Exemple #1
0
 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);
                }
            }
        }
Exemple #3
0
 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.
 }
Exemple #4
0
 public void UpdateValues(CameraAdjustment c)
 {
     adjustmentValue.x = c.adjustmentValue.x;
     adjustmentValue.y = c.adjustmentValue.y;
     speed             = c.speed;
 }