private static void SetTransform(ConfigJson configJson, GameObject go)
    {
        Vector3 pos = go.transform.position;

        go.transform.position = Vector3.zero;
        go.transform.rotation = Quaternion.identity;
        PerspectiveMode perspectiveMode = configJson.m_ModelConfig.m_PerspectiveMode;

        switch (perspectiveMode.m_CaululateType)
        {
        case CalculateModelNativePos.CalculateType.FullScreen:
        case CalculateModelNativePos.CalculateType.Real:
            pos = CalculateModelNativePos.Calculate(go.transform, perspectiveMode.m_CalculateCamera, go.transform.position, perspectiveMode.m_CaululateType);
            break;

        case CalculateModelNativePos.CalculateType.Node:
            Transform node = go.transform.Find(perspectiveMode.m_CalculateChildPath);
            if (node == null)
            {
                node = go.transform;
            }
            pos = CalculateModelNativePos.Calculate(node, perspectiveMode.m_CalculateCamera, go.transform.position, perspectiveMode.m_CaululateType);
            break;

        default:
            break;
        }
        go.transform.position = pos;
    }
 private void Awake()
 {
     currentPerspective = PerspectiveMode.Outside;
     togglePerspective  = false;
     transitionSlider   = 0f;
     transform.position = OuterPosition;
     startingRotation   = transform.rotation;
 }
Ejemplo n.º 3
0
    void TogglePerspective()
    {
        GameManager.scene.player_squad_control.OrderFinished();

        perspective = perspective == PerspectiveMode.FPS ?
                      PerspectiveMode.TACTICAL : PerspectiveMode.FPS;

        UpdatePerspectives();
    }
    private void ChangePerspective()
    {
        // If toggle perspective is FALSE, do not do anything.
        if (!togglePerspective)
        {
            return;
        }


        // If toggle perspective is TRUE and transitioning is FALSE, then begin transition.
        if (togglePerspective && !transitioning)
        {
            transitioning = true;
        }


        // Currently Outside: transition to over-shoulder.
        // slider currently = 0. ADD.
        if (currentPerspective == PerspectiveMode.Outside && transitioning)
        {
            // Move camera via slider
            transitionSlider += Time.deltaTime * transitionSpeed;

            // Once completely moved, change camera state and stop transitioning.
            if (transitionSlider >= 1)
            {
                currentPerspective = PerspectiveMode.OverShoulder;
                transitioning      = false;
                togglePerspective  = false;
            }
        }

        // Currently OverShoulder: transition to outside.
        // slider currently = 1. SUBTRACT.
        if (currentPerspective == PerspectiveMode.OverShoulder && transitioning)
        {
            // Move camera via slider
            transitionSlider -= Time.deltaTime * transitionSpeed;

            // Once completely moved, change camera state and stop transitioning.
            if (transitionSlider <= 0)
            {
                currentPerspective = PerspectiveMode.Outside;
                transitioning      = false;
                togglePerspective  = false;
            }
        }

        // Move the camera
        transform.position = Vector3.Lerp(OuterPosition, OverShoulderPosition, transitionSlider);

        // Rotate the camera
        transform.rotation = Quaternion.Lerp(startingRotation, OverShoulderTarget.rotation, transitionSlider);
    }
Ejemplo n.º 5
0
 void Start()
 {
     perspective = starting_perspective;
     UpdatePerspectives();
 }