Ejemplo n.º 1
0
 public void GoPlayerMode(Player p)
 {
     this.camMode = CamMode.Player;
     this.transform.SetParent (p.transform, true);
     this.transform.localPosition = Vector3.zero + Vector3.up * 0.8f;
     this.transform.localRotation = Quaternion.identity;
 }
Ejemplo n.º 2
0
 public void GoAirCraftMode(AirCraft a)
 {
     this.camMode = CamMode.AirCraft;
     this.transform.SetParent (null, true);
     this.aircraft = a.transform;
     this.target = a.CamTarget;
 }
Ejemplo n.º 3
0
    void UpdateCameraCursor()
    {
        if (null == m_Controller)
        {
            return;
        }

        CamMode camMode = m_Controller.currentMode;

        if (null == camMode)
        {
            return;
        }

        //bool isFirstPerson = camMode is CameraFirstPerson;

        if ((camMode.m_Tag & 1) == 0)
        {
            return;
        }

        if (UIStateMgr.Instance != null)
        {
            camMode.m_LockCursor = !UIStateMgr.Instance.CurShowGui;
            camMode.m_ShowTarget = !UIStateMgr.Instance.CurShowGui;
        }
    }
Ejemplo n.º 4
0
 private CaptureBehaviourBase GetCaptureBehaviourByMode(CamMode mode)
 {
     if (mode == CamMode.PhotoMode)
     {
         NRCaptureBehaviour capture = GameObject.FindObjectOfType <NRCaptureBehaviour>();
         var headParent             = NRSessionManager.Instance.NRSessionBehaviour.transform.parent;
         if (capture == null)
         {
             capture = GameObject.Instantiate(Resources.Load <NRCaptureBehaviour>("Record/Prefabs/NRCaptureBehaviour"), headParent);
         }
         GameObject.DontDestroyOnLoad(capture.gameObject);
         return(capture);
     }
     else if (mode == CamMode.VideoMode)
     {
         NRRecordBehaviour capture = GameObject.FindObjectOfType <NRRecordBehaviour>();
         var headParent            = NRSessionManager.Instance.NRSessionBehaviour.transform.parent;
         if (capture == null)
         {
             capture = GameObject.Instantiate(Resources.Load <NRRecordBehaviour>("Record/Prefabs/NRRecorderBehaviour"), headParent);
         }
         GameObject.DontDestroyOnLoad(capture.gameObject);
         return(capture);
     }
     else
     {
         throw new Exception("CamMode need to be set correctly for capture behaviour!");
     }
 }
Ejemplo n.º 5
0
 public void SetRaceMode()
 {
     camDistance       = DISTANCE_FARCAM;
     camHeight         = HEIGHT_FARCAM;
     currentCameraMode = CamMode.FarCam;
     camRaceMode       = true;
 }
Ejemplo n.º 6
0
    void ChangeCameraMode()
    {
        switch (currentCameraMode)
        {
        case CamMode.FarCam:
        {
            camHeight         = HEIGHT_CLOSECAM;
            camDistance       = DISTANCE_CLOSECAM;
            currentCameraMode = CamMode.CloseCam;
            break;
        }

        case CamMode.CloseCam:
        {
            camHeight         = 0;
            camDistance       = 0;
            currentCameraMode = CamMode.FirstPerson;
            break;
        }

        case CamMode.FirstPerson:
        {
            camHeight         = HEIGHT_FARCAM;
            camDistance       = DISTANCE_FARCAM;
            currentCameraMode = CamMode.FarCam;
            LookAtTarget();
            camDegreeTemp = camDegree;
            SphericalPositionLock();
            break;
        }
        }
    }
 public void changeCameraType()
 {
     prevSeparation = separation;
     previospos     = transform.position;
     previosYAngle  = angle;
     previousXAngle = rotationAngle;
     timer          = 0;
     rotTimer       = 0;
     if (cameraMode == CamMode.FPS)
     {
         Camera.main.nearClipPlane = -30f;
         cameraMode = CamMode.ISO;
         Camera.main.orthographic = true;
         targetYAngle             = 30;
         targetXAngle             = 0.75f;
         targetSeparation         = isoSeparation;
     }
     else if (cameraMode == CamMode.ISO)
     {
         Camera.main.nearClipPlane = 0.01f;
         cameraMode = CamMode.FPS;
         Camera.main.orthographic = false;
         targetYAngle             = 20;
         targetXAngle             = 0;
         targetSeparation         = fpsSeparation;
     }
 }
