コード例 #1
0
    // Use this for initialization
    private void Awake()
    {
        g_instance = this;

        PlayerSelectGesture   = m_selectPlayerGesture;
        PlayerUnselectGesture = m_unselectPlayerGesture;
        if (g_playerSelectionStrategiesInstances[m_lastPlayerSelectionStrategy] != null)
        {
            g_playerSelectionStrategiesInstances[m_lastPlayerSelectionStrategy].ExpectedPlayersCount = m_expectedPlayersCount;
        }
        if (g_pointerSelectionStrategiesInstances[m_lastPointerSelectionStrategy] != null)
        {
            g_pointerSelectionStrategiesInstances[m_lastPointerSelectionStrategy].ExpectedPlayersCount = m_expectedPointerControllersCount;
        }
        BeckonManager.BeckonInstance.PlayerSelection.SetPointerSelectionStrategy(g_pointerSelectionStrategiesInstances[m_lastPointerSelectionStrategy]);
        BeckonManager.BeckonInstance.PlayerSelection.SetPlayerSelectionStrategy(g_playerSelectionStrategiesInstances[m_lastPlayerSelectionStrategy]);
        BeckonManager.BeckonInstance.PlayerSelection.RemoveBadPositionDuration = m_removeBadPositionDuration;
        BeckonManager.BeckonInstance.PlayerSelection.RemoveNoPositionDuration  = m_removeNoPositionDuration;
        m_innerTrapezoid = new WarningTrapezoidCondition(CurrentTrapezoidsConfiguration.innerTrapezoid.nearWidth,
                                                         CurrentTrapezoidsConfiguration.innerTrapezoid.farWidth,
                                                         CurrentTrapezoidsConfiguration.innerTrapezoid.nearPlane,
                                                         CurrentTrapezoidsConfiguration.innerTrapezoid.farPlane);
        m_outerTrapezoid = new BadTrapezoidCondition(CurrentTrapezoidsConfiguration.outerTrapezoid.nearWidth,
                                                     CurrentTrapezoidsConfiguration.outerTrapezoid.farWidth,
                                                     CurrentTrapezoidsConfiguration.outerTrapezoid.nearPlane,
                                                     CurrentTrapezoidsConfiguration.outerTrapezoid.farPlane);
        m_occlusionCondition = new OccludedCondition();
        BeckonManager.BeckonInstance.PersonMonitor.SetPositionCondition(m_innerTrapezoidConditionName, m_innerTrapezoid);
        BeckonManager.BeckonInstance.PersonMonitor.SetPositionCondition(m_outerTrapezoidConditionName, m_outerTrapezoid);
        BeckonManager.BeckonInstance.PersonMonitor.SetPositionCondition(m_occlusionConditionName, m_occlusionCondition);
    }
コード例 #2
0
    void Awake()
    {
        m_alternateTexture = new Texture2D(1, 1);
        m_alternateTexture.SetPixel(0, 0, Color.white);
        m_alternateTexture.Apply();
        m_playerRectStyle = new GUIStyle();
        m_playerRectStyle.normal.background = m_alternateTexture;

        if (UnityPlayerManagement.GetAppliedTrapezoidsConfiguration() == null)
        {
            Debug.LogWarning("Trying to use Trapezoid radar without definition of trapezoids");
        }
    }
コード例 #3
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);
        }
    }
コード例 #4
0
    private void OnEnable()
    {
        editedPlayerManagement               = target as UnityPlayerManagement;
        m_trapezoidConfigurations            = serializedObject.FindProperty("m_trapezoidConfigurations");
        m_currentTrapezoidConfigurationIndex = serializedObject.FindProperty("m_currentTrapezoidConfigurationIndex");
        m_indexingScheme = serializedObject.FindProperty("m_indexingScheme");
        m_lastPlayerSelectionStrategy     = serializedObject.FindProperty("m_lastPlayerSelectionStrategy");
        m_lastPointerSelectionStrategy    = serializedObject.FindProperty("m_lastPointerSelectionStrategy");
        m_selectPlayerGesture             = serializedObject.FindProperty("m_selectPlayerGesture");
        m_unselectPlayerGesture           = serializedObject.FindProperty("m_unselectPlayerGesture");
        m_expectedPlayersCount            = serializedObject.FindProperty("m_expectedPlayersCount");
        m_expectedPointerControllersCount = serializedObject.FindProperty("m_expectedPointerControllersCount");
        m_removeNoPositionDuration        = serializedObject.FindProperty("m_removeNoPositionDuration");
        m_removeBadPositionDuration       = serializedObject.FindProperty("m_removeBadPositionDuration");

        m_lastSerializedObject            = new SerializedObject(target);
        m_lastTrapezoidConfigurations     = m_lastSerializedObject.FindProperty("m_trapezoidConfigurations");
        m_lastTrapezoidConfigurtaionIndex = m_lastSerializedObject.FindProperty("m_currentTrapezoidConfigurationIndex");
    }
コード例 #5
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);
    }