I am using a function that checks to see if any surrounding chunks have been drawn yet and if they haven't it checks my cube generation function to see if any faces will be shown if the next possible chuck ever gets drawn; so it knows what it needs and what it doesn't. And everything else by default I just render as transparent for my basic culling.
I played around with a couple of different types involving two scripts one for the player camera that casts rays onto near by objects and those objects having an activation script where then rendered for a measure of time that decreased until becoming 0 again and making the object disappear again. This method was way easier for me to understand and really helped me wrap my head around the basic idea of it.
This was the original video that I learned from, it might be able to help you too. And can defiantly be applied to many things but, like most things this is not the most efficient way of doing object culling because all of the objects are looking and the rays are constantly casting in the update function. That's part of the reason why I had to do a complete rebuild of my mesh generation system in favor of having all of the cubes drawn together as a chunk and than just rendering the chunk once. Which is great because I still have complete control over each cube in that chunk they are just being rendered as a whole. Good luck! And let me know if you have any more questions about it :D I am still fairly new to the idea my self but just remember google is your friend when it comes to things like this!