Немного обновил скрипт
var controller : CharacterController;
var oldHeight: float;
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.GetMouseButton(1)) {
controller.height -= 0.1;
bf = true;
if(controller.height <= newHeight)
{
controller.height = newHeight;
}
} else {
if (Input.GetMouseButton(1) && !Physics.Raycast (transform.position, Vector2.up)) {
controller.height += 0.1;
if(controller.height >= oldHeight)
{
controller.height = oldHeight;
transform.position = newPos;
bf = false;
}
} else {
if (bf == true && !Physics.Raycast (transform.position, Vector2.up)) {
controller.height += 0.1;
if(controller.height >= oldHeight)
{
controller.height = oldHeight;
transform.position = newPos;
bf = false;
}
}
}
}
}
там где в конце все происходит нормально, поднимаеться он плавно, только он потом проваливаеться под все обьекты
if (bf == true && !Physics.Raycast (transform.position, Vector2.up)) {
controller.height += 0.1;
if(controller.height >= oldHeight)
{
controller.height = oldHeight;
transform.position = newPos;
bf = false;
}
}
}
}
контроллер с колайдером всегда изменяться з центра, как можна его з низу менять,только так что бы колайдер там и оставался и менял только высота а не высоту с низу, его надо как то сжимать и в цетре вроде как, незнаю, подскажите