I want to be able to support different controls eventually (particularly Xbox type thing). Unity3D takes care of a lot of this out of the box, so as long as I don't use point-and-click solely, it just works.
One problem I have is that it is difficult to tell what control effect you're having on the Cloudship. This has been exacerbated by moving the camera around. The controller will need to tell the player what's going on with the Cloudship. My plan for the controller was to group together similar things: helm, EOT (speed), compass etc on a barrel:
Rather than model it all in one go, I decided to do just the barrel and wheel. I've started collecting ideas on Pinterest so that time isn't wasted when I get to sit at the machine at home.
I'm keeping the models low-poly and every circle is a multiple of 6, which is a limitation but gives the whole thing a balance. Low poly modeling is a piece of piss. I'm tempted to break out Blender and improve my skills on that but I'm just so productive on Lightwave, it's ridiculous. The model below took me 20 minutes. I'm well impressed with myself about that! The wheel and barrel are on separate layers and I've centered them both in the exported model so that all transforms are done in Unity. No big deal, it's much the same in Lightwave Layout (the renderer). The centre of the wheel is super-plain because that's where the EOT is going, so you won't see it.
Exported from LW to FBX and imported in, I spent a huge amount of time getting it to stick in from of the camera without warping. I started with it as a child of the camera but the camera itself has scale applied to it, which is passed onto its children (which makes sense). So I tried putting in "empty" intermediaries to break the parent-child chain and applying a reverse scale (which worked until the camera moved). I tried making it its own independent thing
I settled on putting in an "empty" to act as a parent to the camera and the controller and the moved the "movement" script from the camera to the new empty parent. That was done in the UI, I didn't have to change any code at all! Which is nice. Unity does some clever "automatic" setting of position/rotation/scale so if you move from one co-ordinate system to another then it assumes you meant to change the position and rotation to keep the object where you put them.
Getting the wheel to move in time with the Cloudship was very easy. I experimented with making it its own physical object but it looked weird that the wheel would accelerate differently to the Cloudship. Realistically, it would need to lag ahead of the movement but that looked really odd. Instead, I just set the Z rotation of the wheel to a multiple of the Cloudship's yaw (Y axis). As the Cloudship is already under the governance of physics, the wheel moves pleasingly as if it is too.
There is enough here to make something of a video, so I fired up Fraps and took a snap for YT and Facebook.
As the controller is a real 3D object, it is lit by the rest of the scene. I might add its own light at some point so that it is illuminated regardless of what the scene is doing.
The next step is to add the EOT (engine order telegraph) for speed and Compass to show wind direction. A lot of the ideas I'm using here are just reproduced in those, so they should be much easier to make.