Example #1
0
        private void RotateToAngle(NeckTypeStateVer2 param, int boneNum, NeckObjectVer2 bone)
        {
            var delta = new Vector2();

            delta.x = Mathf.DeltaAngle(0f, bone.neckBone.localEulerAngles.x);
            delta.y = Mathf.DeltaAngle(0f, bone.neckBone.localEulerAngles.y);
            angle  += delta;

            float x, y;

            if (TogglePOV.ClampRotation.Value)
            {
                var neckParam = param.aParam[boneNum];
                y = Mathf.Clamp(angle.y, neckParam.minBendingAngle, neckParam.maxBendingAngle);
                x = Mathf.Clamp(angle.x, neckParam.upBendingAngle, neckParam.downBendingAngle);
            }
            else
            {
                y = angle.y;
                x = angle.x;
            }

            angle -= new Vector2(x, y);
            float z = bone.neckBone.localEulerAngles.z;

            bone.neckBone.localRotation = Quaternion.Euler(x, y, z);
        }
Example #2
0
        private void RotateToAngle(NeckTypeStateVer2 param, int boneNum, NeckObjectVer2 bone)
        {
            Vector2 b = default(Vector2);

            b.x    = Mathf.DeltaAngle(0f, bone.neckBone.localEulerAngles.x);
            b.y    = Mathf.DeltaAngle(0f, bone.neckBone.localEulerAngles.y);
            angle += b;

            float x, y;

            if (clampRotation)
            {
                y = Mathf.Clamp(angle.y, param.aParam[boneNum].minBendingAngle, param.aParam[boneNum].maxBendingAngle);
                x = Mathf.Clamp(angle.x, param.aParam[boneNum].upBendingAngle, param.aParam[boneNum].downBendingAngle);
            }
            else
            {
                y = angle.y;
                x = angle.x;
            }

            angle -= new Vector2(x, y);
            float z = bone.neckBone.localEulerAngles.z;

            bone.neckBone.localRotation = Quaternion.Euler(x, y, z);
        }
Example #3
0
        private void UpdateCamera()
        {
            if (leftEye == null || rightEye == null)
            {
                Restore();
                return;
            }

            if (!CameraEnabled)
            {
                if (Input.GetMouseButton(1))
                {
                    GameCursor.Instance.SetCursorLock(true);
                    currentfov = Mathf.Clamp(currentfov + Input.GetAxis("Mouse X") * Time.deltaTime * 30f, 1f, MAXFOV);
                }
                else if (Input.GetMouseButton(0) && DragManager.allowCamera)
                {
                    GameCursor.Instance.SetCursorLock(true);
                    float rateaddspeed = 2.5f;
                    float num          = Input.GetAxis("Mouse X") * rateaddspeed;
                    float num2         = Input.GetAxis("Mouse Y") * rateaddspeed;
                    rot += new Vector2(-num2, num) * new Vector2(sensitivityX, sensitivityY).magnitude;
                }
                else
                {
                    GameCursor.Instance.SetCursorLock(false);
                }
            }

            if (Input.GetKeyDown(KeyCode.Semicolon))
            {
                currentfov = TogglePOV.DefaultFov.Value;
            }

            if (Input.GetKey(KeyCode.Equals))
            {
                currentfov = Mathf.Max(currentfov - Time.deltaTime * 15f, 1f);
            }
            else if (Input.GetKey(KeyCode.RightBracket))
            {
                currentfov = Mathf.Min(currentfov + Time.deltaTime * 15f, 100f);
            }

            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                offset = Mathf.Min(offset + 0.0005f, 2f);

                if (currentBody.sex == 0)
                {
                    MALE_OFFSET = offset;
                }
                else
                {
                    FEMALE_OFFSET = offset;
                }
            }
            else if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                offset = Mathf.Max(offset - 0.0005f, -2f);

                if (currentBody.sex == 0)
                {
                    MALE_OFFSET = offset;
                }
                else
                {
                    FEMALE_OFFSET = offset;
                }
            }

            Camera.main.fieldOfView   = currentfov;
            Camera.main.nearClipPlane = nearClip;
            DepthOfField = false;
            Shield       = false;

            NeckLookControllerVer2 neckLookCtrl   = currentBody.neckLookCtrl;
            NeckLookCalcVer2       neckLookScript = neckLookCtrl.neckLookScript;
            NeckTypeStateVer2      param          = neckLookScript.neckTypeStates[neckLookCtrl.ptnNo];

            angle = new Vector2(rot.x, rot.y);
            for (int i = neckLookScript.aBones.Length - 1; i > -1; i--)
            {
                NeckObjectVer2 bone = neckLookScript.aBones[i];
                RotateToAngle(param, i, bone);
            }
        }