示例#1
0
    /// <summary>
    /// draw a specific person
    /// </summary>
    /// <param name="personIndex">the person to draw</param>
    /// <param name="state">the person state</param>
    void DrawPerson(uint personIndex, PlayerSelection.PersonIDState state)
    {
        OmekFramework.Common.BasicTypes.SpaceTypes.Vector3 personPositionFrmk;
        BeckonData.Persons[personIndex].CenterOfMass3D.Get(out personPositionFrmk);
        Vector3 personPosition     = UnityConverter.ToUnity(personPositionFrmk);
        Vector2 screenPosition     = WorldToScreenProjection(personPosition);
        int     playerRectHalfSize = m_personRectSize / 2;

        if (UnityPlayerColorThemes.Instance != null)
        {
            GUI.color = UnityPlayerColorThemes.Instance.GetPlayerColorTheme((int)personIndex).m_radar;
        }
        else
        {
            GUI.color = BeckonManager.BeckonInstance.PersonProperties.GetPropertyOfPerson <Color32>(personIndex, m_radarColors, UnityPlayerManagement.IndexingScheme);
        }
        Rect playerRect = new Rect(screenPosition.x - playerRectHalfSize, screenPosition.y - playerRectHalfSize, m_personRectSize, m_personRectSize);

        if (m_personTexture != null)
        {
            GUI.DrawTexture(playerRect, m_personTexture, ScaleMode.ScaleToFit, true);
        }
        else
        {
            GUI.Label(playerRect, "", m_playerRectStyle);
        }
    }
示例#2
0
 /// <summary>
 /// check is a person should be drawn
 /// </summary>
 /// <param name="personIndex">the person index</param>
 /// <param name="state">the person state</param>
 /// <returns>true iff the person should be drawn</returns>
 bool ShouldDrawPerson(uint personIndex, PlayerSelection.PersonIDState state)
 {
     if (state == PlayerSelection.PersonIDState.NonPlayer && m_showNonPlayers == true)
     {
         return(true);
     }
     else if (m_personsToShow == null || m_personsToShow.Count == 0 || m_personsToShow.Contains((int)personIndex))
     {
         return(true);
     }
     return(false);
 }
示例#3
0
    /// <summary>
    /// set Material and color according to person type
    /// </summary>
    /// <param name="playerMaskParam">contianig the playermask data</param>
    private void UpdatePlayerMaskState(PlayerMaskParams playerMaskParam)
    {
        PlayerSelection.PersonIDState state = BeckonManager.BeckonInstance.PlayerSelection.GetPersonIDState((int)playerMaskParam.personIndex);
        //State state = GetPersonState(playerMaskParam.personIndex);
        if (state != playerMaskParam.state)
        {
            playerMaskParam.state = state;

            if (playerMaskParam.playerMaskObj.renderer != null)
            {
                switch (state)
                {
                case PlayerSelection.PersonIDState.NonPlayer:
                    if (m_nonPlayerMaterial != null)
                    {
                        playerMaskParam.playerMaskObj.renderer.material = m_nonPlayerMaterial;
                    }

                    break;

                case PlayerSelection.PersonIDState.Player:
                    if (m_playerMaterial != null)
                    {
                        playerMaskParam.playerMaskObj.renderer.material = m_playerMaterial;
                    }
                    break;

                case PlayerSelection.PersonIDState.PointerControllingPlayer:
                    if (m_cursorControlingPlayerMaterial != null)
                    {
                        playerMaskParam.playerMaskObj.renderer.material = m_cursorControlingPlayerMaterial;
                    }
                    break;
                }
            }
        }
        Color32 colorAssignment;

        if (UnityPlayerColorThemes.Instance != null)
        {
            colorAssignment = UnityPlayerColorThemes.Instance.GetPlayerColorTheme((int)playerMaskParam.personIndex).m_mask;
        }
        else
        {
            colorAssignment = BeckonManager.BeckonInstance.PersonProperties.GetPropertyOfPerson <Color32>(playerMaskParam.personIndex, m_maskColors, UnityPlayerManagement.IndexingScheme);
        }


        if (playerMaskParam.playerMask != null)
        {
            playerMaskParam.playerMask.maskColor = colorAssignment;
        }
        else
        {
            playerMaskParam.OnGUIPlayerMask.maskColor = colorAssignment;
        }
        if (playerMaskParam.playerMaskObj.renderer != null && m_TintPlayerMasksColors)
        {
            playerMaskParam.playerMaskObj.renderer.material.color = colorAssignment;
        }
    }