Walker Boys Unity Course, Lab 3 – Unity Tool Development

Lab 3

Name: Thomas de Goede, aka Lord Herman

Timeframe: Tuesday Feb 14 – Monday Feb 20

Project Detail: See individual projects below

Software Used: Unity 3, NotePad++, FileZilla

Final Thoughts: I thought this lab would be less interesting than the others, but I ended up learning quite a lot of useful things. Building tools to make other parts of development easier will certainly come in handy in later projects.

This was also the first project where I noted exactly how long I worked on each part, rather than estimating it after the fact. It was a chore to do, though, and I forgot about it a few times. In the end, I made a time logging tool the subject of one of the On Your Own assignments.

Time Breakdown:

Folder creator: 1 hour, 15 minutes
Video: 50 minutes
Homework: 25 minutes

Prefab creator: 45 minutes

2D Ani Sheet: 3 hours, 42 minutes
Tool Description: 12m
Research: 46m
Instruction manual: 5m
Pseudocode: 5m
Write it already: 2h 34m

Time Tool:
Video: 5 hours, 8 minutes
Homework: 1 hour

Think About It:
4 hours, 10 minutes

Total: 16 hours

Part 1 – Folder Structure

Although I haven’t made much use of folders before this project, I do think I have an idea of what kind of structure I’d use:

– Documentation
— Plans
— Logs
– Sound
— Music
– Graphics
— Textures
— Fonts
— Shaders
— Materials
— Meshes
– Prefabs
— Objects
— Lighting
— Particles
– Scenes
— Menus
— Game
– Scripts
— Object Scripts
— Tools

The idea is to have large categories, which contain more specific smaller ones. I divide some objects of the same type (e.g. prefabs) into multiple categories because I already noticed in Lab 2 that having particle prefabs and object prefabs all in the same place can get confusing.

My guess is that this setup works for projects slightly larger than what I’ve done so far, but that it’ll break down in much larger projects. I guess I’ll just have to see if it’s suited for the upcoming labs.

Part 2 – Time Tool

Here is the working time tool. I went with the classes approach. I think that’ll work nicest when I use this tool in a larger project; everything will be in one place, and I can easily make multiple timers by instancing the class.

Click here to test the timer tool

Part 3 – Time Logger

I studied my workflow, and the one thing I seem to have trouble with is keeping track of how much time I spend on which things. To make that a bit simpler, I decided to make a tool that lets me set up timers within the Unity editor.

The result is a editor window that can keep track of any number of timers. The user can add new ones, continue existing ones (by typing in the name of one that already exists), pause the timer system, and clear all timers. The window also displays a total of all timers. Time is displayed in hours, minutes and seconds for readability.

It doesn’t save the timers, so the timers are lost when the window is closed. I haven’t found a satisfactory way to handle this yet. Maybe a later lab will cover saving and loading data.

Click here to download the javascript file for the tool

Put the .js file in a project’s Assets/Editor folder to use it. You can open the time logger from the Window menu in the Unity editor.

Part 4 – Extra Credit

The tool for creating a material was relatively easy, as I could model it on the tool for making a prefab. Still, it took some time to figure out how to apply the same principle to textures, as they don’t appear directly in the scene.

Click here to download the javascript file for the material maker

(The other assignment will follow later, once I know what I’m supposed to do)

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s