By popular demand here are the Release Notes for Unity 3 beta. For some reason we were not including a proper link to them in the installer. This will be fixed in the next release. Until then have fun with a very dense list of fixes, changes, known issues, and improvements
File a bug for this and make your case for why this is important. Iām not sure if this is a fundamental technical limitation or not. But file the bug and post the case number here so I can pass it on to the appropriate developer.
The multithreading bug (rumoured to be part of the version of the .Net framework used in Unity 2.6 and not in 3.0) which causes LoadLevelASync to crash on Windows but work on Mac.
The out of memory error (also rumoured to be part of the version of the .Net framework used in Unity 2.6 and not in 3.0) which causes Unity to never free up memory when loading a level and to eventually crash when it has used up all the available memory.
Iām going to be repeating myself a lot in this threadā¦ sorry about that
Thatās alright though since this thread might consolidate a lot of the problems pre-order customers are having with the betaā¦ bugs reported by the closed beta group and bugs reported by pre-order customers are accordingly filtered by the QA team and the forum is where we catch some of the weirder bugs that are popping up.
@ sybixsus2 - can you still reproduce these bugs in Unity 3? If so please submit a bug report and post the case number here. The Release Notes are a highlight of what has been changed and donāt necessarily cover everything that has been fixed since Unity 2.6.1.
Thanks for that. Can you submit a screenshot or two that demonstrates the problem (or better yet the project folder). I know it seems obvious to you what the problem is, but in order to convince our devs that this is a real problem they need to see concrete examples.
I donāt have access to the beta. It was originally offered in an attempt to solve the problems - since they were causing me to lose a lot of valuable work - but subsequently retracted by the head of Support who felt that the betas were (currently) too unstable for me to gain any benefit.
Understood, but I would appreciate it if someone could get me clear cut answers on whether either bug has been fixed. Since I am (apparently) going to have to pay for an upgrade to get fixes to features advertised in the version I paid for, I would (at the very least) like a guarantee that said bugs have been verified as fixed.
Does this happen outside of the Editor? Loadā¦Async causes lots of problems for us in the editor (2.6.1), but proper builds have no issues except that it jumps from 0 to 89 to 100% so itās not really async at all.
Most of the time, it seems fine outside the editor, but Iāve had reports of it crashing during the loading screen so Iām pretty sure it is occasionally crashing there too.
In the editor, it throws big red errors in the debug log, but doesnāt actually crash. Or at least, Iāve never experienced it crashing.
0 to 89 to 100 can still be async. dont forget that even async has to measure its progress and on loading scenes, these steps are loading objects, not loading bytes as the later has no relevance on the progress (a 8192x8192 texture will take worlds longer than 16 2048x2048 textures to load commonly)
@sybixsus2
We do incredible amounts of async loading. Almost all of our textures are downloaded and loaded async, the music is too. LoadLevelAsync gets called for each zone as the player moves through the seamless world. We have no reports of crashes, and we are mostly Windows-based. What Iām saying is, you may want to look into other things for the crashes. When coming out of our yields we have about 5-6 checks to make sure this isnāt null and the assets arenāt null etc etc, because it used to crash us as well.
if (this == null || mWWW == null || mWWW.assetBundle == null)
yield break;
AssetBundleRequest assetRequest = mWWW.assetBundle.LoadAsync(Name, typeof(AudioClip));
yield return assetRequest;
if (this == null)
yield break;
// Obviously LoadLevelAsync does not have these issues
@dreamora
I realize that, but our max texture size is 1024, and most are around 256. And Iām saying it doesnāt feel async because it still freezes the clients during this, though not as bad as not using it. It is tolerable, but Iād prefer it not to freeze them for more than a half-a-second. Also, the player cannot use the mouse for input during the extent of the async loading.
I always find it odd when people say āWell Iām doing the same thing and it works for me.ā Iām delighted for you, really, but itās been submitted as a bug, it hasnāt been closed and there are quite a number of other people reporting the exact same problems with the exact same command. If weāre all doing it wrong, I would have expected we would have a reply indicating as much by now. I know I couldnāt be happier than if someone from UT sent me an email showing me what a terrible mistake Iād made in my code.
The crashes donāt happen any more. They stopped happening when I replaced LoadLevelASync with LoadLevel. Iām not a betting man but when you change one line and the crashes all stop happening, I tend to believe Iām on to something.
Regardless, I didnāt come here for a debate as to the legitimacy of the bug. I simply wanted a cast iron assurance that the bug is fixed in 3.0 before I stump up a chunk of cash for it. If itās not showing fixed, thatās all I need to know.
Async loading or async ops in general indeed can cause crashes (you will find that out even easier by just doing a dozen WWW requests to the same domain from coroutines on 2.6.x), but from what I recall this is no unity bug unhappily.
Its more something where UT should have ignored the whiners and postphone it for U3, cause the threading in mono 1.2.5 is worlds from solid so adding async ops before the mono upgrade was just forced to cause trouble.
the reason Iām unhappy about it is cause its not optional on WWW or on AssetBundles, you canāt get rid of it.
For WWW you have to write own request queue managers that ensure that the same url is not requests in parallel (request while an ongoing request happens already). This queue manager also has to handle the asset bundle loading as trying to do the same in parallel will also burn you to crisp