JavaScript... ну ка почему такой вопрос в разделе по C#?
Во первых для кнопок с такой проверкой я бы использовал Input.GetAxisRaw а не Input.GetAxis, т.к. последняя возвращает сглаженное значение.
И писал бы не так...
private var n :boolean =true;
var lastInput: float = 0;
function Update () {
var input = Input.GetAxisRaw("Perekl");
// когда у нас происходит нажатие в положительную сторону оси
// нам надо поймать это нажатие.
if(lastInput < input ) n=!n;
lastInput = input;
if(n)
{
this.GetComponent(Car).enabled = true;
this.GetComponent(Vertolet).enabled = false;
}
else
{
this.GetComponent(Car).enabled = false;
this.GetComponent(Vertolet).enabled = true;
}
print(n);
}
Либо я бы вообще использовал Input.GetKeyDown() для ловли нажатия кнопки.
UPD: И вообще обновлять в каждом кадре состояния компонентов это изврат. Сделай хотя бы так:
private var n :boolean =true;
var lastInput: float = 0;
function Update () {
var input = Input.GetAxisRaw("Perekl");
// когда у нас происходит нажатие в положительную сторону оси
// нам надо поймать это нажатие.
if(lastInput < input )
{
n=!n;
this.GetComponent(Car).enabled = n;
this.GetComponent(Vertolet).enabled = !n;
}
lastInput = input;
print(n);
}
UPD2: кстати что это за машина-вертолет?