ExecuteInEditMode not working in some scripts

I am using @script ExecuteInEditMode(); to update object sprites in the editor when I select a new enum dropdown value. This was working quite well until at some unknown point, it stopped working for almost every script. Is there a setting or object type that would keep this from executing in certain scripts but not others? I’ve searched every help topic i can find with no success.

The test code that works in some scripts and not others:

#pragma strict 
@script ExecuteInEditMode();

function Awake(){
     Debug.Log('Update');
}
function Start () {
     Debug.Log('Start');
}
function Update (){
     Debug.Log('Update');
}

1 Answer

1

I guess all this scripts are attached to items existing in the scene and that these items are active?

Also - Start and Awake will not work in editor
Update will only work when there is a change in the scene -

Did you try and make a change in the scene before you checked the debug report? e.g. check a boolean in an inspector.

Do the script which are not working in editor work in play mode?

All scripts are attached to (seemingly) active objects in the scene. As soon as I hit play, all three comments fire off. Also, for the objects it does work for, Awake(), Start(), and Update() all fire in the editor. I know, the documentation doesn't say so, but it had always worked for me. Lastly, prior to my current problem, changing the enum dropdown in the inspector was enough to run the scripts. Now, that doesn't do it nor does any amount of object moving, etc.

–

Is there something that could make an object appear active when it's really inactive?

–