There is no linker error, there is a comppilation error. You are trying to access an instance member variable (floatingTexture) from a static member function (SetFloatingTexture). Why do you even want it to be static?
Non-static members exist for each object.
Static members exist once for all objects.
Therefore...
Each 'Manager' object has its own copy of your 'floatingTexture' because it is non-static.
But your 'SetFloatingTexture' function has no object associated with it because it is static.
So in your SetFloatingTexture function... you are trying to access floatingTexture... but which floatingTexture? There could be any number of them!
Example:
1 2 3 4 5 6 7
Manager A; // 'A' has its own floatingTexture
Manager B; // so does 'B'
// A.floatingTexture and B.floatingTexture are two different textures
Manager::SetFloatingTexture( foo ); // <- ? which floating texture are we setting?
// A's? B's? some other object's?
You cannot access a non static member inside a static method unless you explicitly make available the object instance inside the member function.(Pass object instance explicitly as argument or use a global instance which can be accessed inside the function)
For a non static member function an implicit this pointer is passed as the first argument to the function. The this pointer is dereferenced inside the member function to access the members. static members are not passed with the implicit this pointer so you cannot access non static members inside the function unless you explicitly get the object inside the member function.