/// <summary>
        /// see https://github.com/EpicGames/UnrealEngine/blob/6c20d9831a968ad3cb156442bebb41a883e62152/Engine/Source/Runtime/GameplayTags/Private/GameplayTagContainer.cpp#L970
        /// </summary>
        /// <param name="reader"></param>
        public void Serialize(NetBitReader reader)
        {
            // 1st bit to indicate empty tag container or not (empty tag containers are frequently replicated). Early out if empty.
            if (reader.ReadBit())
            {
                return;
            }

            var numTags = reader.ReadBitsToInt(7);

            Tags = new FGameplayTag[numTags];
            for (var i = 0; i < numTags; i++)
            {
                Tags[i] = new FGameplayTag(reader);
            }
        }
Ejemplo n.º 2
0
        public void Serialize(NetBitReader reader)
        {
            int numElements = reader.ReadBitsToInt(5);

            if (numElements == 0)
            {
                return;
            }

            Tags = new FGameplayTag[numElements];

            for (int i = 0; i < numElements; i++)
            {
                FGameplayTag tag = new FGameplayTag();
                tag.Serialize(reader);

                Tags[i] = tag;
            }
        }
        public void Serialize(NetBitReader reader)
        {
            bool isEmpty = reader.ReadBit();

            if (isEmpty)
            {
                return;
            }

            int numTags = reader.ReadBitsToInt(7);

            Tags = new FGameplayTag[numTags];

            for (int i = 0; i < numTags; i++)
            {
                FGameplayTag tag = new FGameplayTag();
                tag.Serialize(reader);

                Tags[i] = tag;
            }
        }