Вы можете рассмотреть возможность удаления верхней и нижней камеры и выполнить свое собственное «Ручное смешивание» только с средней камерой. Недавно я использовал Cinemachine и делаю что-то похожее на ваш желаемый результат.
Поскольку я точно не знаю, как вы хотите, чтобы ваша камера работала, я покажу вам некоторые из моих ручных операций смешивания, объяснил:
//Camera Direction
//If I´m not in ground, and I've been on the air for a specific time
if (!onGround && timeSinceLastJump > cameraDelay)
{
//Moves the offset of the camera down to the maximum allowed y offset (In your case it would be where the lower camera is)
if (vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y >= maxYOffset)
vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y -= offsetYSensivity;
//It also zooms out up to a specified level
if (vcam.m_Lens.OrthographicSize < maxFOV)
vcam.m_Lens.OrthographicSize += camSensivity;
}
else
{
//Same but upwards
if (vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y <= minYOffset)
vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y += offsetYSensivity;
//Same but zooming in
if (vcam.m_Lens.OrthographicSize > minFOV)
vcam.m_Lens.OrthographicSize -= camSensivity;
}
Таким образом, вы можете использовать свой рост игрока в условиях, за счет необходимости хорошо продумывать логику камеры.
Может быть, это каким-то образом поможет вам делать то, что вы хотите.