// 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); }
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"); } }
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); } }
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"); }
/// <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); }