As part of my work at the University of Minnesota, I investigated new technologies and found ways for them to be useful for general faculty and students in their research. Some of this work was taking an already accessible technology, like Unity, and making tools that allowed laypersons to use that technology with as little pain as possible. This Unity tool was developed to ease the process of bringing one's assets into Unity to be viewed for either public interest purposes or for a more convenient method of continuing research.
To create this tool, I first drafted a custom Unity editor script for better control of the component's interface through Unity's Inspector. Once I set up the skeleton for that, I began with a simple "artifact on a stand" translation with a game object from the project assets. From there, I implemented a rotation system that calculated the object's center from all of its geometric bounds in order to rotate about the object's true center (instead of the oft-wrong pivot). Alongside adding small tweaking options, I added in gaze-based teleportation, rotation, and "pick-up" interactions, then wrapped it up by allowing several different "types" of exhibits--a model on a display stand, a free-standing structure, and a picture.
- Customized a Unity C# MonoBehavior's component options by using a custom editor.
- Created generalized transformation methods for correctly rotating and translating imported geometry regardless of pivots or children by using rendering bounds.
- Designed and implemented a robust input checking and reacting system to allow almost all desired changes to be made within the Inspector window instead of in the Scene View.