We learned a lot from exporting to Unity so we would like to share what we learned here in what we consider the most important aspects:
Scaling: We know that a Unity’s unit equals a meter in Maya but we recommend creating your own scaling reference to work faster.
Collapsed models: It took 2 to 3 weeks to understand why our models were collapsing inside Unity, we tried a lot of different export settings but it all finally worked out when the rigging department found the solution in a special attribute inside our character’s joints , this attribute is called Segment scale compensate and you don’t need to have it ticked in every joint but the root.
Main controller: It’s important not to set a key on your character’s main controller, it may sound obvious but it accidentally happened to us sometimes and developers had problems with it as it kept the position of the character not allowing them to control it freely.
Resource optimization: We suggest creating an atlas with your textures and interface elements, using a power of two resolution. You need to find the correct balance between quality and the application total size.
One of the main challenges we had to overcome was porting the mobile version to VR which was not initially planned. We started fixing and redesigning how user interaction worked, both artists and developers had to almost start over because images required a better resolution now.
User inputs: Changing touch inputs into a raycasting and collision system to detect interaction was difficult due to the lack of information and examples to follow. But these links helped a lot:
3rd person characters: we had to create a correct way to handle physics and collisions for the character to move smoothly but audio synching is still something we need to polish in spite of working a lot on it.
Progress reports and storing user data: There is no such thing as an infrastructure capable of storing lots of data and user information here, so we used tools inside cloud services to help us send data that would allow users to keep their progress no matter in which OS they’re playing.