Ejemplo n.º 8
0
    public void SetCamTo(CamMode c, int who = 0)
    {
        if (c == CamMode.Field)
        {
            cam.transform.position    = new Vector3(-.5f, 20, -.5f);
            cam.transform.eulerAngles = new Vector3(90, 0, 0);
            cam.orthographic          = true;

            camMode = CamMode.Field;
        }
        else if (c == CamMode.Topdown)
        {
            Vector3 p = fighter[who].obj.transform.position;

            cam.transform.position = new Vector3(p.x, p.y + 7.5f, p.z);
            cam.transform.LookAt(fighter[who].obj.transform);
            cam.orthographic = false;

            camMode = CamMode.Topdown;
        }
        else if (c == CamMode.Isometric)
        {
            Vector3 p = fighter[who].obj.transform.position;

            cam.transform.position = new Vector3(p.x - (zoomUnit.x * zoom), p.y + (zoomUnit.y * zoom), p.z - (zoomUnit.z * zoom));
            cam.transform.LookAt(fighter[who].obj.transform);
            cam.orthographic = false;

            camMode = CamMode.Isometric;
        }
        else if (c == CamMode.Action)
        {
            Vector3 p = fighter[who].obj.transform.position;
            Vector3 o = fighter[who].opp.obj.transform.position;

            Vector3 add = (fC.areInBattle ? fighter[who].obj.transform.right : Vector3.zero);

            cam.transform.position = p + (p - o).normalized + Vector3.up + add;
            cam.transform.LookAt(fighter[who].opp.obj.transform);
            cam.orthographic = false;
            cam.fieldOfView  = (fC.areInBattle ? 45 : 60);

            camMode = CamMode.Action;
        }
        else if (c == CamMode.IsoAction)
        {
            Vector3 p = fighter[who].obj.transform.position;
            Vector3 o = fighter[who].opp.obj.transform.position;

            Vector3 a = p + (p - o).normalized + Vector3.up + fighter[who].obj.transform.right;
            Vector3 b = new Vector3(p.x - (zoomUnit.x * zoom), p.y + (zoomUnit.y * zoom), p.z - (zoomUnit.z * zoom));

            cam.transform.position = fC.areInBattle ? a : b;
            cam.transform.LookAt(fC.areInBattle ? fighter[who].opp.obj.transform : fighter[who].obj.transform);
            cam.orthographic = false;
            cam.fieldOfView  = (fC.areInBattle ? 60 : 60);

            camMode = CamMode.IsoAction;
        }
    }
    IEnumerator PickupRoutine()
    {
        if (isAiming)
        {
            ToggleAim();
        }

        Quaternion lastRot = cam.transform.localRotation;

        camMode = CamMode.fpsActionCam;

        cam.enabled = false;
        fpsactioncam.transform.localPosition = fpsactioncam.transform.InverseTransformPoint(cam.transform.position);
        fpsactioncam.transform.localRotation = cam.transform.localRotation * Quaternion.Euler(new Vector3(-14f, 0f, 0f));
        fpsactioncam.enabled = true;
        camMoving            = true;

        yield return(new WaitForSeconds(1.0f));

        camMode = CamMode.mainCam;

        fpsactioncam.enabled        = false;
        cam.transform.localPosition = cam.transform.InverseTransformPoint(fpsactioncam.transform.position);
        cam.transform.localRotation = lastRot;
        cam.enabled = true;
        camMoving   = true;
    }
Ejemplo n.º 10
0
 public void GoPlayerMode(Player p)
 {
     this.camMode = CamMode.Player;
     this.transform.SetParent(p.transform, true);
     this.transform.localPosition = Vector3.zero + Vector3.up * 0.8f;
     this.transform.localRotation = Quaternion.identity;
 }
Ejemplo n.º 11
0
 public void GoAirCraftMode(AirCraft a)
 {
     this.camMode = CamMode.AirCraft;
     this.transform.SetParent(null, true);
     this.aircraft = a.transform;
     this.target   = a.CamTarget;
 }
Ejemplo n.º 12
0
	void Start () {

        movingDir = Vector3.MoveTowards(cam[0].transform.localPosition, targetPosition, speed * Time.deltaTime);
        targetPosition = new Vector3(cam[1].transform.position.x,cam[1].transform.position.y,cam[1].transform.position.z);
        toggleCamera = false;
        camMode = CamMode.Noraml;    
	}
