//(No longer internal due to Unity3D Requirements) This is internal because we don't want child classes having access to it but we need some derived classes to have access. protected PackageType GeneratePackage <PackageType>(IEncryptablePackage packet, EncryptionBase decrypter) where PackageType : NetworkPackage, new() { if (SerializerRegister.GetValue(packet.SerializerKey) == null) { throw new LoggableException("Packet serializer not found with get.", null, LogType.Error); } return(Converter.Convert <PackageType>(packet, SerializerRegister[packet.SerializerKey], decrypter)); }