#Client Moves Global DDOL objects into MovedObjectScene instead of keeping in DDOL

30 messages · Page 1 of 1 (latest)

gloomy pond
#

@mortal ether See Image. This method takes all Spawned Objects on the client and moves them into the moved object scene befor deciding to keep them or not. Doesnt necessarily break anything but for organization there should be a check to keep objects in DDOL IMO, If you think this is considered a bug I can file, if not I can put as a Suggestion.

mortal ether
#

I think not moving them if theyre in DDOL is fine, long as they are marked as global

gloomy pond
mortal ether
#

file an issue as suggestion plz. I'm actually going to shutdown the suggestions channel in favor of git so I stop losing track of things

#

please copy my notes above 😄

gloomy pond
#

@mortal ether Hey bud sorry to bother again, I think we found more problems with this same step.

This part of __loadScenes() does not take into account nested objects for the client either so if there are any nested objects in this list it tries to move them, and throws an error in unity that you can only move root gameobjects.

Dont mean to sound too urgent but I think this may need to be fixed asap. thoughts?

#

The server/host moves the object just fine but client throws error

#

I think we will need 2 additional steps the check for DDOL objects, and check for nob.IsNested

mortal ether
#

SceneManager does check for nested

#

It won't move objects if they are not root, because unity does not allow it.

gloomy pond
# mortal ether SceneManager does check for nested

It doesn’t check for nested for the client, it’s the same part of the code that needs to check for isGlobal as well. Above I filed a bug on git. An error shows on the client saying “cannot move non root objects” on clients with nested nobs

mortal ether
#

Is that unitys error or fn

gloomy pond
#

Unity error

gloomy pond
#

Adding if (!nob.IsSceneObject && !nob.IsNested && !nob.IsGlobal) instead of just isSceneObject fixed both issues

#

It seems like we must not have people utilizing some of your advanced scene management features haha but in our game we are pushing them and finding all the bugs haha

#

I should specify that this is only for that section of code above which is for situations where ReplaceOption != none

mortal ether
#

Ah well be it unity catches it or fn

#

It's going to throw the same

#

FN is supposed to catch it though for a more detailed warning

gloomy pond
#

It seems just a special use case block of code was created and just uses unities move objects function.

mortal ether
#

thats the only way to move them. I'll be sure to take a look, when Im able.

gloomy pond
mortal ether
#

Even when I do add the client-side checks nothing will change though.

#

The move still cannot occur.

gloomy pond
#

I am saying you need to filter out nested objects and isGlobal objects and do not move them.

gloomy pond
#

Also when I say Unity gives the error it also stops the callstack causing the game to stop. which is why I am considering it a pretty big bug even though it seems like it will be a simple fix haha.