Ejemplo n.º 13
0
        private void RePlayMedia(CamMode cm, string url)
        {
            LogHelper.WriteLog(cm + " stream will be restarting, path:" + url);

            multiPlayer[cm].SetLibPath(AIThermometerAPP.Instance().AppPath());
            if (url == "")
            {
                multiPlayer[cm].SetMode(cm);
            }
            multiPlayer[cm].Init();
            LogHelper.WriteLog("first start " + cm + " rstp, value=" + multiPlayer[cm].GetPath());
            multiPlayer[cm].Player().OnMediaPlayerBuffering(0.02f);
            multiPlayer[cm].Player().Play(new Uri(multiPlayer[cm].GetPath()));
            multiPlayer[cm].Player().GetMedia().TrackID     = multiPlayer[cm].GetPath();
            multiPlayer[cm].Player().GetMedia().TrackNumber = multiPlayer[cm].GetMode().ToString();
            multiPlayer[cm].Player().Playing          += playing;
            multiPlayer[cm].Player().Buffering        += buffering;
            multiPlayer[cm].Player().EncounteredError += StreamError;
            RefreshView();


            /*
             * if (cm == CamMode.IR)
             * {
             *  //multiPlayer[cm].Player().EncounteredError += StreamError;
             *  multiPlayer[cm].Player().Buffering += buffering;
             *  //multiPlayer[cm].Player().Stopped += StreamError;
             * }
             * //else
             *  //multiPlayer[cm].Player().Stopped += StreamError;
             */
        }
Ejemplo n.º 14
0
 public VlcCamera(string _name, string _path, string _lib_path, CamMode _mode = CamMode.NONE)
 {
     this.name     = _name;
     this.path     = _path;
     this.lib_path = _lib_path;
     this.mode     = _mode;
 }
Ejemplo n.º 15
0
    /// <summary>
    /// Toggles the camera from top to follow
    /// </summary>
    public void ToggleCamera()
    {
        int enumL = System.Enum.GetValues(typeof(CamMode)).Length - 1;

        Camy         = (Camy != (CamMode)enumL ? Camy += 1 : (CamMode)0);
        camButt.text = Camy.ToString();
    }
Ejemplo n.º 16
0
    void Update()
    {
        if (tilted != null && topDown != null)
        {
            if (Input.GetKeyDown(KeyCode.C))
            {
                if (camMode == CamMode.tilted)
                {
                    camMode = CamMode.topDown;
                }
                else
                {
                    camMode = CamMode.tilted;
                }
            }

            if (camMode == CamMode.tilted)
            {
                tilted.enabled  = true;
                topDown.enabled = false;
            }
            if (camMode == CamMode.topDown)
            {
                tilted.enabled  = false;
                topDown.enabled = true;
            }
        }
    }
Ejemplo n.º 17
0
 public void RemoveCamMode(CamMode mode)
 {
     if (null == mode)
     {
         return;
     }
     GameObject.Destroy(mode.gameObject);
 }
Ejemplo n.º 18
0
	void Update () {

        if (Input.GetKeyDown(KeyCode.C)) {
            toggleCamera = !toggleCamera;   
        }

        camMode = (toggleCamera) ? CamMode.Stealth : CamMode.Noraml;

    }
Ejemplo n.º 19
0
    public void RemoveMode(string mode_name)
    {
        CamMode mode = FindMode(mode_name);

        if (mode != null)
        {
            GameObject.Destroy(mode.gameObject);
        }
    }
        public CameraParameters(CamMode webCamMode, BlendMode mode)
        {
            this.hologramOpacity = 1f;
            this.frameRate = 20;

            this.cameraResolutionWidth = NRRgbCamera.Resolution.width;
            this.cameraResolutionHeight = NRRgbCamera.Resolution.height;

            this.pixelFormat = CapturePixelFormat.BGRA32;
            this.blendMode = mode;
        }
        /// <summary>
        /// Method we will call when we want to switch between camera modes
        /// </summary>
        public void SwitchCameraMode()
        {
            ResetCamera();    //Reset the camera.

            currentCamMode++; //Use enum, increase by one. so we are
            //switching between them sequentially

            if ((int)currentCamMode > 1) //if it is greater than 1 set back to 0 the first,
            {
                currentCamMode = 0;
            }
        }
Ejemplo n.º 22
0
        public void Finish(IClientWorldAccessor world)
        {
            HasFinished = true;
            IsRunning   = false;

            _cachedMode.OnPathFinish();
            TempNodes = null;

            _cachedMode         = null;
            CachedInterpolation = null;

            (world as ClientMain).SetField("ShouldRender2DOverlays", _hideGui);
        }
