- Home /
Question by
Chrishutchy · Dec 30, 2013 at 11:37 AM ·
javascriptmovementplaneaccelerometerfly
How to add accelerometer controls to this script?
Hi,
New to unity and scripting and have to make a simple game for my university course. I've been using this script that i've found online for a plane but I need the controls to use the accelerometer for the planes controls so tilt left fly left, tilt up fly up etc... Any idea on how to put this into this script as I do not have a clue and this is due in in a couple of weeks?
Thanks
Chris
var gameover=0;// Game Over || Turn on and off the airplane code. Becomes interesting at a later point. Game over ...
static var airplaneangley: float=0.0;// This goes to the blob shadow.
// Rotaton and position of our airplane
var rotationx=0;
var rotationy=0;
var rotationz=0;
var positionx: float=0.0;
var positiony: float=0.0;
var positionz: float=0.0;
var speed:float =0.0;//speed variable is the speed
var uplift:float =0.0;
function Update () {
//Shadowstuff-----------------------------------------------------------------------------------------------------------------------------------------
//shadow to the same angle than the airplane
airplaneangley= transform.eulerAngles.y;
//Maincode flying ----------------------------------------------------------------------------------------------------------------------------------
//Code is active when varwhatmoves is 1
if(gameover==0){
// Rotations of the airplane
if (speed>595)transform.Rotate(Input.GetAxis("Vertical")*Time.deltaTime*100,0,0); //Hoch Runter, limitiert auf eine Minimalgeschwindigkeit || Up Down, limited to a minimum speed
transform.Rotate(0,Input.GetAxis("Horizontal")*Time.deltaTime*100,0,Space.World); //Rechts Links || Left Right
if (groundtrigger.triggered==0) transform.Rotate(0,0,Input.GetAxis("Horizontal")*Time.deltaTime*50*-1); //Seitenneigung. Mal Minus 1 um in die richtige Richtung zu drehen || Tilt multiplied with minus 1 to go into the right direction
//limit tilt so that airplane doesn`t fly a roll while flying a curve
if ((Input.GetAxis ("Horizontal")<0)&&(rotationz >45)&&(rotationz <90)) transform.Rotate(0,0,Time.deltaTime*-50);//linksrum || to the left
if ((Input.GetAxis ("Horizontal")>0)&&(rotationz <315)&&(rotationz >270)) transform.Rotate(0,0,Time.deltaTime*50);//rechtsrum ||to the right
//Speed
transform.Translate(0,0,speed/20*Time.deltaTime);
//Turn variables to rotation and position of the object
rotationx=transform.eulerAngles.x;
rotationy=transform.eulerAngles.y;
rotationz=transform.eulerAngles.z;
positionx=transform.position.x;
positiony=transform.position.y;
positionz=transform.position.z;
//Rotate back in z axis , limited by no horizontal button pressed
if ((rotationz >0) && (rotationz < 90)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*-50);
if ((rotationz >0) && (rotationz > 270)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*50);
if ((rotationz >180) && (rotationz < 270)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*-50);
if ((rotationz <180) && (rotationz > 90)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*50);
//Rotate back X axis
if ((rotationx >0) && (rotationx < 180)&&(!Input.GetButton ("Vertical"))) transform.Rotate(Time.deltaTime*-50,0,0);
if ((rotationx >0) && (rotationx > 180)&&(!Input.GetButton ("Vertical"))) transform.Rotate(Time.deltaTime*50,0,0);
//Speed driving and flying ------------------------------------------------------------------------------------------
//
//We need a minimum speed limit in the air. We limit again with the groundtrigger.triggered variable
// Input Accellerate and deccellerate at ground
if ((groundtrigger.triggered==1)&&(Input.GetButton("Fire1"))&&(speed<800)) speed+=Time.deltaTime*240;
if ((groundtrigger.triggered==1)&&(Input.GetButton("Fire2"))&&(speed>0)) speed-=Time.deltaTime*240;
// Input Accellerate and deccellerate in the air
if ((groundtrigger.triggered==0)&&(Input.GetButton("Fire1"))&&(speed<800)) speed+=Time.deltaTime*240;
if ((groundtrigger.triggered==0)&&(Input.GetButton("Fire2"))&&(speed>600)) speed-=Time.deltaTime*240;
//Auftrieb -------------------------------------------------------------------------------------------------------------------------------------------------------
//When we don`t accellerate or deccellerate we want to go to a neutral speed in the air. With this speed it has to stay at a neutral height. Above this value the airplane has to climb, with a lower speed it has to sink. That way we are able to takeoff and land then.
// Neutral speed at 700
//This code resets the speed to 700 when there is no acceleration or deccelleration. Maximum 800, minimum 600
if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed<700)) speed+=Time.deltaTime*240;
if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed>700)) speed-=Time.deltaTime*240;
//uplift
transform.Translate(0,uplift*Time.deltaTime/10.0,0);
//Calculate uplift
uplift = -700+speed;
//We don`t want downlift. So when the uplift value lower zero we set it to 0
if ((groundtrigger.triggered==1)&&(uplift < 0)) uplift=0;
}
}
Comment