コード例 #1
0
    // Update is called once per frame
    void LateUpdate()
    {
        switch (m_state)
        {
        case Feature.Move:
            ProgressiveMovement.Move(ref m_cameraData, trackPos);
            break;

        case Feature.Track:
        {
            if (m_player != null)
            {
                PositionTracking.Tracking(ref m_cameraData, m_player.transform.position);
            }
            break;
        }

        case Feature.ZoomAmount:
            Zooming.ZoomInOutAmount(ref m_cameraData);
            break;

        case Feature.ZoomTime:
            Zooming.ZoomInOutTime(ref m_cameraData);
            break;

        case Feature.ZoomPosition:
            Zooming.ZoomInOutPosition(ref m_cameraData, trackPos);
            break;

        default:
            break;
        }
        transform.position = m_cameraData.GetPosition();
    }
コード例 #2
0
    public static void ZoomInOutPosition(ref CameraData t_data, Vector3 t_position)
    {
        float distance = Globals.Magnitude(t_data.GetPosition() - t_position);
        float time     = distance / t_data.GetInitialSpeed();

        t_data.SetTimeForZoom(time);

        ProgressiveMovement.Move(ref t_data, t_position);
        ZoomInOutTime(ref t_data);
    }