예제 #1
0
    void FollowRotationOf(GameObject obj)
    {
        if (obj)
        {
            Vector3 objRot = Vector3.zero;

            if (targetView.GetRotateAlongX() || im.IsGrounded)  //also follow x rotation of the car is on the ground
            {
                rotX = obj.transform.rotation.eulerAngles.x;
            }
            else                                                // if not on ground lerp the x rotation back to 0/360 for easy view
            {
                if (rotX < 180)
                {
                    rotX = LerpFloatToX(rotX, 0);
                }
                else
                {
                    rotX = LerpFloatToX(rotX, 360);
                }
            }
            if (targetView.GetRotateAlongY())
            {
                rotY = obj.transform.rotation.eulerAngles.y;
            }
            else
            {
                if (rotY < 180)
                {
                    rotY = LerpFloatToX(rotY, 0);
                }
                else
                {
                    rotY = LerpFloatToX(rotY, 360);
                }
            }
            if (targetView.GetRotateAlongZ())
            {
                rotZ = obj.transform.rotation.eulerAngles.z;
            }
            else
            {
                if (rotZ < 180)
                {
                    rotZ = LerpFloatToX(rotZ, 0);
                }
                else
                {
                    rotZ = LerpFloatToX(rotZ, 360);
                }
            }
            objRot = new Vector3(rotX, rotY, rotZ);


            newQuat.eulerAngles = objRot;
            transform.rotation  = newQuat;
        }
    }