예제 #1
0
        public void Initialize()
        {
            DontDestroyOnLoad(gameObject);
            Random r = new Random();

            _cachedServerState    = new ServerState();
            _cachedShootData      = new ShootPacket();
            _playerHealthPacket   = new PlayerHealthPacket();
            _userName             = Environment.MachineName + " " + r.Next(100000);
            LogicTimer            = new LogicTimer(OnLogicUpdate);
            _writer               = new NetDataWriter();
            G.ClientPlayerManager = _playerManager = new ClientPlayerManager(this);
            _shootsPool           = new GamePool <ShootEffect>(ShootEffectContructor, 100);

            _netManager      = G.CSEngineApp.LiteNet._netManager;
            _packetProcessor = G.CSEngineApp.LiteNet._packetProcessor;
            //_packetProcessor = new NetPacketProcessor();
            _packetProcessor.RegisterNestedType((w, v) => w.Put(v), reader => reader.GetVector2());
            _packetProcessor.RegisterNestedType <PlayerState>();
            _packetProcessor.SubscribeReusable <PlayerJoinedPacket>(OnPlayerJoined);
            _packetProcessor.SubscribeReusable <JoinAcceptPacket>(OnJoinAccept);
            _packetProcessor.SubscribeReusable <PlayerLeavedPacket>(OnPlayerLeaved);
            //_netManager = new NetManager(this)
            //{
            //    AutoRecycle = true,
            //    IPv6Enabled = IPv6Mode.Disabled
            //};
            _netManager.Start();
        }
예제 #2
0
 public void SendHealth(ref PlayerHealthPacket packet)
 {
     _netManager.SendToAll(WriteSerializable(PacketType.Health, packet), DeliveryMethod.Unreliable);
 }