public IEnumerator DestroysComponentOnEntity_OnOtherClient()
        {
            yield return(Connect());

            _manager.SetLocalPlayer(new TestPlayer());

            var entity = new NetworkEntity(1, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity);

            yield return(UpdateUntilSubscription(_manager2.OnEntityCreated));

            var comp = new TestNetworkComponent {
                Id = 2
            };

            entity.AddNetworkComponent(comp);
            entity.RemoveNetworkComponent(comp);

            yield return(UpdateUntilSubscription(_manager2.Entities[0].OnComponentRemove));

            Assert.AreEqual(0, _manager2.Entities[0].Components.Count);

            yield return(Disconnect());
        }
        public IEnumerator UpdatesComponentOnEntity_OnOtherClient()
        {
            yield return(Connect());

            _manager.SetLocalPlayer(new TestPlayer());

            var entity = new NetworkEntity(1, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity);

            yield return(UpdateUntilSubscription(_manager2.OnEntityCreated));

            var comp = new TestNetworkComponent {
                Id = 2, Data = 0
            };

            entity.AddNetworkComponent(comp);
            yield return(UpdateUntilSubscription(_manager2.Entities[0].OnComponentAdd));

            comp.Data = 1;
            yield return(UpdateUntilSubscription(_manager2.OnEntityUpdated));

            Assert.AreEqual(1, ((TestNetworkComponent)_manager2.Entities[0].Components[0]).Data);

            yield return(Disconnect());
        }
예제 #3
0
        public void ThrowsException_OnInitialize_IfRpcMethodIsOverloaded()
        {
            var entity = new NetworkEntity(0, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity);
            var comp = new TestComponentWithOverload
            {
                Id = 1
            };

            Assert.Throws <NotImplementedException>(() => entity.AddNetworkComponent(comp));
        }
예제 #4
0
        public void CallsRpc_OnOtherClient()
        {
            var entity1 = new NetworkEntity(0, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity1);

            var comp1 = new TestComponent
            {
                Id = 1
            };

            entity1.AddNetworkComponent(comp1);

            UpdateBoth();

            comp1.SendRpc();
            UpdateBoth();

            Assert.AreEqual(new TestComponent {
                A = 1, B = 2, C = "foo"
            }, _manager2.Entities[0].Components[0]);
        }
 public void AddNetworkComponent(INetworkComponent component)
 {
     _entity.AddNetworkComponent(component);
 }