Okay, after allot of work (from a beginner mind you) I have a crude, semi-working spaceship control script, with the help of the forums as always, and I referenced Tiles airplane script quiet a bit, (Good stuff man). I still have a couple major issues, the most obvious at the moment is that when flying down and turning left or right the ship doesn’t really turn left or right, I’m not exactly sure whats causing it, you can be sure I’ll be digging around in there trying to figure it out, but if anyone wants to drop me a tip or two I’d love it, Here’s the script, feel free to try it out, you should be able to put it onto any object and fly!
function Update () {
transform.Rotate(Input.GetAxis("Vertical") * Time.deltaTime * 100,0,0);
transform.Rotate(0,Input.GetAxis("Horizontal") * Time.deltaTime * 100,0,Space.World);
transform.Rotate(0,0,-Input.GetAxis("Horizontal") * Time.deltaTime * 100);
//limit tilt
if (transform.eulerAngles.x >45 transform.eulerAngles.x<180)
transform.eulerAngles.x = 45;
else if (transform.eulerAngles.x<315
transform.eulerAngles.x>180) transform.eulerAngles.x = 315;
if (transform.eulerAngles.z >45 transform.eulerAngles.z<180)
transform.eulerAngles.z = 45;
else if (transform.eulerAngles.z<315
transform.eulerAngles.z>180) transform.eulerAngles.z = 315;
//return to 0 if nothing is pressed
if((transform.eulerAngles.z>0) (transform.eulerAngles.z>180) (!Input.GetAxis("Horizontal"))) transform.Rotate(0,0,100 * Time.deltaTime);
if((transform.eulerAngles.z == 0) (!Input.GetAxis("Horizontal"))) transform.Rotate(0,0,0);
if((transform.eulerAngles.z>0) (transform.eulerAngles.z<180) (!Input.GetAxis("Horizontal"))) transform.Rotate(0,0,-100 * Time.deltaTime);
if(((transform.eulerAngles.z == 0) (!Input.GetAxis("Horizontal")))) transform.Rotate(0,0,0);
if((transform.eulerAngles.x>0) (transform.eulerAngles.x>180) (!Input.GetAxis("Vertical"))) transform.Rotate(100 * Time.deltaTime,0,0);
if((transform.eulerAngles.x == 0) (!Input.GetAxis("Vertical"))) transform.Rotate(0,0,0);
if((transform.eulerAngles.x>0) (transform.eulerAngles.x<180) (!Input.GetAxis("Vertical"))) transform.Rotate(-100 * Time.deltaTime,0,0);
if(((transform.eulerAngles.x == 0) (!Input.GetAxis("Vertical")))) transform.Rotate(0,0,0);
//always forward
transform.Translate(0,0,20 * Time.deltaTime);
}