Beispiel #1
0
    public void AppliedTrapezoidConfigurationGUI()
    {
        if (Application.isPlaying)
        {
            UnityPlayerManagement.TrapezoidsPair configuration = UnityPlayerManagement.GetAppliedTrapezoidsConfiguration();
            if (configuration == null)
            {
                return;
            }

            EditorGUILayout.Separator();
            m_currentTrapezoidConfigurationFoldoutInfo = EditorGUIUtils.ObjectGUI(configuration, "Current Trapezoid Configuration", true, 2, m_currentTrapezoidConfigurationFoldoutInfo);
        }
    }
Beispiel #2
0
    /// <summary>
    /// compute the screen position for a world 3d position
    /// </summary>
    /// <param name="worldPosition">the world point to map to screen</param>
    /// <returns>screen position corresponding to worldPosition</returns>
    Vector2 WorldToScreenProjection(Vector3 worldPosition)
    {
        UnityPlayerManagement.TrapezoidsPair trapezoidConfiguration = UnityPlayerManagement.GetAppliedTrapezoidsConfiguration();
        if (trapezoidConfiguration == null)
        {
            return(Vector2.zero);
        }
        UnityPlayerManagement.TrapezoidDefinition worldTrapezoid = trapezoidConfiguration.innerTrapezoid;

        Vector2 normalizedPosition = GetNormalizedTrapezoidPosition(worldTrapezoid, worldPosition);

        normalizedPosition.x = Mathf.Clamp(normalizedPosition.x, -1 - m_boundarySize, 1 + m_boundarySize);
        normalizedPosition.y = Mathf.Clamp(normalizedPosition.y, -m_boundarySize, 1 + m_boundarySize);

        Vector2 projectedPosition = ProjectNormalizedPosition(m_screenTrapezoid, normalizedPosition);

        projectedPosition.x += m_screenCoordinates.width / 2;

        return(projectedPosition);
    }