There are many ways to access other game objects in unity. I think using tag is the easiest way for me because I dont need to pay attention to the object’s hierarchy. But it may take cost compared to other ways.
Could you tell me your opinion about this?
If you consider object lookup performance in runtime then using fixed referenced object in inspector is the best choice .In that case unity has early bound reference to the object which does not suffer from enumeration cost. For that reason, using GameObject.find(…) in Update() is worst way to go.
Well i have used several ways to access Game Objects and it depends on the situation there is no better way of doing it. Tags access the whole game object/s and Get Component accesses a script/component from a certain Game Object.