public void ImplicitFrom_SetsValue()
        {
            // field = T implicit conversion should set .Value
            SyncVarNetworkBehaviour <EmptyBehaviour> field = serverComponent;

            Assert.That(field.Value, Is.EqualTo(serverComponent));
        }
        public void OperatorEquals()
        {
            // != null
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);

            // NOTE: this throws a compilation error, which is good!
            // we don't want users to do 'player.target == null'.
            // better to not compile than to fail silently.
            // Assert.That(field != null, Is.True);

            // different SyncVar<T>, same .Value
            SyncVarNetworkBehaviour <EmptyBehaviour> fieldSame = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);

            Assert.That(field == fieldSame, Is.True);
            Assert.That(field != fieldSame, Is.False);

            // different SyncVar<T>, different .Value
            SyncVarNetworkBehaviour <EmptyBehaviour> fieldNull = new SyncVarNetworkBehaviour <EmptyBehaviour>(null);

            Assert.That(field == fieldNull, Is.False);
            Assert.That(field != fieldNull, Is.True);

            // same NetworkBehaviour<EmptyBehaviour>
            Assert.That(field == serverComponent, Is.True);
            Assert.That(field != serverComponent, Is.False);

            // different NetworkBehaviour<EmptyBehaviour>
            CreateNetworked(out GameObject otherGo, out NetworkIdentity otherIdentity, out EmptyBehaviour otherComp);
            Assert.That(field == otherComp, Is.False);
            Assert.That(field != otherComp, Is.True);
        }
        public void Unpack()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> .Unpack(0xAABBCCDD00000012, out uint netId, out byte componentIndex);

            Assert.That(netId, Is.EqualTo(0xAABBCCDD));
            Assert.That(componentIndex, Is.EqualTo(0x12));
        }
        public void ImplicitTo()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);
            // T = field implicit conversion should get .Value
            EmptyBehaviour value = field;

            Assert.That(value, Is.EqualTo(serverComponent));
        }
        public void EqualsTest()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> fieldA = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);
            SyncVarNetworkBehaviour <EmptyBehaviour> fieldB = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);
            SyncVarNetworkBehaviour <EmptyBehaviour> fieldC = new SyncVarNetworkBehaviour <EmptyBehaviour>(null);

            Assert.That(fieldA.Equals(fieldB), Is.True);
            Assert.That(fieldA.Equals(fieldC), Is.False);
        }
        public void Value_NetworkBehaviour()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(null);

            // avoid 'not initialized' exception
            field.OnDirty = () => {};

            field.Value = serverComponent;
            Assert.That(field.Value, Is.EqualTo(serverComponent));
        }
        public void SerializeDeltaWritesNetIdAndComponentIndex()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);
            NetworkWriter writer = new NetworkWriter();

            field.OnSerializeDelta(writer);

            NetworkReader reader = new NetworkReader(writer.ToArraySegment());

            Assert.That(reader.ReadUInt(), Is.EqualTo(serverComponent.netId));
            Assert.That(reader.ReadByte(), Is.EqualTo(serverComponent.ComponentIndex));
        }
        public void PersistenceThroughDisappearance()
        {
            // field with NetworkBehaviour
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);

            // remove from spawned, shouldn't be found anymore
            NetworkServer.spawned.Remove(serverIdentity.netId);
            Assert.That(field.Value, Is.EqualTo(null));

            // add to spawned again, should be found again
            NetworkServer.spawned[serverIdentity.netId] = serverIdentity;
            Assert.That(field.Value, Is.EqualTo(serverComponent));
        }
        public void DeserializeDeltaReadsNetIdAndComponentIndex()
        {
            NetworkWriter writer = new NetworkWriter();

            writer.WriteUInt(serverComponent.netId);
            writer.WriteByte((byte)serverComponent.ComponentIndex);
            NetworkReader reader = new NetworkReader(writer.ToArraySegment());

            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(null);

            // avoid 'not initialized' exception
            field.OnDirty = () => {};

            field.OnDeserializeDelta(reader);
            Assert.That(field.Value, Is.EqualTo(serverComponent));
        }
Пример #10
0
        public void Hook()
        {
            int called = 0;

            void OnChanged(NetworkBehaviour oldValue, NetworkBehaviour newValue)
            {
                ++called;
                Assert.That(oldValue, Is.Null);
                Assert.That(newValue, Is.EqualTo(component));
            }

            SyncVarNetworkBehaviour <NetworkBehaviour> field = new SyncVarNetworkBehaviour <NetworkBehaviour>(null, OnChanged);

            // avoid 'not initialized' exception
            field.OnDirty = () => {};

            field.Value = component;
            Assert.That(called, Is.EqualTo(1));
        }
        public void Constructor_NetworkBehaviour()
        {
            SyncVarNetworkBehaviour <EmptyBehaviour> field = new SyncVarNetworkBehaviour <EmptyBehaviour>(serverComponent);

            Assert.That(field.Value, Is.EqualTo(serverComponent));
        }
        public void Pack()
        {
            ulong packed = SyncVarNetworkBehaviour <EmptyBehaviour> .Pack(0xAABBCCDD, 0x12);

            Assert.That(packed, Is.EqualTo(0xAABBCCDD00000012));
        }