Dynamic Occlusion is a tool that will allow you to run your game with a lighter and focused on dynamic objects in the game experience. although it served in all cases.
How to use: Simply add the script Dynamic Occlusion.cs on your camera or on an empty GameObject. to run you must assign the item to a layer intended to dynamic Occlusion and this object must not be static. And optional dynamic LOD can add the items you want to put more performance. The advantage is that Dynamic LOD automatically calculates its volume and does not interfere with the Static Batching, you can also call Static Batch Utility method and have no problems.
Occlusion culling 100% + System dynamic levels of detail for unity + Dynamic Integrated Quality Changer
No need baking time
100% compatible with procedural scenes
system uses frustum plans
Shuriken particle works, Legacy Trail Render, Render Line, Billboards and Skinned.
Occlusion of lights and Lens Flares
Occlusion of sound
It supports real-time shadows
Supports dynamic batching
How does it work
Dynamic Occlusion System makes the Game Objects a list containing the scene renderers, Audiosources and lights.
renderers is necessary that they are not part of a Static Batching and are in a layer that can be used for dynamic Occlusion to be hidden from the point of view of the camera.
Audio Sources. must the Spatial Blend has a value of 1.
lighting and lens flares no need to configure anything additional.
The graphic quality is automatically selected by Dynamic Occlusion, also the details of the plot are adjusted to ensure that the game runs above 30FPS.
Dynamic LOD with distance determines the level of detail of the object, depending on the volume of the Maya, the position of the GameObject and according to the visual quality of the game.
there are some tips about the performance in a game, there is much information on the issue and no system is infallible and definitive, the whole key is moderation and balance.
Lightmapping in excess can increase the size of your project unnecessarily, you can consume a lot of memory if too many lightmaps.
combine textures in excess can cause overstep the maximum allowed by the graphics card, or affect the quality of textures on very large objects.
Combine meshes must be done before running the game for it to be sacrificed for the Occlusion static that can separate batch vertices and go hiding parts of the meshes existing be drawn. This is especially difficult in procedurally generated scenes.
to create gameobjects in excess is bad so they are empty. because unity allocates a memory space for each GameObject.
so the trick is to maintain a balance in every aspect and keep well guarded memory, CPU and GPU.
use as few materials as possible: this is a difficult task to be done manually. the idea is to use combinations of few materials. eg steel rails for a close, is the same for the steel bars to a window or under the seats of a bus. and to achieve this you must make a texture atlas. so you can make textures for various types of metals or various types of wood, leather, rocks, foliage, etc.