Ejemplo n.º 23
0
 // switch camera modes
 private void CamModeToggle()
 {
     if (Input.GetKeyDown(KeyCode.Tab))
     {
         if (currentCamMode == CamMode.FollowPlayer)
         {
             currentCamMode = CamMode.Overall;
         }
         else
         {
             currentCamMode = CamMode.FollowPlayer;
         }
     }
 }
Ejemplo n.º 24
0
 private IEncoder GetEncoderByMode(CamMode mode)
 {
     if (mode == CamMode.PhotoMode)
     {
         return(new ImageEncoder());
     }
     else if (mode == CamMode.VideoMode)
     {
         return(new VideoEncoder());
     }
     else
     {
         throw new Exception("CamMode need to be set correctly for encoder!");
     }
 }
Ejemplo n.º 25
0
 void Update()
 {
     UpdateDebugTools();
     if (TargetCameraEnable)
     {
         UpdateModes();
         if (m_Modes.Count > 0)
         {
             CamMode mode = m_Modes.Peek();
             if (mode != null)
             {
                 mode.UserInput();
             }
         }
     }
 }
Ejemplo n.º 26
0
 public bool Shot(string save_path, CamMode mode)
 {
     try
     {
         FileInfo file = new FileInfo(save_path);
         if (file.Exists)
         {
             file.Delete();
         }
         multiPlayer[mode].vlcPlayer.SourceProvider.MediaPlayer.TakeSnapshot(file);
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
Ejemplo n.º 27
0
        private void buffering(object sender, EventArgs e)
        {
            var vmp = sender as VlcMediaPlayer;

            //LogHelper.WriteLog("Stream Error Mode : " + vmp.GetMedia().TrackNumber);
            //vmp.Play(new Uri(vmp.GetMedia().TrackID));

            // Get cammode
            try {
                CamMode cm = (CamMode)Enum.Parse(typeof(CamMode), vmp.GetMedia().TrackNumber);
                if (cm == CamMode.NORMAL)
                {
                    LogHelper.WriteLog("Stream buff URL : " + vmp.GetMedia().TrackID);
                    if (normalTimer.ThreadState == ThreadState.Unstarted)
                    {
                        normalTimer.Start();
                    }
                    else if (normalTimer.ThreadState == ThreadState.Suspended)
                    {
                        normalTimer.Resume();
                    }
                }
                else
                {
                    if (irTimer.ThreadState == ThreadState.Unstarted)
                    {
                        irTimer.Start();
                    }
                    else if (irTimer.ThreadState == ThreadState.Suspended)
                    {
                        irTimer.Resume();
                    }
                    //irTimer.Start();
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("buffering error ", ex);
            }
            //RePlayMedia(cm, vmp.GetMedia().TrackID);

            //normalNeedReset
            //LogHelper.WriteLog("[P] - StreamingVideo -  aaaaaaaaa REACHED + " + DateTime.Now);
        }
Ejemplo n.º 28
0
        private void playing(object sender, EventArgs e)
        {
            var vmp = sender as VlcMediaPlayer;
            //LogHelper.WriteLog("Stream Error Mode : " + vmp.GetMedia().TrackNumber);
            //vmp.Play(new Uri(vmp.GetMedia().TrackID));

            // Get cammode
            CamMode cm = (CamMode)Enum.Parse(typeof(CamMode), vmp.GetMedia().TrackNumber);

            if (cm == CamMode.NORMAL)
            {
                LogHelper.WriteLog("Stream ok URL : " + vmp.GetMedia().TrackID);
                LogHelper.WriteLog("-------------------" + normalTimer.ThreadState);
                try
                {
                    if (normalTimer.ThreadState != ThreadState.Unstarted)
                    {
                        normalTimer.Suspend();//.Stop();
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog("normal Timer error : ", ex);
                }
                normalNeedReset = 0;
            }
            else
            {
                LogHelper.WriteLog("Stream ir ok URL : " + vmp.GetMedia().TrackID);
                //irTimer.Stop();
                try
                {
                    if (normalTimer.ThreadState != ThreadState.Unstarted)
                    {
                        irTimer.Suspend();//.Stop();
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog("ir Timer error :", ex);
                }
                irNeedReset = 0;
            }
        }
Ejemplo n.º 29
0
 void SwapCams()
 {
     if (!isAiming)
     {
         aimCam.enabled = false;
         cam.transform.localPosition = cam.transform.InverseTransformPoint(aimCam.transform.position);
         cam.transform.localRotation = Quaternion.identity;
         cam.enabled = true;
         camMode     = CamMode.mainCam;
         camMoving   = true;
     }
     else if (isAiming)
     {
         cam.enabled = false;
         aimCam.transform.localPosition = aimCam.transform.InverseTransformPoint(cam.transform.position);
         aimCam.enabled = true;
         camMode        = CamMode.aimCam;
         camMoving      = true;
     }
 }
Ejemplo n.º 30
0
    // Add Modifiers
    public CamMode PushMode(string mode_name)
    {
        CamMode mode = CreateModifier("CamModes/" + mode_name) as CamMode;

        if (mode != null)
        {
            mode.m_Controller = this;
            CamMode curr = currentMode;
            if (curr != null)
            {
                curr.enabled = false;
            }
            m_Modes.Push(mode);
            mode.m_TargetCam = m_TargetCam;
            if (OnSwitchMode != null)
            {
                OnSwitchMode(mode);
            }
        }
        return(mode);
    }
Ejemplo n.º 31
0
    public CamMode ReplaceMode(CamMode search, string replace_name)
    {
        if (search == null)
        {
            return(null);
        }
        CleanUp();
        CamMode retval = search;

        CamMode[] modes = m_Modes.ToArray();
        for (int i = 0; i < modes.Length; ++i)
        {
            if (modes[i] == search)
            {
                CamMode mode = CreateModifier("CamModes/" + replace_name) as CamMode;
                if (mode != null)
                {
                    mode.m_Controller = this;
                    mode.m_TargetCam  = m_TargetCam;
                    modes[i]          = mode;
                    GameObject.Destroy(search.gameObject);
                    if (i == modes.Length - 1)
                    {
                        if (OnSwitchMode != null)
                        {
                            OnSwitchMode(mode);
                        }
                    }
                    retval = mode;
                    break;
                }
            }
        }
        m_Modes.Clear();
        for (int i = modes.Length - 1; i >= 0; --i)
        {
            m_Modes.Push(modes[i]);
        }
        return(retval);
    }
Ejemplo n.º 32
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.C))         // OVRInput.GetDown(OVRInput.RawButton.B)
        {
            prevCamMode = (prevCamMode + 1) % numOfCamModes;
            currCamMode = (CamMode)prevCamMode;
        }

        switch (currCamMode)
        {
        case CamMode.FirstPerson:
            Debug.Log("Cam mode is now: " + currCamMode.ToString());
            avatar.ShowFirstPerson = true;
            avatar.ShowThirdPerson = false;
            transform.position     = focus.transform.position +
                                     focus.transform.TransformDirection(new Vector3(len, h2, d2));
            transform.rotation = focus.transform.rotation;
            break;

        case CamMode.ThirdPerson:
            Debug.Log("Cam mode is now: " + currCamMode.ToString());
            avatar.ShowFirstPerson = false;
            avatar.ShowThirdPerson = true;
            transform.position     = Vector3.Lerp(transform.position, focus.transform.position +
                                                  focus.transform.TransformDirection(new Vector3(0f, height, -distance)),
                                                  dampening * Time.deltaTime);
            //StartCoroutine(WaitToLookAt());
            break;

        default:
            Debug.Log("Cam mode is now: " + currCamMode.ToString());
            transform.position = Vector3.Lerp(transform.position, focus.transform.position +
                                              focus.transform.TransformDirection(new Vector3(0f, height, -distance)),
                                              dampening * Time.deltaTime);
            //StartCoroutine(WaitToLookAt());
            break;
        }
    }
Ejemplo n.º 33
0
    // Use this for initialization


//IDEA FOR FP AIMING. attach camera to gameobject near weapon sights, on toggle, detach back to normal.


    void Start()
    {
        helmetSlot = GameObject.FindGameObjectWithTag("HelmetSlot");
        player     = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>();
        player.transform.GetComponent <Animator> ().enabled = true;
        player.enabled = true;
        inventory      = player.gameObject.GetComponent <Inventory> ();
        weaponManager  = player.GetComponent <WeaponManager> ();
        weaponManager.SniperScope.SetActive(false);
        weaponManager.Crosshair.SetActive(true);
        anim     = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>().anim;
        cam      = Camera.main;
        settings = GameObject.Find("Settings");
        if (settings)
        {
            AudioListener.volume = settings.GetComponent <Settings> ().masterVol;
        }

        aimCam         = GameObject.Find("AimingCam").GetComponent <Camera>();
        aimCam.enabled = false;
        aimCam.gameObject.GetComponent <AudioListener> ().enabled = false;
        fpsactioncam         = GameObject.Find("fpsactioncam").GetComponent <Camera> ();
        fpsactioncam.enabled = false;
        fpsactioncam.gameObject.GetComponent <AudioListener> ().enabled = false;

        inFP         = true;
        fpsPositions = new Transform[6];
        tpsPositions = new Transform[6];
        SetFPSCamPos();
        SetTPSCamPos();

        animSpeed    = 10.0f;
        camMoving    = false;
        playerStance = PlayerStance.Standing;
        lastStance   = PlayerStance.Standing;
        camMode      = CamMode.mainCam;
    }
Ejemplo n.º 34
0
    void UpdateModes()
    {
        CleanUp();
        if (m_Modes.Count > 0)
        {
            CamMode topmode = m_Modes.Peek();
            foreach (CamMode mode in m_Modes)
            {
                if (mode != null)
                {
                    if (mode != topmode)
                    {
                        if (mode.enabled)
                        {
                            mode.enabled = false;
                        }
                    }
                    else
                    {
                        if (!mode.enabled)
                        {
                            mode.enabled = true;
                        }
                    }
                }
            }
        }
        else
        {
            Cursor.lockState = Screen.fullScreen? CursorLockMode.Confined: CursorLockMode.None;
#if UNITY_5
            Cursor.visible = true;
#else
            Screen.showCursor = true;
#endif
        }
    }
Ejemplo n.º 35
0
    public void LateUpdate()
    {
        if (Offline) return;
        if (Input.GetKeyDown(KeyCode.F1))
        {
            camMode = CamMode.firstPerson;
            _Hud.PrintPopup("1nd ps Camera");
        }
        if (Input.GetKeyDown(KeyCode.F2))
        {
            camMode = _Player != null ? CamMode.thirdPerson2 : CamMode.thirdPerson;
            _Hud.PrintPopup("3nd ps Camera");
        }

        if (_Player != null)
        {
            pl = _Player;
            if (camMode == CamMode.Free || camMode == CamMode.thirdPerson)
                camMode = CamMode.firstPerson;
        }
        else
        {
            
            if (_Game.Players.Count() == 0)
                camMode = CamMode.Free;
            else if (pl == null)
                pl = _Game.Players.First();

            if (Input.GetKeyDown(KeyCode.Space))
            {
                camMode++;
                camMode = (CamMode)Clamp2((int)camMode, Enum.GetNames(typeof(CamMode)).Length - 1);
                _Hud.PrintPopup("Camera Mode: " + camMode);
            }

            if (Input.GetMouseButtonDown(0) && camMode != CamMode.Free)
            {
                pl = _Game.Players.Next(pl);
                _Hud.PrintPopup("Following: " + pl.name);
            }
        }

        var t = TimeSpan.FromMilliseconds(_Game.GameTime);
        if ((camMode == CamMode.firstPerson || camMode == CamMode.thirdPerson2))
        {
            if (pl == null) return;
            _Hud.SetPlayerHudActive(true);
            _Hud.SetSpectatorHudActive(false);            
            _Hud.life.text = "b" + pl.Life;
            _Hud.shield.text = "a" + pl.Shield;
            _Hud.money.text = "$" + pl.pv.PlayerMoney;
            _Hud.time.text = "e" + t.Minutes + ":" + t.Seconds;
            if (!pl.gun.handsReload.enabled)
                _Hud.Patrons.text = pl.gun.patrons + "|   30";
            if (camMode == CamMode.firstPerson)
            {
                SetRenderers(pl);
                pos = pl.camera.camera.transform.position;
                rot = pl.camera.camera.transform.rotation;
            }
            else if (camMode == CamMode.thirdPerson2)
            {
                rote += GetMouse();
                pos = pl.pos + Vector3.up + rot * Vector3.back * 3;
            }
        }        
        else
        {
            _Hud.SetPlayerHudActive(false);
            _Hud.SetSpectatorHudActive(true);
            
            
            _Hud.SpecInfo.text = t.Minutes + ":" + t.Seconds + "   " + _Game.pv.PlayerMoney;
            if (camMode == CamMode.Free)
            {
                Vector3 move = GetMove() * Time.deltaTime * 10;
                camera.transform.position += transform.rotation * move;
                rote += GetMouse();
            }
            else if (camMode == CamMode.thirdPerson)
            {
                if (pl == null) return;
                rote += GetMouse();
                pos = pl.pos + rot * Vector3.back * 3;                
            }
        }

    }