I created a fps game in Unity3d, and when I came to build it I realised that it couldnt possibly work on an ios and there are no joystick controls and such.
Is there any way I can change my current game into ios compatible or will I have to start again, and how would I do it for ios?
From a purely technical point-of-view, you change the target platform quite simply by going File → Build Settings → Target Platform → iOS.
However, from a gameplay point-of-view, (i.e. realising that it won’t work on a touch screen device…) sorry to say but that is a consideration you should have thought of before ever even writing a line of code. One of Unity’s strengths may be that it allows you to publish to multiple platforms, but that doesn’t mean you can just hit “publish to everything” and expect it to work. Different devices have different input controls, screen resolutions, CPU and memory limitations, screen sizes, audio capabilities, distribution mechanisms… and you need to think of all these right at the outset of your design. You can of course implement virtual on-screen joysticks (a basic example is included in the standard assets (mobile) pack), but these will occupy screenspace and may not work as you expect.