Надо считывать разное нажатие клавиш:
public Gameobject obj; //Префаб игрока
public int c; //Счетчик положения
void Update(){
if(Input.GetKey(KeyCode.Space))//При зажатии
c = 3;//Положение игрока в воздухе
else c = 1;
if(Input.GetKeyUp(KeyCode.Space) && c == 1)//При нажатии с отжатием
c = 2; //Положение падения
else if(Input.GetKeyUp(KeyCode.Space) && c == 2)//При нажатии с отжатием
c = 1;//Положение взлета
if(c == 1)
obj.transform.position += new Vector3(0f ,1f * Time.deltaTime, 0f); //По вектору y обьект плавно летит вверх
esle if(c == 2)
obj.transform.position -= new Vector3(0f ,1f * Time.deltaTime, 0f); //По вектору y обьект плавно падает вниз
}
Как то так.