Is it possible to create "reactive" shaders?

I've been roaming the internet trying to find out if I can create a shader that can change its properties based on events occurring in the surrounding scene, e.g. changes its reflectivity based on how far away another object is, or textures itself based on what is visible from another point in space. Does anyone know if there is support in ShaderLab to read variables from other objects?

I don't know why a shader would need to have those smarts. Can't you just have normal scripts detect whatever you want and set the properties on the shader(s) as needed?

Unless you mean, for example, if you have a large plane (like water) which would have different properties (like wave height) in the proximity of other objects (like boats)?

check out " Proximity Changing Shaders " in the asset store… this might be perfect for what you’re looking for.