How can I load only specific mip levels?

I would like to use the same assets and single binary for both the ‘standard’ and ‘HD’ versions of a mobile game I’m making with Unity, but to use lower resolution assets on lower-rez (and generally less performant) devices.

Does Unity provide any mechanism to choose which mip levels are loaded for a texture at runtime? Or to compile out two versions of a texture and seamlessly choose the correct version at runtime?

I’d rather not go the ‘resources’ route if I don’t have to, as that bypasses many of the nice features Unity has (and that I am using) for asset editing and management.

You can use different Quality Settings levels (Edit → Project Settings → Quality) or change the value of QualitySettings.masterTextureLimit via code. The description says it will be applied to all textures the way you want.