Этот скрипт рассматривался в этой теме. Вот моя версия на JS:
Code
var controller : CharacterController;
var oldHeight;
var newHeight: float;
var newPos;
var bf : boolean = false;
function Start () {
controller = GetComponent(CharacterController);
oldHeight = controller.height;
}
function Update() {
newPos = new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z);
if (Input.GetKey(KeyCode.LeftControl)) {
controller.height = newHeight;
bf = true;
} else {
if (Input.GetKeyUp (KeyCode.LeftControl) && !Physics.Raycast (transform.position, Vector2.up)) {
controller.height = oldHeight;
transform.position = newPos;
bf = false;
} else {
if (bf == true && !Physics.Raycast (transform.position, Vector2.up)) {
controller.height = oldHeight;
transform.position = newPos;
bf = false;
}
}
}
}