Example #1
0
    private void UpdatePlayer()
    {
        float      best_player_val = 0f;
        GameObject best_player     = null;
        Vector3    camera_pos      = CameraManager.Get().m_MainCamera.transform.position;
        Vector3    camera_fwd      = CameraManager.Get().m_MainCamera.transform.forward;

        ReplTools.ForEachLogicalPlayer(delegate(ReplicatedLogicalPlayer player)
        {
            float proportionalClamp  = CJTools.Math.GetProportionalClamp(0f, 1f, player.transform.position.Distance(camera_pos), this.m_VisibleDistance, 2f);
            float proportionalClamp2 = CJTools.Math.GetProportionalClamp(0f, 1f, Vector3.Dot(camera_fwd, (this.GetPlayerHeadPos(player.gameObject) - camera_pos).normalized), 0.7f, 1f);
            float num = proportionalClamp * proportionalClamp2;
            if (num > best_player_val)
            {
                best_player_val = num;
                best_player     = player.gameObject;
            }
        }, ReplTools.EPeerType.Remote);
        if (best_player != this.m_Player)
        {
            this.m_Player = best_player;
            this.OnPlayerChanged();
        }
    }