Unity3D usage Experience
I have been using Unity3D to make game for half one year. I began to lean Unity3D with some books, online articles, forums, documents and Google. However although there are many helps, but for some problems I have to deal with them alone. And for some others, I have to solve them again and again (this could happen when some stress in the project). Here are the some problems and it’s solution:
1) Every time some errors happen, please check the “Debug Console Window”output for details reasons;
2) Please click “Apply”button after you modify a prefab resource;
3) From the “Build Setting”, you could find and choose the current active platform;
4) Check “Edit”-> “Preference”-> “Always Launch Open Project Wizard”, this will make you open multiple Unity3D application in one computer;
5) If you want to scale or rotate some models or characters that already scaled or rotated, one good way is give it a parent game object, and you could scale or rotate the parent game object;
6) Unity will release the game object even if you keep them with static variable. You need to call Object.DontDestroyOnLoad function when such game object jut created; And when you really want to delete such object, you need to call Object.Destroy function and set it’s variable to null;
7) “Assets” folder is the current working folder;
8) For game object, scale, position property will work only when those properties reset. It will not work with it’s set function. Because they are structure instead of class in c#;
9) Unity could not support new a game object in any class constructors;
10) Every time when you re-assign a new parent to a game object (assign a new transform to tranform.parent), you need to reset it’s local scale value;
11) Build error for android, “UnityEditor.MonoAssemblyStripping.DoesTypeEnheritFrom …… ”, to address it just choose “Disable Strip Level”;
12) Make the game run even lose focus, check“Project Setting” –> “Player” –> “Run In Background”;
13) Z-fighting: a) Find the Camera, increase the “near value”and decrease the “far value”; b) Try to use “24bit Depth Buffer” in the player setting;
14) When you find that the skeleton animation is the performance neck, maybe you should consider to use frame animation. Unity will not convert skeleton animation to frame animation for you. So you need to provide unity with frame animation already in the FBX files.
15) Every time you use a boolean variable to check whether a special event happen, please make sure that on event already happen;
16) Provide the shader with some default parameters to make them be displayed;
17) Unity do not take the “short” type as editable parameter;
18) OpenGL ES 1.0 vs OpenGL ES 2.0, sometimes you need to uniform the shader version for all game objects. Either you make all game object use the simplest shader (fake shader with texture stage) or advanced shader (real shader), do not mix them. Otherwise it will cause some display problems on some android device.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Something More
Here are some other tricks that I use them usually:
1) mysql-nt --install # install mysql as a service
2) net stat mysql # start up mysql service
3) net stop mysql # shut down mysql service
4) mysqladmin –uroot password [password] # login the mysql with root user name
Linux command
1) netstat -lnp|grep 88 # check which process take 88 port
2) ps [process id] # check the process details information
3) kill –9 [process id] # kill the process with given process id
4) java –jar Hello.jar & # run the Hello.jar as the background process