예제 #1
0
            private static void Postfix(SpectatorCam __instance)
            {
                if (AudicaMod.camOK)
                {
                    Camera thirdPersonCam = AudicaMod.spectatorCam.cam;

                    if (!AudicaMod.isMouseAwake)
                    {
                        AudicaMod.MouseAwake();
                    }

                    if (Input.GetKey(KeyCode.W))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position + thirdPersonCam.gameObject.transform.forward;
                    }

                    if (Input.GetKey(KeyCode.S))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position - thirdPersonCam.gameObject.transform.forward;
                    }

                    if (Input.GetKey(KeyCode.A))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position - thirdPersonCam.gameObject.transform.right;
                    }

                    if (Input.GetKey(KeyCode.D))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position + thirdPersonCam.gameObject.transform.right;
                    }

                    if (Input.GetKey(KeyCode.Space))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position + thirdPersonCam.gameObject.transform.up;
                    }

                    if (Input.GetKey(KeyCode.C))
                    {
                        thirdPersonCam.gameObject.transform.position = thirdPersonCam.gameObject.transform.position - thirdPersonCam.gameObject.transform.up;
                    }

                    if (Input.GetKey(KeyCode.Mouse1))
                    {
                        float MIN_X = 0.0f;
                        float MAX_X = 360.0f;
                        float MIN_Y = -90.0f;
                        float MAX_Y = 90.0f;

                        AudicaMod.xAxis += Input.GetAxis("Mouse X") * (AudicaMod.mouseSensitivity * Time.deltaTime);

                        /*
                         * if (xAxis < MIN_X) xAxis = MIN_X;
                         * else if (xAxis > MAX_X) xAxis = MAX_X;
                         */

                        AudicaMod.yAxis -= Input.GetAxis("Mouse Y") * (AudicaMod.mouseSensitivity * Time.deltaTime);

                        /*
                         * if (yAxis < MIN_Y) yAxis = MIN_Y;
                         * else if (yAxis > MAX_Y) yAxis = MAX_Y;
                         */

                        thirdPersonCam.gameObject.transform.rotation = Quaternion.Euler(AudicaMod.yAxis, AudicaMod.xAxis, 0.0f);
                    }

                    if (Input.GetKey(KeyCode.Z))
                    {
                        Vector3 euler = thirdPersonCam.gameObject.transform.rotation.eulerAngles;
                        thirdPersonCam.gameObject.transform.rotation = Quaternion.Euler(euler.y, euler.x, euler.z + 1.0f);
                    }

                    if (Input.GetKey(KeyCode.X))
                    {
                        Vector3 euler = thirdPersonCam.gameObject.transform.rotation.eulerAngles;
                        thirdPersonCam.gameObject.transform.rotation = Quaternion.Euler(euler.y, euler.x, euler.z - 1.0f);
                    }
                }
            }