Unity Hierarchy and Parenting Changes

Hello In Unity 3 I had a script which revolved around a lot of game Objects and Often times in my Hierarchy I would get the option to deactivate This GameObject Only or All The children. This feature is gone, in fact it is now extremely unoptimized this way because for example if I have an Arm, Forearm, Hand and Fingers. If I Deactivate the Arm all the children also deactivate meaning Theirs no longer a way to activate JUST the fingers - which means That is a performance issue. Unity should not have changed that part - it makes no sense and gives no advantage to remove an Option where both could win.

Before I used to simply Deactivate the whole character, then Activate all the important objects manually - leaving all the unneeded objects in the hierarchy deactivated. In this case I would use a script to activate them like this:
FaceParent

Face 1
Face 2
Face 3
Face 4

But I don’t need FaceParent at all. But If I deactivate FaceParent and choose to Activate Face1 for performance reasons - FaceOne doesn’t show - neither do any of the children objects - they appear grayed out.
I don’t know who thought this was a good idea.

Another example is lets say FaceParent was a bone and Face 1234 were all children of that bone. You would just deactivate FaceParent because its a bone and having it activated especially if it had unnecessary components would be bad for performance - you guys get the idea. Removing Options is a bad thing. Unity Technologies must consider this is a very Unique Engine and people use the Engine in many Unique ways which equal the diverse number of games.

Now that they have totally removed the Options dialogue when Enabling/Disabling game objects theirs only less optimized methods available. Also other people have been complaining about incompatible’s with older scripts because of this, my script is kinda broken as well because of this change.

I would contend that it makes no conceptual sense to deactivate the parent of something and not also the something. Children objects rely on their parents for information - by saying ‘Disable the parent but continue processing the child’ you’re essentially breaking the child-parent connection but it can come back at any time ‘or something’.

I’d also say, if the bone’s animated, it’s an unexpected behaviour to deactivate it. If it’s not animated, why are you importing it in the first place? Use an empty game object as the Face Parent and parent it to whateverbone so it move properly.

I saw nothing wrong with 3.5 's Method of parenting. It worked flawlessly and nothing was broke, I know this because I made an entire game using this method - I had a pretty complex character customization system and many variances of faces, hair , make up etc.

For this example lets say I have bip spine, bip arm, bip forearm, bip hand and attached to that last bone I have a Physical Hand - this is because I have many varients of hands, chubby, small, large etc. In 3.5 I deactivate all the bip’s because theirs no point having them active at all because thats just bad on performance. The only thing required was 1 of the hands. Also the Chain was never broken - Unity Animated the deactivated bones without any breakage and displayed the hands perfectly. If you have a very long heirarchy with many different objects attached then you don’t have any other option but to work your way the hard way. In 3.5 I simply deactivated the whole hierarchy and then reactivated JUST the parent and then went down and activated just the needed game objects - none of the bones were activated or any other gameobjects because they just were’nt needed.

If No one is going to pose a solution then this thread might as well be closed, though I do warn to Unity this change was a tad crippling and just wasn’t necessary since the 3.5 one gave The Option to do both. Suddenly removing that option is never the way to go forward. So Unity keep that in mind for the future. It is about Options and Options will make your clients and customers love you more.

I myself am disappointed that this change was actually allowed. But whats done is done. If no change is going to occur to fix this then I suppose the next best thing will be to modify the work flow me has or just move on.

Unities work-flow is about Efficiency - this is a step back.

Totally agree with ypu silverstorm. Think it shouldve been left how it was as management of hierachies was easier where parents were deactivated but individual children could still be active.

I myself had no problems recoding some stuff to the new way bit i still preferred. The old way.

Thanks You. Well I spent several hours learning Mechanim - a lot of strange bugs were encountered resulting in my Experience of what was supposed to be the Greatest to be the Worst…because of the new additions to Mechanim - Unity just got a whole lot more complex - I had some strange bone issues as well and with the introduction of the masking and all these other options that could conflict I found myself spending grueling hours trying to fix the problem which eventually led me back to change my character Hierarchy because Mechanim has strict limits on what can be used. But in all that I got to learn Unity pretty well. Its just that I thought Mechanim would work hand in hand with legacy animations. But unfortunately Unity wants 1 OR the Other - this is a problem as the “Generic Option” is pointless as ani…I’m going off topic but anyway I am actually keeping a close eye on Unity - this is supposed to be the Best Game Engine out there. Now there are much more I can guess “intended” bugs like using alt to pan view - if you do it within a Skinned Mesh Renderer you actually can easily screw the bounds up - when you Zoom or Pan you should only be interacting with the View and Unity doesn’t make “realizing” minor changes easy.
Also This is 2012 and Unity still has no “Select” button Or “Mirror” button. I am beginning to see the problem here. Unity is trying to make the game engine accessible for everyone but is losing sight of some basics…seriously…a Select Button…It would be so nice to select a game Object in the scene without having to worry about slightly jerking the game object off course because you selected it. The Move tool is for Moving not Selecting. Also ever since Unity 2.6 The Camera movement with the arrow keys in Scene View is too Fast and no option exists to modify that property. Seriously. Unity should Follow ZBrush route - They are the King.

Make no Mistake I Really Like Unity - I have been using unity for 2 years…But this engine is at a crossing point - do not be afraid to challenge UDK and Crysis. Unity can do it and do so Righteously. But the people need to be up for it too.

If I could get my hands on Changing Unity I would do major improvements. It’s what I do.

So The Hierarchy thing I could live with but a lot of my methods no longer seem to work with Mechanim like Animation Speeds, Looping - Mechanim “tries” to do em better but I differ on that. Also because of the Changes Unity is forcing users to learn different ways of doing things. I keep getting the message “is obsolete” …In other words the guys at Unity can’t decide on whats right.

The ONLY reason’s I got Unity PRO was for retargetting which was poorly implemented forcing the user to use Humanoid as the other methods don’t work well. And the Normal Map and Beast Lightmapper combo. If in future versions Unity does come out with another mess up. I might remain with the current version for good or just give up game development. It’s clearly not intuitive or fun to have to keep modifying a previously working and perfect work-flow and then one day being forced to change it and then having to “put up” with the new changes knowing that it’s pointless to complain because even if you do and the message does get released you have to download the updated version…Every now and then I wonder if I should have just made my own Game Engine rather than making a game.

I think perhaps an ‘advanced’ setting would be a way to have that ease of use for beginners but fuller control if so desired. I just read through release notes of 4.0.1, 4.1.1 and 4.1.2. Unfortunately it looks like the parenting system hasn’t been reverted.