Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

Advanced Additive Scenes: Multi-Scene Editing. Now With Free Demo!

Discussion in 'Assets and Asset Store' started by Jodon, May 20, 2014.

  1. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hey Scott,

    That would indeed be an issue. Do you think I should ignore changes that occur on-load?

    Cheers.
     
  2. bjornrun

    bjornrun

    Joined:
    Oct 29, 2013
    Posts:
    88
    Workflow question:
    How to make sub-scenes self contained with camera, audio listener, etc and testable on target, and then when included in main scene it disables those objects used for sub-scene testing?
     
  3. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    You can write a script that determines if it's the only Camera in the scene, then disable the Camera GameObject.
     
    bjornrun likes this.
  4. TagScott

    TagScott

    Joined:
    Oct 17, 2014
    Posts:
    21
    I'm not sure exactly how the Unity layout stuff works, I assume it only refreshes once on scene load so your suggestion would hopefully work; however I'm not sure what other side effects it might introduce. Sounds a reasonable suggestion though
     
  5. ZannaU

    ZannaU

    Joined:
    Mar 24, 2013
    Posts:
    17
    We are having a similar issue. If there is a subscene with UI elements every time I close the main scene it will ask to either Undo/Unlock the subscene even if we did not modify it.

    I use a single UI scene for the game HUD that is included in every game level. So basically I get this message every time I switch between levels. Not a huge deal but it can be confusing especially to the less technical members of the team.
     
  6. BernsteinA

    BernsteinA

    Joined:
    Jun 26, 2013
    Posts:
    13
    I'm finding that scene files are being modified just by unlocking and locking them if I lnlock and lock a sub scene which contains a prefab instance that has a cross scene reference on one of its scripts.
    The fix:
    Code (csharp):
    1.  
    2. //Createatleastthischange...
    3. varnewMods = newList<PropertyModification>();
    4.  
    5. //Gettheexistingones
    6. varexistingMods = PrefabUtility.GetPropertyModifications(targetObject);
    7.  
    8. //Nowchangealloftheexistingonestomatchours...
    9. intmatches = 0;
    10. if ( existingMods != null ) {
    11. foreach( varmodinexistingMods )
    12. {
    13. if ( mod.propertyPath.Equals(propMod.propertyPath) ) {
    14. matches++;
    15. if (matches==1) {
    16. mod.objectReference = propMod.objectReference;
    17. }
    18. else {
    19. continue;
    20. }
    21. }
    22. newMods.Add (mod);
    23. }
    24. }
    25.  
    26. if(matches==0)
    27. newMods.Add( propMod );
    28.  
    29. //Telltheprefabthisisanoverride
    30. PrefabUtility.SetPropertyModifications( targetObject, newMods.ToArray() );
    31.  
    or just
    Code (csharp):
    1. existingMods.Distinct().ToArray();
    On a similar note, sometimes the sibling order of the placeholder objects changes, which also dirties the working copy on git, without affecting the functionality of the subscene file.

    One more weird one: sometimes a placeholder object that should have been deleted survives a lock/unlock cycle (I think because it's somehow being referenced by another placeholder. Maybe an awake in executeineditmode on a component).
    Because unity doesn't support serialising null for custom classes, now every time I save the scene, a whole bunch of new objects are created, to fill in the null targets on that placeholder. This cascades. Every save it goes one level deeper making more objects.
    Suggest you exclude placeholder objects as referees from the 'does any object reference this' check, when cleaning up obsolete placeholders.
     
    Last edited: Jun 23, 2015
  7. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    I don't think your code came through. Where do I apply this fix? For the time being, what I've done is Suspend the change notifications whenever you load scene. Maybe I can do it for whenever you unlock a scene as well. The issue becomes, when you do Unlock/Lock those Placeholders are re-created, so it actually *is* dirty, even though the functionality would remain the same.

    I'm interested in the placeholders not being cleaned up. Let me know if you have an easy repro case and I'll fix it.

    Cheers.

     
  8. BernsteinA

    BernsteinA

    Joined:
    Jun 26, 2013
    Posts:
    13
    Odd. The code shows fine here (in chrome).
    When saving out a subscene's dependencies, your code as is loops through a prefab's modifications, updates any that match, and then adds a new one anyway. I changed it to ignore any matches beyond the first, and only add a new modification if there were no matches. Could also use linq Distinct()

    I think ignoring changes that happen on scene load makes the most sense. It would fix the uilayout issues (though for us we just don't put any children in until run. We are also using Particle Playground, which likes to instantiate its singleton manager in edit mode, which it now does when any of the sub scenes is loaded.

    Haven't figured out exactly how to reproduce the placeholders not being cleaned up. It may have been when I switched from your DLL to source, and the scenedata objects lost their scripts. But adding a check to see if the source object of a pair is itself a placeholder does seem to fix it. I can't think of a legitimate situation where a placeholder would reference another.

    More feedback, if you'll take it:
    this may be a personal preference, but I added a line to lock a sub scene after saving it. It didn't make sense to me to have an unlocked subscene with cross scene references that should be local.
    Also had to comment out the bit that loads the internal objects. Still crashes for me. Unity 5.1 at least does not seem to mind opening a scene that is missing them (though it re-adds them if the scene is saved on its own).
     
  9. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    I will take another look this weekend. I couldn't figure out what to do in the save vs. locking case. I always save without locking (I'm a habitual saver), would not like to keep locking it on myself. I forgot about that issue, I'll keep it on my todo.
     
  10. henkjan

    henkjan

    Joined:
    Aug 1, 2013
    Posts:
    120
    We work in Unity 4.6.6 and have some problems with duplicate objects in sub scenes (see screenshot).
    This happens randomly (looks like it happens more when updating a branch in git). When we click unload and load again in the Inspector it restores itself correctly.

    How can we fix this?

    We use version 1.8b by the way because 1.8c gives compiler errors when building for iOS on the build server.
     

    Attached Files:

  11. TagScott

    TagScott

    Joined:
    Oct 17, 2014
    Posts:
    21
    Hi Jodon,

    Any joy with the UI layout stuff causing the sub-scene to unlock? Did you test your suggestion of ignoring changes that occur on load?

    Also I have another query for you. We are trying to perform an action on scene save (say updating a config file that has the same name as the scene) using Unity AssetModificationProcessor's OnWillSaveAssets event. This actually fires when sub-scenes are saved within a parent scene but no path or name is provided so we have no way of knowing which sub-scene was saved. Can you think of a way to achieve what we are trying to do?

    Failing that is it possible to get public access to methods from SubSceneEx where we could get all sub scenes in the current scene and the scene name from GetSubSceneFilename and then just perform the action for every sub scene?

    Thanks again for your continued help.
     
  12. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hey Guys,

    Been away for a few days, but I've had a chance to go through all of the issues. Here's where I'm at:

    BernsteinA / TagScott / ZannaU / Others: Regarding Unlock Scene Requests Upon Load

    It looks like I have a fix for this, basically just ignoring changes upon loading a scene. Send me an e-mail and I'll send you the 1.8d Beta.

    TagScott: Callback for SubScene Save
    I'll add something into AssetSceneModificationProcessor or somewhere appropriate.

    BernsteinA: Cross-Scene Reference Woes

    After looking at this issue, I'm pretty sure none of this is supposed to happen. The change suggested isn't right and I suggest you undo it (or you'll lose prefabs with multiple changes to them -- the objectReference must be set for each change unfortunately).

    The placeholders surviving is bad behaviour, and you'll need to let me know what's happening. I can't ignore placeholders because I'm already doing that (CollectDeepHierarchy is executed on the passed-in placeholders and it's told to ignore them). If the placeholder comes from another scene that's another story, but still a valid-enough reason to keep around. Maybe that's what's happening somehow?

    I still need to figure out the save/unlock/lock issues. It's now highest on my priority but won't make v1.8d.
     
  13. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Henkjan,

    I haven't seen that bug occur before. It's possible it's fixed in the latest beta if it occurs during a save operation? E-mail me at the address in the Documentation file and I'll send you the latest beta. I'll make sure it compiles against iOS.
     
  14. nekitu

    nekitu

    Joined:
    Nov 7, 2012
    Posts:
    8
    After saving the scenes, I see "Cross-Scene Ref ({0})" in the refs, instead of a human readable name text. I haven't checked the code, but is it possible to show the actual name of the referenced object?
     
  15. nekitu

    nekitu

    Joined:
    Nov 7, 2012
    Posts:
    8
    I have just changed:
    Code (CSharp):
    1. private static Object GetPlaceholder( SubScene subScene, Object originalObj, string hashId )
    2. {
    3. string name = string.Format("{0} ({1})", originalObj.name, hashId);
    Clipboard01.jpg

    Now you can just read the object's name in the ref in inspector, I dont know if this is a problem with other code logic, but its more readable now, I know what object is actually referenced exactly there.
     
  16. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    That should be okay. My problem is I never know what Cube refers to. In the ! SceneData metadata object I leave behind in each scene, there's a nice inspector to figure out all of the cross-scene references.

    Cheers.

     
  17. nekitu

    nekitu

    Joined:
    Nov 7, 2012
    Posts:
    8
    Well, at least you see what name the object has, and you can rename objects to be more obvious (like: EnemyBossOnTheHill), and not go back and forth to the crossref inspector and the object's properties.
     
  18. BernsteinA

    BernsteinA

    Joined:
    Jun 26, 2013
    Posts:
    13
    To replicate the placeholders sticking around issue, make a script with excecuteineditmode that does e.g. findobjectsoftype to populate a public array. as soon as the placeholders are created, that object will reference them, and they will stick around. (Real-world example of this is the popular Particle Playground plugin)
     
  19. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hello Bernstein,

    I've just submitted v1.8d which does not address the Particle Playground issue. I deemed the change too risky for this release, but I have a fix which I want to test for a while and make sure it's ready for prime time. E-mail me and I'll send it to you. Side-note, I'm about to start using that plug-in in one of my projects, and it's a total mess! :(.

    Cheers.
     
  20. Tony707

    Tony707

    Joined:
    Jun 15, 2015
    Posts:
    37
    Hello,

    Is there an embeded way to reload a specific subscene during runtime ?

    Let's say the player dies, and I just want to reload the gameplay subscene but keep
    all others in place to minimize loading time ?

    Thank you.
     
  21. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Tony, yes you would call Unload() and Load() on the SubScene.
     
  22. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    For anyone on the fence, I have a BIG update: I've made a DEMO version of the plug-in which you can download and try for free. It's fully featured (minus source code) and contains a nag purchase reminder which shows up periodically.

    Get it here
     
    metroidsnes likes this.
  23. metroidsnes

    metroidsnes

    Joined:
    Jan 5, 2014
    Posts:
    63
    Very much appreciated!
     
  24. Tony707

    Tony707

    Joined:
    Jun 15, 2015
    Posts:
    37
    Hi,

    Thank's for your previous answer, it works great!

    It is possible to expose the _loadLevelAsChild SubScene property
    in case I want to Load a subcene manually but as child ?

    Thank you.
     
  25. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Tony,

    Yes the latest v1.8e will have it exposed. I'm still doing some testing with it before I submit it.
     
  26. metroidsnes

    metroidsnes

    Joined:
    Jan 5, 2014
    Posts:
    63
    LoadAdditive method seems to be not available in the demo version.
     
  27. metroidsnes

    metroidsnes

    Joined:
    Jan 5, 2014
    Posts:
    63

    Could you explain more about the lightmapping process? I have a main scene with a bunch of subscenes loaded additively. How should I approach lightmapping in this case?
     
  28. metroidsnes

    metroidsnes

    Joined:
    Jan 5, 2014
    Posts:
    63
    Are there any callbacks to report progress when a subscene finished loading?

    [EDIT] There is, I didn't notice.
     
    Last edited: Jul 15, 2015
  29. WillTex

    WillTex

    Joined:
    Feb 6, 2015
    Posts:
    10
    Hi Jodon,
    We love the sub scene tool! But unfortunately we are having a really big issue, it has broken our undo ability in Unity.
    When making any change to anything we get this error:

    MissingFieldException: Field 'UnityEditor.UndoPropertyModification.propertyModification' not found.
    UnityEditor.Undo.InvokePostprocessModifications (UnityEditor.UndoPropertyModification[] modifications) (at C:/buildslave/unity/build/artifacts/generated/common/editor/UndoBindings.gen.cs:173)

    Our setup is using Perforce, Unity pro (v5.1.1f1), and a bunch of other stuff.
    I quickly made a project with just the plugin and a cube, I believe its an issue with the new minor version of unity fighting with Advanced Additive Scenes.
    I attached the tiny project with the cube and 1 layer.

    Also, funny thing about the error is that I don't have a buildslave folder.

    Thanks.
     

    Attached Files:

  30. WillTex

    WillTex

    Joined:
    Feb 6, 2015
    Posts:
    10
    Update: Not a huge issue, the source code version of the tool works fine. Must be an issue with that dll mixed with that exact version of Unity.
    Me and the otherside guys have some suggestions for improvements, where should we send these suggestions?
     
  31. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    metroidsnes, the LoadAdditive is on the instance of SubScene rather than a static method. So you want to make a field of type SubScene, then on that field use _instance.LoadAdditive().

    The lightmap baking is extremely finnicky in 5.x (it was semi-working in 5.0, then broken in 5.1) and I would not recommend attempting it until 5.2 is released. This is all engine-side so I can't do much about it. There will be a workflow introduced in 5.2 that I will support in my plug-in. In the meantime, develop without baked lighting and ensure all your SubScenes are at the origin (0,0,0) which will put you in good shape for 5.2.

    WillTex, if you're using the Demo version, please use the one built for Unity 5.2. There was an API change between 5.0 and 5.1, and unfortunately I didn't have 5.1 installed (so I built using 5.2).
     
    hopeful and metroidsnes like this.
  32. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Here is fine, I check here almost daily. That way the users can also feedback and agree/disagree with the changes. So far I've been getting a lot through e-mail, which is also fine but doesn't allow others to feedback.

     
  33. WillTex

    WillTex

    Joined:
    Feb 6, 2015
    Posts:
    10
    I've gathered some feedback from my co-workers.
    -Right clicking on an object in your hierarchy view should have a context entry for "Add to Sub Scene"
    (Ex: I right click on a cube that isn't in a sub scene, and I add it to my Deco sub scene)
    -The Unity Icon next to each Sub Scene entry should have the Perforce Icons (Is someone else working on this room?) The lock icon is the one I am most concerned about.
    -Dragging a prefab into the scene should go under my currently selected Sub Scene
    (Ex: I drag in a torch prefab, since I have the Wall in "Room B"s sub scene selected, the torch gets thrown under the "Room B" sub scene object.
    -Sub Scene Script: In the inspector for the "Sub Scene" script, there should be a few extra buttons related to perforce (if you have perforce setup in your build): Checkout, Revert, GetLatest, Lock/Unlock. (This one I might just do myself, I'll update you if I end up doing it)

    -Will (OtherSide)
     
  34. WillTex

    WillTex

    Joined:
    Feb 6, 2015
    Posts:
    10
    I quickly made the "Right Clicking on an object in your hierarchy view should have a context entry for "Add to Sub Scene". Feel free to add this into your next version (And make it prettier if you want).

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using UnityEditor;
    4. using CodingJar.AdditiveScenes;
    5.  
    6. public class AdditiveScenesContextWindow : EditorWindow
    7. {
    8.     [MenuItem("GameObject/Move To Sub Scene", false, 0)]
    9.     public static void DoStuffs()
    10.     {
    11.         AdditiveScenesContextWindow window = (AdditiveScenesContextWindow)EditorWindow.GetWindow(typeof(AdditiveScenesContextWindow));
    12.         window.Show();
    13.     }
    14.  
    15.     void OnGUI()
    16.     {
    17.         GUILayout.Label("Move to Sub Scene", EditorStyles.boldLabel);
    18.         SubScene[] subscenes = GameObject.FindObjectsOfType<SubScene>();
    19.         // TODO: Sort alphabetically?
    20.         for (int i = 0; i < subscenes.Length; i++ )
    21.         {
    22.             // Skip Locked subscenes
    23.             if(subscenes[i].IsLocked())
    24.             {
    25.                 continue;
    26.             }
    27.  
    28.             // Colors WEEEE!!!!!!!!!!!!!!
    29.             Color color = subscenes[i].EditorGetColor();
    30.             color.a = 1f;
    31.             GUI.backgroundColor = color;
    32.  
    33.             if(GUILayout.Button(subscenes[i].name))
    34.             {
    35.                 Undo.IncrementCurrentGroup();
    36.                 int group = Undo.GetCurrentGroup();
    37.                 Undo.SetCurrentGroupName("Move" + Selection.gameObjects.Length + " Objects to Sub Scene " + subscenes[i].name);
    38.  
    39.                 // Take all of our selected objects and throw them under that subscene.
    40.                 for (int j = 0; j < Selection.gameObjects.Length; j++ )
    41.                 {
    42.                     GameObject goObject = Selection.gameObjects[j];
    43.                    
    44.                     // TODO: Add More Safety Checks!!!
    45.                     if(goObject == null)
    46.                     {
    47.                         continue;
    48.                     }
    49.  
    50.                     Undo.SetTransformParent(goObject.transform, subscenes[i].transform, "Add to SubScene");
    51.                    
    52.                     //goObject.transform.parent = subscenes[i].transform; // old way, unsafe (no undo's)
    53.                 }
    54.  
    55.                 Undo.CollapseUndoOperations(group);
    56.  
    57.                 Close();
    58.                 return;
    59.             }
    60.         }
    61.  
    62.         GUILayout.Label("Note: Only listing Unlocked Sub Scenes");
    63.     }
    64. }
    65.  
     
  35. VHornet

    VHornet

    Joined:
    Jul 10, 2012
    Posts:
    45
    hi, there is bug in your latest version, let's say my scenes are arranged like this:

    - A
    -- B : Baked into scene
    -- C : load additive
    -- D : baked into scene
    -- E : baked into scene

    - F
    - G

    The first scene is G, G load to scene F, F load to scene A, and in scene A, some scenes can be load, some scenes can't be.
    This happened with latest version.
    I reverted to older version and it worked
    Please checked it, this happened with Unity 5.1.1
     
  36. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Eric, I think I introduced a bug somewhere in like v1.8d-ish time frame. I'm about to release version v1.8e which would address that as well as some other requests made last week. The builds for v1.8e will be:
    4.6.2 up to 5.0
    5.0.3f2 up to (but not including) 5.1
    5.1.2f1 (released today).
    5.2 beta breaks the plug-in (submitted a bug report, waiting for a fix before I hop back on 5.2).
     
    hopeful likes this.
  37. VHornet

    VHornet

    Joined:
    Jul 10, 2012
    Posts:
    45
    Thanks Jodon, it would be great if you can send me the dll sooner, for now I also got a bug that break undo feature in editor
     
  38. VHornet

    VHornet

    Joined:
    Jul 10, 2012
    Posts:
    45
    @Jodon : I received your version via email, and used it with Unity 5.1.2, but it's still very buggy.

    There are gameobjects in a scene that get duplicated like 2-3 times.
    Also when I used load additive and check on As Child, but the gameobjects still be thrown at the top level, not as child as expected, would you please check it

    My hierarchy is still like :

    - A
    -- B : Baked into scene
    -- C : load additive
    -- D : baked into scene
    -- E : baked into scene

    - F
    - G

    The first scene is G, G load to scene F, F load to scene A, and in scene A, some scenes can be load, some scenes can't be.
     
  39. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hey Eric,

    Looks like this is a new Unity bug where OpenSceneAdditive does not play nicely during a play session (sometimes, and on specific scenes only it seems). It's weird, if I choose the option on the SubScene to LoadLevelAsChild it never fails. Weirder still, the objects appear to be loaded, they just don't display in the hierarchy and render properly... but stepping through the debugger they're all there. I'll file a ticket with Unity and see if I can work around it. What version did you first notice this happening on?

    Cheers.
     
  40. VHornet

    VHornet

    Joined:
    Jul 10, 2012
    Posts:
    45
    Hi @Jodon : here is the bug that I got
    • AAS version 5.0.3 got bug that can not create a reference to a scene
    • AAS version 5.1.2 got bug that load gameobjects in scene 3 times (this happened with DLL I received from your email)
    • AAS version 5.1.1 got bug that break Undo feature in Unity3D
     
  41. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hey Eric, you would need to pair up the correct AAS 1.8eb DLL with the correct Unity version (e.g. the 5.1 DLL won't work with 5.0 unless you're using the source code). I sent a bug to Unity and they were able to repro it. No ETA on a fix yet.
     
  42. MrIconic

    MrIconic

    Joined:
    Apr 5, 2013
    Posts:
    176
    Should I hold off on buying AAS until later?
     
  43. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    There's a demo version available in the original post. If that works for you, then the full version will work for you. Unity is doing major changes to how they're loading levels and it's becoming a full-time job to keep up with what's breaking in every release they do, so it's a bit of a rough time.

    I wanted to provide out-of-the-box pre-compiled DLLs but that's now becoming too cumbersome because Unity 5.1 changed APIs from 5.0. 5.2 beta is too unstable to use. 5.1 patches break level loading in different way than the initial 5.1 did etc. etc. If you're always updating to the latest Unity, using the included source code is probably the way to go.

    I just received a response from Unity that they're going to fix the lightmap issues in 5.3 and hinted that it might be the first release to showcase their native multi-scene capabilities.
     
    hopeful likes this.
  44. Tony707

    Tony707

    Joined:
    Jun 15, 2015
    Posts:
    37
    Unity 5.2 was released a few days ago.

    Is the plugin compatible ?
     
  45. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Nope, Unity decided not to fix the 100% crash bugs until 5.3. A work-around has been submitted to the asset store but not approved. Unfortunately you cannot use baked sub scenes / cross-scene referencing until a patch or 5.3 comes out. I would avoid 5.2. The light map baking still has issues, it was released "on schedule" but too premature to be of much use.

     
  46. neildevine

    neildevine

    Joined:
    Aug 24, 2015
    Posts:
    12
    Hi Jodon, just want to say your plugin looks like it is going to save us a lot of headaches thanks. I am having issues though with the P4Connect plugin not checking out modified subscenes, is this something known ?

    Thanks

    Neil
     
  47. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    Hey Neil, yes, it was known but the version in the pipe (1.82) should fix that. Version 1.82 is the one that works around issues for Unity 5.2, but of course is compatible with all other versions of Unity.

    I should mention if anyone really needs 1.82 before the asset store approves it simply email me requesting a copy and let me know which version of Unity you're using.

     
  48. benblo

    benblo

    Joined:
    Aug 14, 2007
    Posts:
    469
    We've started using 5.2 here as well; at first all seemed fine (we can load multiple scenes in the same frame etc, no pb), but now we're seeing super bizarre behaviors, like objects shifting every time we hit play, or getting their positions set to 11.1111... is that on your radar? (we're not using any lightmapping)
     
  49. Jodon

    Jodon

    Joined:
    Sep 12, 2010
    Posts:
    419
    No, I haven't seen the positions getting set. That's extremely odd, is that in playmode? After an additive load? Are you using "load as child"? I have seen the objects shifting, but not every time I hit play, usually if you save a subscene within a subscene this appears to happen in my 4.6 project which I'll need to track down soon (but this isn't playmode). Note I don't use Additive Load in my own projects atm, I stick to baked, so any more info would be appreciated.
     
  50. benblo

    benblo

    Joined:
    Aug 14, 2007
    Posts:
    469
    I sent you a huge email a couple days ago with more info on the context. We hadn't noticed the shifting issues back then though... we're gonna try the 1.82 update, see if that helps.

    The repro so far: load the world scene, load a subscene: it's fine. Hit play: some of the objects are shifted (that sometimes only happens after a couple play/stop). Hit stop: the objects are still shifted in edit-mode. If you do play/stop some more, they can move more. Now if you save the scene, they remain badly placed, but if you exit Unity and load again, they're back to their correct position!
    We're also seeing a pattern where positions with round number (eg X +138) will stay correct, but if they're a decimal, it shifts (eg 138 becomes 11.1111). And if the X axis is round but the Y decimal (or vice versa), then only Y shifts.
    ... so all in all, kind of a nightmare :).