/// <summary>
        /// Primary UNSAFE Reader for PackedBytes.
        /// </summary>
        public unsafe static ulong ReadPackedBytes(ulong *uPtr, ref int bitposition, int bits)
        {
            if (bits == 0)
            {
                return(0);
            }

            int bytes     = (bits + 7) >> 3;
            int sizebits  = bytes.UsedBitCount();
            int valuebits = (int)ArraySerializeUnsafe.Read(uPtr, ref bitposition, sizebits) << 3;

            return(ArraySerializeUnsafe.Read(uPtr, ref bitposition, valuebits));
        }
        /// <summary>
        /// Primary UNSAFE Reader for PackedBits.
        /// </summary>
        public unsafe static ulong ReadPackedBits(ulong *uPtr, ref int bitposition, int bits)
        {
            if (bits == 0)
            {
                return(0);
            }

            int sizebits  = bits.UsedBitCount();
            int valuebits = (int)ArraySerializeUnsafe.Read(uPtr, ref bitposition, sizebits);

            //UnityEngine.Debug.Log("Read Packedunsafe sizer/value : " + sizebits + " : " + valuebits);
            return(ArraySerializeUnsafe.Read(uPtr, ref bitposition, valuebits));
        }