C#のスクリプトってgameobjectにくっつけるのが基本的な使い方ってことでいいのか...?

アセットとかサンプルコードとか見てると、gameobjectにくっつけたりせずに機能してるっぽいのもあるけど謎。

この辺の仕組みについて知りたいのですが、なんか良い文献とかありませんか...?