public void Tick(float d)
        {
            float h = Input.GetAxis("Mouse X");
            float v = Input.GetAxis("Mouse Y");

            float c_h = Input.GetAxis("RightAxis X");
            float c_v = Input.GetAxis("RightAxis Y");

            float targetSpeed = mouseSpeed;

            changeTargetLeft  = Input.GetKeyUp(KeyCode.V);
            changeTargetRight = Input.GetKeyUp(KeyCode.B);

            if (lockonTarget != null)
            {
                if (lockonTransform == null)
                {
                    lockonTransform        = lockonTarget.GetTarget();
                    states.lockOnTransform = lockonTransform;
                }

                if (Mathf.Abs(c_h) > 0.6f)
                {
                    if (!usedRightAxis)
                    {
                        lockonTransform        = lockonTarget.GetTarget((c_h > 0));
                        states.lockOnTransform = lockonTransform;
                        usedRightAxis          = true;
                    }
                }

                if (changeTargetLeft || changeTargetRight)
                {
                    lockonTransform        = lockonTarget.GetTarget(changeTargetLeft);
                    states.lockOnTransform = lockonTransform;
                }
            }

            if (usedRightAxis)
            {
                if (Mathf.Abs(c_h) < 0.6f)
                {
                    usedRightAxis = false;
                }
            }


            if (c_h != 0 || c_v != 0)
            {
                h           = c_h;
                v           = -c_v;
                targetSpeed = controllerSpeed;
            }

            FollowTarget(d);
            HandleRotations(d, v, h, targetSpeed);
        }
        public void Tick(float d)
        {
            float h = Input.GetAxis("Mouse X");
            float v = Input.GetAxis("Mouse Y");

            float c_h = Input.GetAxis("RightAxis X");
            float c_v = Input.GetAxis("RightAxis Y");

            float targetSpeed = mouseSpeed;

            if (lockOnTarget != null)
            {
                if (lockOnTransform == null)
                {
                    lockOnTransform        = lockOnTarget.GetTarget();
                    states.lockOnTransform = lockOnTransform;
                }
                if (Mathf.Abs(c_h) > 0.6f)
                {
                    if (!usedRightAxis)
                    {
                        if (c_h > 0)
                        {
                            lockOnTransform = lockOnTarget.GetTarget();
                        }
                        else
                        {
                            lockOnTransform = lockOnTarget.GetTarget(true);
                        }
                        states.lockOnTransform = lockOnTransform;
                        usedRightAxis          = true;
                    }
                }
            }

            if (usedRightAxis)
            {
                if (Mathf.Abs(c_h) < 0.6f)
                {
                    usedRightAxis = false;
                }
            }

            if (c_h != 0 || c_v != 0)
            {
                h           = c_h;
                v           = c_v;
                targetSpeed = controllerSpeed;
            }

            FollowTarget(d);
            HandleRotations(d, v, h, targetSpeed);
        }
Exemple #3
0
        public void Tick(float d)
        {
            float h = Input.GetAxis("Mouse X");
            float v = Input.GetAxis("Mouse Y");

            float targetSpeed = mouseSpeed;

            changeTargetLeft  = Input.GetKeyUp(KeyCode.V);
            changeTargetRight = Input.GetKeyUp(KeyCode.B);


            // handle target selection for the camera (lockOnState)
            if (lockOnTarget != null)
            {
                // assigning initial targets (1)
                if (lockOnTransform == null)
                {
                    lockOnTransform        = lockOnTarget.GetTarget();
                    states.lockOnTransform = lockOnTransform;
                }
                // switching between different targets. (2)
                //if (Mathf.Abs (h) > 0.8f) {
                //	 /*because usedRightAxis is always set to false when <0.8
                //	 also, because when we use the right axis, it jumps to (>0.8f) and then falls back down to 0 quickly
                //	thus it will reset the h value and usedRightAxis value to default
                //	 */
                //	if (!usedRightAxis){
                //		lockOnTransform = lockOnTarget.GetTarget ((h > 0));
                //		states.lockOnTransform = lockOnTransform;
                //		usedRightAxis = true;
                //	}
                //}


                if (changeTargetLeft || changeTargetRight)
                {
                    lockOnTransform        = lockOnTarget.GetTarget(changeTargetLeft);
                    states.lockOnTransform = lockOnTransform;
                }
            }

            //// turn off usedRightAxis when it's falling back down to 0 (only when it is active).
            //if (usedRightAxis) {
            //	if (Mathf.Abs (h) < 0.8f)
            //		usedRightAxis = false;
            //}

            FollowTarget(d);
            HandleRotations(d, v, h, targetSpeed);
        }
        public void Tick(float delta)
        {
            float vertical   = Input.GetAxis("Mouse Y");
            float horizontal = Input.GetAxis("Mouse X");

            float targetSpeed = mouseSpeed;

            if (lockOnTarget)
            {
                if (!lockOnTransform)
                {
                    lockOnTransform = lockOnTarget.GetTarget();
                    stateManager.lockOnTransform = lockOnTransform;
                }

                if (Mathf.Abs(horizontal) > 0.6f)
                {
                    if (!moved)
                    {
                        lockOnTransform = lockOnTarget.GetTarget((horizontal > 0));
                        stateManager.lockOnTransform = lockOnTransform;
                        moved = true;
                    }
                }
            }

            if (moved)
            {
                if (Mathf.Abs(horizontal) < 0.6f)
                {
                    moved = false;
                }
            }

            FollowTarget(delta);
            HandleRotations(delta, vertical, horizontal, targetSpeed);
        }