Exemple #1
0
 public void ShutDown(CmdPacket packet)
 {
     BroadCastInErrorCase = packet;
     Server.Server.Close();
     Globals.NetworkServerThread.Abort();
     isOnline = false;
 }
Exemple #2
0
    void OnGUI()
    {
        GUILayout.Label("Ping:" + m_rtt + ",Pos:" + m_game.m_ball.position + ",Vel:" + m_game.m_ball.rigidbody.velocity);
        GUILayout.Label(m_state.ToString());
        if (m_state == State.ST_Disconnected)
        {
            if (GUILayout.Button("Connect"))
            {
                //Security.PrefetchSocketPolicy("127.0.0.1", 5001);
                m_client.Connect("127.0.0.1", 5001);
            }
        }
        else
        {
            if (GUILayout.Button("Disconnect"))
            {
                m_client.Close();
                m_state = State.ST_Disconnected;
            }
            switch (m_state)
            {
            case State.ST_Connected:
                if (GUILayout.Button("Automatch"))
                {
                    //send automatch
                    CmdPacket packet = new CmdPacket();
                    packet.WriteUShort(Proto.C_AutoMatch);
                    send(packet);
                    m_state = State.ST_WaitingToMatch;
                }
                break;

            case State.ST_WaitingToMatch:
                if (GUILayout.Button("Cancel Match"))
                {
                    CmdPacket packet = new CmdPacket();
                    packet.WriteUShort(Proto.C_UAutoMatch);
                    send(packet);
                    m_state = State.ST_Connected;
                }
                break;

            case State.ST_GameInit:
            {
                if (GUILayout.Button("Ready"))
                {
                    CmdPacket packet = new CmdPacket();
                    packet.WriteUShort(Proto.C_GameReady);
                    send(packet);
                    m_state = State.ST_WaitingToStart;
                }
                break;
            }

            case State.ST_WaitingToStart:
            case State.ST_GameRunning:
                break;
            }
        }
    }
