I have a script with [ExecuteInEditMode] and Update is only called when the gameobject is moved etc, i would like to do something when the object is selected but it is not being called because of this, is there a way to have Update run all the time?
As you can see in Unity - Scripting API: ExecuteInEditMode the update is only called when something in the scene changes, for example panning around the scene.
From the article:
"OnGUI is called when the Game View
recieves an Event. "
Maybe you could do something with that information and try to implement it in the OnGUI method.
But is it really necessary to execute updates in regular intervals?
Use this to check your selected gameObject:
Selection.activeGameObject is your desired gameObject in the current update, but was not your desired gameObject in the previous frame, apply your logic.