I have root game object. That game object have child gameobject. I disable root game object, it is disabled, but child game not disabled. Is it ok?
Yes, this is the expected behaviour. The enable and disable messages that you can send will as the documentation mentions enable/disable the receiving component(s), such as sprites or spine models. The game object itself will still exist in the world and any child game objects will be unaffected. The parent-child hierarchy of game objects only affects transforms. Besides the transform each game object is it’s own entity, unaffected by what happens to any parent or child game object.
I can recommend writing some kind of collection module that handles these kinds of things.
Eg I have written a module that has knowledge of all childs in a factorycreated collection, can post messages to single ones or to all (without having to use the collection prefix), can delete/enable/disable one or all. Also it supports sharing values between the gameobjects so you can easily get shared variables in all gameobjects and/or scripts.
Just a suggestion.