Exemple #3
0
        private void EvaluatorAVH(CmdResult result)
        {
            AirFlights afs = new AirFlights();

            afs.Load(result.Data);

            result.Airflights = afs;

            string resultdate = result.GetAvhdate();
            string cmdate     = ec.ParentCmdPacket.GetAvhdate();

            if (resultdate == cmdate)
            {
                if (afs.Count > 5)
                {
                    CmdPacket c = new CmdPacket("PN", CmdCB, false, new CmdResultEvaluator(EvaluatorAVH), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
            }
            else
            {
                result.DiscardResult = true;
            }
        }
Exemple #4
0
        private void DealwithCmd()
        {
            string s = GetCommandLine().Trim();

            if (s != "")
            {
                if (s.ToUpper().StartsWith("PRINT"))
                {
                    string[] splits = Regex.Split(s, @"\s{1,}");
                    if (splits.Length != 3)
                    {
                        throw new Exception("PRINT格式不对");
                    }
                    Packet c = new PrintPacket(splits[1], splits[2], CmdCB);
                    c.EcChannel = ec;
                    c.Send();
                }
                else
                {
                    CmdPacket c = new CmdPacket(s, CmdCB);
                    c.EcChannel = ec;
                    c.Send();
                }
            }
            else
            {
                richTextBox1.Text += "\r\n" + "请检查命令格式!";
                richTextBox1.Text += "\r\n" + (char)9632;
            }
        }
Exemple #5
0
        /// <summary>
        /// 在多个线程内部循环调用
        /// </summary>
        public void ProcessCmdPackets(Queue <CmdPacket> ls)
        {
            //dictInPackets.Values值的个数可能会变化,每次处理先保存好最大个数
            //同时给出20个冗余数量
            int maxCount = dictInPackets.Values.Count + 20;

            for (int n = 0; n < maxCount; n++)
            {
                TCPInPacket tcpInPacket = GetNextTcpInPacket(n);

                //这意味着列表数据包变少了
                if (null == tcpInPacket)
                {
                    break;
                }

                ls.Clear();

                if (tcpInPacket.PopCmdPackets(ls)) //判断是否取到了指令列表
                {
                    try
                    {
                        while (ls.Count > 0)
                        {
                            CmdPacket cmdPacket = ls.Dequeue();
                            //接收到了完整的命令包
                            TCPOutPacket         tcpOutPacket = null;
                            TCPProcessCmdResults result       = TCPProcessCmdResults.RESULT_FAILED;

                            result = TCPCmdHandler.ProcessCmd(this, tcpInPacket.CurrentSocket, tcpClientPool, tcpRandKey, tcpOutPacketPool, cmdPacket.CmdID, cmdPacket.Data, cmdPacket.Data.Length, out tcpOutPacket);

                            if (result == TCPProcessCmdResults.RESULT_DATA && null != tcpOutPacket)
                            {
                                //向登陆客户端返回数据
                                socketListener.SendData(tcpInPacket.CurrentSocket, tcpOutPacket);
                            }
                            else if (result == TCPProcessCmdResults.RESULT_FAILED)//解析失败, 直接关闭连接
                            {
                                if (cmdPacket.CmdID != (int)TCPGameServerCmds.CMD_LOG_OUT)
                                {
                                    LogManager.WriteLog(LogTypes.Error, string.Format("解析并执行命令失败: {0},{1}, 关闭连接", (TCPGameServerCmds)tcpInPacket.PacketCmdID, Global.GetSocketRemoteEndPoint(tcpInPacket.CurrentSocket)));
                                }
                                SysConOut.WriteLine("========================ProcessCmdPackets CloseSocket================");
                                // Console.WriteLine("========================ProcessCmdPackets CloseSocket================");
                                //这儿需要关闭链接--->这样关闭对吗?
                                socketListener.CloseSocket(tcpInPacket.CurrentSocket);

                                break;
                            }
                        }
                    }
                    finally
                    {
                        //处理结束之后设置相关标志位
                        tcpInPacket.OnThreadDealingComplete();
                    }
                }
            }
        }
Exemple #6
0
        public void GetFlights(string s)
        {
            CmdPacket c = new CmdPacket(s, CmdCB, new CmdResultEvaluator(EvaluatorAVH), null);

            c.EcChannel = ec;
            c.Send();
            //ec.SendCmd(c);
        }
Exemple #7
0
        public void RTWithNMAndPrice(string s)
        {
            CmdPacket c = new CmdPacket(s, CmdCB, new CmdResultEvaluator(EvaluatorTeamNM), null);

            c.EcChannel = ec;
            c.Send();

            //ec.SendCmd(c);
        }
Exemple #8
0
    public void sendInput(float x, float y)
    {
        CmdPacket packet = new CmdPacket();

        packet.WriteUShort(Proto.C_GameShot);
        packet.WriteFloat(x);
        packet.WriteFloat(y);
        send(packet);
    }
Exemple #9
0
 private void EvaluatorTeamNM(CmdResult result)
 {
     if (Regex.IsMatch(ec.CurrentCmdPacket.CmdString.ToUpper().Trim(), "RT[0-9A-Z]{5}"))
     {
         if (Regex.IsMatch(result.Data, @"\sNM([0-9]{1,3})\s"))
         {
             result.DiscardResult = true;
             CmdPacket c = new CmdPacket("RTN", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
         else
         {
             CmdPacket c = new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM),
                                         null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
     }
     else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "RTN")
     {
         if (Regex.IsMatch(ec.TempResultBuffer + result.Data, @"NM([0-9]{1,3}).*?\1\."))
         {
             CmdPacket c = new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
         else
         {
             CmdPacket c = new CmdPacket("PN", CmdCB, true, new CmdResultEvaluator(EvaluatorTeamNM), null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
     }
     else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "PN")
     {
         if (Regex.IsMatch(ec.TempResultBuffer + result.Data, @"NM([0-9]{1,3}).*?\1\."))
         {
             CmdPacket c = new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
         else
         {
             ec.CurrentCmdPacket.Repeat = true;
         }
     }
     else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "PAT:A")
     {
         if (!result.Data.ToUpper().Contains("TOTAL:"))
         {
             CmdPacket c = new CmdPacket("PAT:", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
             c.EcChannel = ec;
             ec.CurrentCmdPacket.SubCmdPacket = c;
         }
     }
 }
Exemple #10
0
 public void BroadCast(CmdPacket cmd, byte[] buffdata) // check later
 {
     //byte[] _cmd = new byte[] { (byte)cmd };
     byte[] newbuff = new byte[buffdata.Length + 1];
     newbuff[0] = (byte)cmd;
     Buffer.BlockCopy(buffdata, 0, newbuff, 1, buffdata.Length);
     //var buff = _cmd.Concat(buffdata).ToArray<byte>();
     Globals.Clients.ForEach(c => SendCmd(c.tcpclient, newbuff));
 }
Exemple #11
0
 void Update()
 {
     if (m_state == State.ST_Start)
     {
         m_state           = State.ST_Running;
         m_time            = 0;
         m_input.m_enabled = true;
         if (m_bottom)
         {
             m_other.position = m_tranUp.position;
             m_other.rotation = m_tranUp.rotation;
             Camera.main.transform.position = m_tranBottom.position;
             Camera.main.transform.rotation = m_tranBottom.rotation;
         }
         else
         {
             m_other.position = m_tranBottom.position;
             m_other.rotation = m_tranBottom.rotation;
             Camera.main.transform.position = m_tranUp.position;
             Camera.main.transform.rotation = m_tranUp.rotation;
         }
         m_ball.position = m_tranBall.position;
         m_ball.rotation = m_tranBall.rotation;
     }
     if (m_state == State.ST_Running)
     {
         if (m_time > m_gameTime)
         {
             m_state = State.ST_End;
             CmdPacket packet = new CmdPacket();
             //packet.WriteUShort(Proto.C_AutoMatch);
             //m_client.m_client.Send(packet);
         }
         m_time += Time.deltaTime;
         //同步位置和速度
         if (m_bSer)
         {
             //if (Time.realtimeSinceStartup - m_lstSyncTime > Time.deltaTime)
             {
                 CmdPacket packet = new CmdPacket();
                 packet.WriteUShort(Proto.Synch_Pos);
                 packet.WriteUInt64(TimeMgr.getTimeStampMicro());
                 packet.WriteFloat(m_ball.position.x);
                 packet.WriteFloat(m_ball.position.z);
                 packet.WriteFloat(m_ball.rigidbody.velocity.x);
                 packet.WriteFloat(m_ball.rigidbody.velocity.z);
                 m_client.send(packet);
                 m_lstSyncTime = Time.realtimeSinceStartup;
             }
         }
     }
 }
Exemple #12
0
        public void ProcessCmdPackets(Queue <CmdPacket> ls)
        {
            int maxCount = this.dictInPackets.Values.Count + 20;

            for (int i = 0; i < maxCount; i++)
            {
                TCPInPacket tcpInPacket = this.GetNextTcpInPacket(i);
                if (null == tcpInPacket)
                {
                    break;
                }
                ls.Clear();
                if (tcpInPacket.PopCmdPackets(ls))
                {
                    try
                    {
                        while (ls.Count > 0)
                        {
                            CmdPacket            cmdPacket    = ls.Dequeue();
                            TCPOutPacket         tcpOutPacket = null;
                            TCPProcessCmdResults result       = TCPCmdHandler.ProcessCmd(this, tcpInPacket.CurrentSocket, this.tcpClientPool, this.tcpRandKey, this.tcpOutPacketPool, cmdPacket.CmdID, cmdPacket.Data, cmdPacket.Data.Length, out tcpOutPacket);
                            if (result == TCPProcessCmdResults.RESULT_DATA && null != tcpOutPacket)
                            {
                                this.socketListener.SendData(tcpInPacket.CurrentSocket, tcpOutPacket, true);
                            }
                            else
                            {
                                if (result == TCPProcessCmdResults.RESULT_FAILED)
                                {
                                    if (cmdPacket.CmdID != 22)
                                    {
                                        LogManager.WriteLog(LogTypes.Error, string.Format("解析并执行命令失败: {0},{1}, 关闭连接", (TCPGameServerCmds)tcpInPacket.PacketCmdID, Global.GetSocketRemoteEndPoint(tcpInPacket.CurrentSocket, false)), null, true);
                                    }
                                    this.socketListener.CloseSocket(tcpInPacket.CurrentSocket, "");
                                    break;
                                }
                                if (result == TCPProcessCmdResults.RESULT_DATA_CLOSE && null != tcpOutPacket)
                                {
                                    this.socketListener.SendData(tcpInPacket.CurrentSocket, tcpOutPacket, true);
                                    tcpInPacket.CurrentSocket.DelayClose = 250;
                                }
                            }
                        }
                    }
                    finally
                    {
                        tcpInPacket.OnThreadDealingComplete();
                    }
                }
            }
        }
Exemple #13
0
 void FixedUpdate()
 {
     if (m_state != State.ST_Disconnected)
     {
         if (Sys_GetTime() - m_lstSendTime > 10 * 1000)
         {
             CmdPacket packet = new CmdPacket();
             packet.WriteUShort(Proto.Keep_Alive);
             packet.WriteUInt(Sys_GetTime());
             send(packet);
         }
         if (Sys_GetTime() - m_lstReadTime > 30 * 1000)
         {
             //dead
         }
     }
 }
Exemple #14
0
        private void Networker()
        {
            Server.Start();
            Heart.Beat();
            this.isOnline        = true;
            BroadCastInErrorCase = CmdPacket.ServerRestart;
            Log.Write("NetworkServer started, Bound at: {0}", Server.LocalEndpoint.ToString());
            try
            {
                while (this.isOnline)
                {
                    TcpClient NewClient = Server.AcceptTcpClient();

                    if (Globals.Shield.IsBlocked(NewClient))
                    {
                        Globals.NetworkServer.SendCmd(NewClient, CmdPacket.DisconnectIsBanned);
                        NewClient.Close();
                        continue;
                    }

                    if (!isClientWithSameIP(NewClient))
                    {
                        Log.Write("New Client incomming Connection at: {0}", getIP(NewClient));
                        new Client(NewClient);
                    }
                    else
                    {
                        Log.Write("New Client incomming Connection with duplicated IPAddress at: {0} - Blocked!", getIP(NewClient));
                        SendCmd(NewClient, CmdPacket.DisconnectTooManyIPs);
                        NewClient.Close();
                        //continue;
                    }
                }
                PutOff();
            }
            catch// (ThreadAbortException)
            {
                PutOff();
            }
        }
Exemple #15
0
        private void EvaluatorAVH(CmdResult result)
        {
            AirFlights afs = new AirFlights();
            afs.Load(result.Data);

            result.Airflights = afs;

            string resultdate = result.GetAvhdate();
            string cmdate = ec.ParentCmdPacket.GetAvhdate();

            if (resultdate == cmdate)
            {
                if (afs.Count > 5)
                {
                    CmdPacket c = new CmdPacket("PN", CmdCB, false, new CmdResultEvaluator(EvaluatorAVH), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
            }
            else
            {
                result.DiscardResult = true;
            }
        }
Exemple #16
0
 public void SendCmd(TcpClient client, CmdPacket cmd)
 {
     SendCmd(client, new byte[] { (byte)cmd });
 }
Exemple #17
0
 public void BroadCast(CmdPacket cmd)
 {
     byte[] _cmd = new byte[] { (byte)cmd };
     Globals.Clients.ForEach(c => SendCmd(c.tcpclient, _cmd));
 }
Exemple #18
0
 public void send(CmdPacket packet)
 {
     m_client.Send(packet);
     m_lstSendTime = Sys_GetTime();
 }
Exemple #19
0
    void RecvData(object sender, NetEventArgs e)
    {
        Sys_Log(getString(e.Client.RecvPacket.GetReadData()));
        m_lstReadTime = Sys_GetTime();
        UInt16    cmd    = 0;
        CmdPacket packet = e.Client.RecvPacket;

        packet.ReadUShort(out cmd);
        switch (cmd)
        {
        case Proto.Keep_Alive:
        {
            UInt32 time = 0;
            if (packet.ReadUInt(out time))
            {
                CmdPacket tpacket = new CmdPacket();
                tpacket.WriteUShort(Proto.Keep_Alive_Ack);
                tpacket.WriteUInt(time);
                send(tpacket);
            }
            break;
        }

        case Proto.Keep_Alive_Ack:
        {
            UInt32 time = 0;
            if (packet.ReadUInt(out time))
            {
                m_rtt = Sys_GetTime() - time;
            }
            break;
        }

        case Proto.Synch_Pos:
        {
            //同步位置和速度
            if (!m_game.m_bSer)
            {
                UInt64 time;
                packet.ReadUInt64(out time);
                float x, z, vx, vz;
                packet.ReadFloat(out x);
                packet.ReadFloat(out z);
                packet.ReadFloat(out vx);
                packet.ReadFloat(out vz);
                m_other.change(time, x, z, vx, vz);
            }
            break;
        }

        case Proto.C_GameShot:
        {
            //同步操作
            float vx, vz;
            packet.ReadFloat(out vx);
            packet.ReadFloat(out vz);
            //if (m_game.m_bSer)
            m_other.shot(vx, vz);
            break;
        }

        case Proto.S_GameInit:
        {
            m_state = State.ST_GameInit;
            break;
        }

        case Proto.S_GameStart:
        {
            m_state = State.ST_GameRunning;
            char bSer;
            if (packet.ReadByte(out bSer))
            {
                m_game.m_bSer = (bSer != 0);
            }
            char bottom;
            if (packet.ReadByte(out bottom))
            {
                m_game.m_bottom = (bottom != 0);
            }
            m_game.gameStart();
            break;
        }
        }
    }
Exemple #20
0
 public void GetFlights(string s)
 {
     CmdPacket c = new CmdPacket(s, CmdCB, new CmdResultEvaluator(EvaluatorAVH), null);
     c.EcChannel = ec;
     c.Send();
     //ec.SendCmd(c);
 }
Exemple #21
0
        public void RTWithNMAndPrice(string s)
        {
            CmdPacket c = new CmdPacket(s, CmdCB, new CmdResultEvaluator(EvaluatorTeamNM), null);
            c.EcChannel = ec;
            c.Send();

            //ec.SendCmd(c);
        }
Exemple #22
0
 private void DealwithCmd()
 {
     string s = GetCommandLine().Trim();
     if (s != "")
     {
         if (s.ToUpper().StartsWith("PRINT"))
         {
             string[] splits=Regex.Split(s,@"\s{1,}");
             if (splits.Length != 3) { throw new Exception("PRINT格式不对"); }
             Packet c = new PrintPacket(splits[1], splits[2], CmdCB);
             c.EcChannel = ec;
             c.Send();
         }
         else
         {
             CmdPacket c = new CmdPacket(s, CmdCB);
             c.EcChannel = ec;
             c.Send();
         }
     }
     else
     {
         richTextBox1.Text += "\r\n" + "请检查命令格式!";
         richTextBox1.Text += "\r\n" + (char)9632;
     }
 }
Exemple #23
0
        private void EvaluatorTeamNM(CmdResult result)
        {
            if (Regex.IsMatch(ec.CurrentCmdPacket.CmdString.ToUpper().Trim(), "RT[0-9A-Z]{5}"))
            {
                if (Regex.IsMatch(result.Data, @"\sNM([0-9]{1,3})\s"))
                {
                    result.DiscardResult = true;
                    CmdPacket c= new CmdPacket("RTN", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
                else
                {
                    CmdPacket c= new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM),
                                                        null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
            }
            else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "RTN")
            {

                if (Regex.IsMatch(ec.TempResultBuffer + result.Data, @"NM([0-9]{1,3}).*?\1\."))
                {
                    CmdPacket c = new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
                else
                {
                    CmdPacket c = new CmdPacket("PN", CmdCB, true, new CmdResultEvaluator(EvaluatorTeamNM), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }

            }
            else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "PN")
            {
                if (Regex.IsMatch(ec.TempResultBuffer + result.Data, @"NM([0-9]{1,3}).*?\1\."))
                {
                    CmdPacket c = new CmdPacket("PAT:A", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
                else
                {
                    ec.CurrentCmdPacket.Repeat = true;
                }
            }
            else if (ec.CurrentCmdPacket.CmdString.ToUpper().Trim() == "PAT:A")
            {
                if (!result.Data.ToUpper().Contains("TOTAL:"))
                {
                    CmdPacket c = new CmdPacket("PAT:", CmdCB, false, new CmdResultEvaluator(EvaluatorTeamNM), null);
                    c.EcChannel = ec;
                    ec.CurrentCmdPacket.SubCmdPacket = c;
                }
            }
        }
Exemple #24
0
    void Update()
    {
        Vector3 vec = ball.rigidbody.velocity;

        if (vec.x > 50)
        {
            vec.x = 50;
        }
        if (vec.x < -50)
        {
            vec.x = -50;
        }
        if (vec.z > 50)
        {
            vec.z = 50;
        }
        if (vec.z < -50)
        {
            vec.z = -50;
        }
        ball.rigidbody.velocity = vec;
        Vector3 cameraVec = Camera.main.transform.position;

        if (cameraVec.x < -3)
        {
            cameraVec.x = -3;
        }
        if (cameraVec.x > 3)
        {
            cameraVec.x = 3;
        }
        Camera.main.transform.position = cameraVec;
        if (m_game.m_state != Game.State.ST_Running)
        {
            return;
        }
        if (m_game.m_bottom && ball.position.z <= 0 || !m_game.m_bottom && ball.position.z >= 0)
        {
            bool click = false;
            if (m_automatic)
            {
                if (Time.realtimeSinceStartup - m_lstClickTime > 0.11f)
                {
                    click          = true;
                    m_lstClickTime = Time.realtimeSinceStartup;
                }
            }
            else if (Input.GetMouseButtonUp(0))
            {
                click = true;
            }
            if (click)
            {
                Vector3 direction = ball.position - selfGun.position;
                direction.y = 0;
                Debug.Log("self:" + direction);
                ball.rigidbody.velocity = direction * rate;
                //ball.rigidbody.AddForce(direction * rate, ForceMode.Impulse);

                CmdPacket packet = new CmdPacket();
                packet.WriteUShort(Proto.C_GameShot);
                packet.WriteFloat(ball.rigidbody.velocity.x);
                packet.WriteFloat(ball.rigidbody.velocity.z);
                m_client.send(packet);
            }
        }
        if (Input.GetKey(KeyCode.A))
        {
            cameraVec.x += -1 * Time.deltaTime * cameraMoveSpeed;
        }
        if (Input.GetKey(KeyCode.D))
        {
            cameraVec.x += 1 * Time.deltaTime * cameraMoveSpeed;
        }
    }