You only have to assign UITexture's texture once, and you can make it a render texture if you want. Updating the render texture will automatically update what's visible, as NGUI only creates the geometry. Render textures are the best way to go, and assuming you render into the texture every frame (as it does by default with every camera), your textures will update with them.