Great Tool for AR & VR Experiences
February 02, 2019

Great Tool for AR & VR Experiences

Jonah Dempcy | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Unity

Unity is used by our software developers and CTO to produce rich, immersive AR and VR experiences. We use Unity to produce cross-platform content that is usable in a number of ways: as standard 2D and 3D desktop apps, on desktops for VR platforms such as HTC Vive and Oculus Rift, and on mobile devices as both 2D and 3D apps as well as AR and VR experiences.

The business needs that Unity meets are being able to write code once that can be rendered on a number of platforms. While we do have specific code integration paths for Android versus iOS, and there are unique differences when writing code for different use cases, our ability to reuse assets and much of the business logic in the apps is simply incredible. Unity gives us tremendous efficiency in code re-use and allows us to meet business needs such as being able to rapidly prototype, as well as integration with Android Studio and Xcode. We are also able to easily update 3D assets in Blender and view changes in realtime in Unity, thanks to Unity's excellent integration with Blender.
  • 3D space design is especially easy in Unity, whether for 3D games or educational experiences.
  • VR development is one of Unity's greatest strengths. The ability to be working in a 3D environment on the desktop and then hit Play and be immersed in that environment in the HTC Vive or Oculus Rift is incredible.
  • Reusable code from the asset store is a huge plus. Being able to find libraries which solve the problems you are trying to solve can save an incredible amount of time.
  • Staying up to date with changes in VR and AR development is a big plus. Unity has such a strong community that libraries are always being updated.
  • Finding example code is not very hard, and there are "scenes" that other developers have created that you can import and view, to see how they achieved particular goals. This makes learning Unity by reverse-engineering others' publicly available code a great way to learn.
  • There are so many free video tutorials in Unity that it is much easier to learn than some of its competitors in the space.
  • Unity's AR plugins are still in their infancy and as they grow more robust, Unity will only get better.
  • Unity's VR development requires the use of much third-party functionality that could be included in core Unity libraries in order to create less external dependencies.
  • Unity's mobile integration requires building for mobile devices in a one-way movement. It would be nice if you could be coding in Android Studio or Xcode, and making changes in Unity in realtime, then running the apps from AS or Xcode. In short: Unity's mobile app workflow is unidirectional right now and requires a lengthy build process, which could be vastly improved if you were able to make changes in Unity and hotswap code.
  • Unity has allowed us to serve customers which we would otherwise not be able to serve, which has brought in new markets and along with it helped us achieve our business goals of providing top-notch AR and VR experiences.
  • Unity has also allowed us to rapidly produce educational materials which we use for teaching VR and AR to students, so that's been a big win.
  • There have been no negative impacts from Unity besides the initial upfront cost of learning the software, although the learning curve was very accessible. Our investment of time in learning this tool and putting it into practice has paid off in our ability to provide rich, immersive AR and VR experiences for our clients.
Unreal Engine is a fantastic piece of software but it has a much steeper learning curve and an arcane, idiosyncratic way of developing software that is quite foreign. Unity uses some similar concepts to Adobe Flex, which we've always found easy and sensible. It is also easier to go to Unity having either a Java or C# background.

We also explored using Android Studio and Xcode on their own for AR experiences and that is a suitable option depending on the use case, but Unity is still a great tool for rapid prototyping and even for building finished, shipped apps.
Unity is excellent for 2D and 3D games and educational experiences. It is well-suited for VR and AR development. It is also a great platform for mobile games. It is less-suited for non-game purposes (although it can certainly be used for those as well), or educational experiences. It is also less-suited for AR experiences that are highly complex, where you will probably want to write the native code in Android Studio or Xcode, as the case may be. It is theoretically less-suited for cases where performance is a huge concern as well, although, in my experience, performance has never been a problem.

Using Unity

ProsCons
Like to use
Relatively simple
Easy to use
Technical support not required
Well integrated
Consistent
Quick to learn
Convenient
Feel confident using
None
  • Building 3D environments
  • Adding physics to 3D objects
  • Positioning 3D objects
  • Restricting the camera in certain ways in VR (e.g. giving the user the experience of sitting in a canoe).
  • Complex user interaction with 3D objects in VR (some interactions like grabbing are easy and straightforward but others take time to get right).
It's actually incredibly easy to use given the complex tasks you have. Once you learn the various windows it becomes second nature. Compared to something like Blender (which I would probably rate as a 2 on usability), the learning curve of Unity is a breeze! The only improvements I can think of would be to streamline some common workflows so you don't have to dig through menus to find them.