Unity. Подъем одного объекта с разных сторон
Допустим есть объект(куб) и допустим при нажатии на кнопку(допустим на клавиатуре E)(картинка 1)е поднималась всего лишь одна чать этого куба, а что бы его выровнять нужно нажать на другую кнопку(допустим на клавиатуре Q)(картинка 2), вообще возможно такое
Ответы (2 шт):
С помощью пустых объектов легко решается.
if (Input.GetKey(KeyCode.Q))
{
Cube.transform.RotateAround(LeftPoint.position, Vector3.forward, _speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.E))
{
Cube.transform.RotateAround(RightPoint.position, Vector3.back, _speed * Time.deltaTime);
}
LeftPoint и RightPoint - поля типа Transform. Их нужно получить с пустых объектов, расположенных на левой и правой нижних гранях самого куба.
Vector3.forward и Vector3.Back актуальны для перемещения по оси Y, если ось другая направления векторов надо поменять.
_speed - скорость перемещения.
Первый ответ бы основан на нефизическом взаимодействии. Я же предложу физическую модель.
т.к. в юнити нельзя применять ускорение к точке обьекта (может и можно, но я про такие способа не знаю), то я предложу обходной путь:
Создать джоинты с обоих сторон "кирпича" которые прикрепить к другим обьектам. Или невидимым или к пустым если это возможно (не в курсе, никогда джоинтами не пользовался) и, собственно, придавать ускорение именно этим обьектам. А они в свою очередь будут тянуть ту или иную сторону кирпича в нужном направлении.



