Синтаксис:
Используется javascript
// Rotaton and position of drone
static var rotationx=0;
static var rotationy:float =0.0;
static var rotationz:float =0.0;
var positionx: float=0.0;
static var positiony: float=0.0;
var positionz: float=0.0;
static var speed:float =0.0;// speed variable
var uplift:float =0.0;// Uplift to take off
var pseudogravitation:float=0.0; // downlift
var rightleftsoft:float=0.0;
var rightleftsoftabs:float=0.0;
var divesalto:float =0.0;
var diveblocker:float=0.0;
function Update () {
// Up Down, limited to a minimum speed
if ((Input.GetAxis("Vertical")<=0)&&((speed>595))) {
transform.Rotate((Input.GetAxis("Vertical")*Time.deltaTime*80),0,0);
}
if ((Input.GetAxis("Vertical")>0)&&((speed>595))){
transform.Rotate((0.8-divesalto)*(Input.GetAxis("Vertical")*Time.deltaTime*80),0,0);
}
// Left Right at the ground
if (groundtrigger.triggered==1) transform.Rotate(0,Input.GetAxis("Horizontal")*Time.deltaTime*30,0,Space.World);
// Left Right in the air
if (groundtrigger.triggered==0) transform.Rotate(0,Time.deltaTime*100*rightleftsoft,0,Space.World);
// Tilt just in the air
if ((groundtrigger.triggered==0)) transform.Rotate(0,0,Time.deltaTime*100*(1.0-rightleftsoftabs-diveblocker)*Input.GetAxis("Horizontal")*-1.0);
//Soft rotation calculation
if ((Input.GetAxis ("Horizontal")<=0)&&(rotationz >0)&&(rotationz <90)) rightleftsoft=rotationz*2.2/100*-1;//linksrum || to the left
if ((Input.GetAxis ("Horizontal")>=0)&&(rotationz >270)) rightleftsoft=(7.92-rotationz*2.2/100);//rechtsrum ||to the right
if (rightleftsoft>1) rightleftsoft =1;
if (rightleftsoft<-1) rightleftsoft =-1;
if ((rightleftsoft>-0.01) && (rightleftsoft<0.01)) rightleftsoft=0;
rightleftsoftabs=Mathf.Abs(rightleftsoft);
if (rotationx < 90) divesalto=rotationx/100.0;
if (rotationx > 90) divesalto=-0.2;
if (rotationx <90) diveblocker=rotationx/200.0;
else diveblocker=0;
// rotateback when key wrong direction
if ((rotationz <180)&&(Input.GetAxis ("Horizontal")>0)) transform.Rotate(0,0,rightleftsoft*Time.deltaTime*80);
if ((rotationz >180)&&(Input.GetAxis ("Horizontal")<0)) transform.Rotate(0,0,rightleftsoft*Time.deltaTime*80);
//Rotate back in z axis general
if (!Input.GetButton ("Horizontal")){
if ((rotationz < 135)) transform.Rotate(0,0,rightleftsoftabs*Time.deltaTime*-100);
if ((rotationz > 225)) transform.Rotate(0,0,rightleftsoftabs*Time.deltaTime*100);
}
// Rotate back X axis
if ((!Input.GetButton ("Vertical"))&&(groundtrigger.triggered==0)){
if ((rotationx >0)&&(rotationx < 180)) transform.Rotate(Time.deltaTime*-50,0,0);
if ((rotationx >0)&&(rotationx > 180)) transform.Rotate(Time.deltaTime*50,0,0);
}
// Speed
transform.Translate(0,0,speed/20*Time.deltaTime);
// 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;
if (speed<0) speed=0;
if ((groundtrigger.triggered==0)&&(!Input.GetButton("Fire1"))&&(!Input.GetButton("Fire2"))&&(speed>695)&&(speed<705)) speed=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.0;
if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed>700)) speed-=Time.deltaTime*240.0;
//uplift
transform.Translate(0,uplift*Time.deltaTime/10.0,0);
uplift = -700+speed;
if ((groundtrigger.triggered==1)&&(uplift < 0)) uplift=0;
if (transform.position.x >= 900.0) transform.position.x = 0;
else if (transform.position.x <= -900.0) transform.position.x = 900.0;
else if (transform.position.z >= 900.0) transform.position.z = 0;
else if (transform.position.z <= -900.0) transform.position.z = 900.0;
if (positiony > 1000) transform.position.y = 1000;
}
static var rotationx=0;
static var rotationy:float =0.0;
static var rotationz:float =0.0;
var positionx: float=0.0;
static var positiony: float=0.0;
var positionz: float=0.0;
static var speed:float =0.0;// speed variable
var uplift:float =0.0;// Uplift to take off
var pseudogravitation:float=0.0; // downlift
var rightleftsoft:float=0.0;
var rightleftsoftabs:float=0.0;
var divesalto:float =0.0;
var diveblocker:float=0.0;
function Update () {
// Up Down, limited to a minimum speed
if ((Input.GetAxis("Vertical")<=0)&&((speed>595))) {
transform.Rotate((Input.GetAxis("Vertical")*Time.deltaTime*80),0,0);
}
if ((Input.GetAxis("Vertical")>0)&&((speed>595))){
transform.Rotate((0.8-divesalto)*(Input.GetAxis("Vertical")*Time.deltaTime*80),0,0);
}
// Left Right at the ground
if (groundtrigger.triggered==1) transform.Rotate(0,Input.GetAxis("Horizontal")*Time.deltaTime*30,0,Space.World);
// Left Right in the air
if (groundtrigger.triggered==0) transform.Rotate(0,Time.deltaTime*100*rightleftsoft,0,Space.World);
// Tilt just in the air
if ((groundtrigger.triggered==0)) transform.Rotate(0,0,Time.deltaTime*100*(1.0-rightleftsoftabs-diveblocker)*Input.GetAxis("Horizontal")*-1.0);
//Soft rotation calculation
if ((Input.GetAxis ("Horizontal")<=0)&&(rotationz >0)&&(rotationz <90)) rightleftsoft=rotationz*2.2/100*-1;//linksrum || to the left
if ((Input.GetAxis ("Horizontal")>=0)&&(rotationz >270)) rightleftsoft=(7.92-rotationz*2.2/100);//rechtsrum ||to the right
if (rightleftsoft>1) rightleftsoft =1;
if (rightleftsoft<-1) rightleftsoft =-1;
if ((rightleftsoft>-0.01) && (rightleftsoft<0.01)) rightleftsoft=0;
rightleftsoftabs=Mathf.Abs(rightleftsoft);
if (rotationx < 90) divesalto=rotationx/100.0;
if (rotationx > 90) divesalto=-0.2;
if (rotationx <90) diveblocker=rotationx/200.0;
else diveblocker=0;
// rotateback when key wrong direction
if ((rotationz <180)&&(Input.GetAxis ("Horizontal")>0)) transform.Rotate(0,0,rightleftsoft*Time.deltaTime*80);
if ((rotationz >180)&&(Input.GetAxis ("Horizontal")<0)) transform.Rotate(0,0,rightleftsoft*Time.deltaTime*80);
//Rotate back in z axis general
if (!Input.GetButton ("Horizontal")){
if ((rotationz < 135)) transform.Rotate(0,0,rightleftsoftabs*Time.deltaTime*-100);
if ((rotationz > 225)) transform.Rotate(0,0,rightleftsoftabs*Time.deltaTime*100);
}
// Rotate back X axis
if ((!Input.GetButton ("Vertical"))&&(groundtrigger.triggered==0)){
if ((rotationx >0)&&(rotationx < 180)) transform.Rotate(Time.deltaTime*-50,0,0);
if ((rotationx >0)&&(rotationx > 180)) transform.Rotate(Time.deltaTime*50,0,0);
}
// Speed
transform.Translate(0,0,speed/20*Time.deltaTime);
// 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;
if (speed<0) speed=0;
if ((groundtrigger.triggered==0)&&(!Input.GetButton("Fire1"))&&(!Input.GetButton("Fire2"))&&(speed>695)&&(speed<705)) speed=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.0;
if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed>700)) speed-=Time.deltaTime*240.0;
//uplift
transform.Translate(0,uplift*Time.deltaTime/10.0,0);
uplift = -700+speed;
if ((groundtrigger.triggered==1)&&(uplift < 0)) uplift=0;
if (transform.position.x >= 900.0) transform.position.x = 0;
else if (transform.position.x <= -900.0) transform.position.x = 900.0;
else if (transform.position.z >= 900.0) transform.position.z = 0;
else if (transform.position.z <= -900.0) transform.position.z = 900.0;
if (positiony > 1000) transform.position.y = 1000;
}