Hello everyone - Against better judgment I decided to upgrade from 3.3 to 3.4 in the middle of my project. After installing 3.4, my project no longer compiles; I get about 1000 script errors – almost all of them are:
‘function name’ is not a member of ‘Object’
Double clicking the error opens up my Mono Develop project, but as soon as it opens I get an error/warning that wasn’t there before: “my_project.sln: unsupported or unrecognized project”
I did some searching and it looks like some others are having some trouble with Mono Develop after the 3.4 upgrade, but it seems to be centered around the project hierarchy changing and not the entire project breaking.
Is there some additional step to now link Mono Develop to a Unity project that I may be missing? What I also found interesting is that, upon opening my project for the first time in Unity 3.4, I didn’t get any kind of “upgrading project” or similar message that I often get when loading old example projects into newer versions of Unity.
EDIT: If I create a brand new project with brand new scripts, the scripts do compile. But, opening the scripts in Mono Develop leads to the same unsupported/unrecognized error.
Any help is appreciated,
Joe
After looking at the errors more carefully and doing additional research, it seems like Unity 3.4 now requires all javascript variables to be typed? Thankfully I have a pretty strong programming background, so all but about 10 of my variables were typed; a couple were used extensively which really blew the error count high. After fixing the types the game seems to run fine…although I still get the error when opening any script file in Mono Develop - any info anyone has here would still be helpful.
I can’t even BEGIN to imagine trying to deal with this if I hadn’t typed 99.9% of my variables. It’s obviously good practice, but to straight up require it in an update, especially with a tool that is marketed to people who might not have a strong engineering background, seems like a bad idea…
It’s only required for iOS/Android publishing, and it was required before for those anyway; web/Mac/PC publishing is not affected. The main difference is that it occurs at compile-time now instead of when publishing. Furthermore, it’s just going back to the original (and better) behavior from Unity iPhone, it’s not actually a new thing. Also, type inference takes care of variable types as long as you supply a value, so you don’t have to explicitly type anything (except in function declarations) if you don’t want to, though it’s a good idea if there’s any possibility of confusion.
–Eric
Hi I had same issue and I too was lucky to only have about 10 instances of whole project where i hadn’t typed my variables.
However, I am getting three new issues:
"name’ is not a member of ‘object’ (was cool in 3.3)
Unknown Identifier: ‘horizontal’ (in the Standard Assets - Mobile Script: SmoothFollow2D)