Держите камеру относительно левой половины игрового объекта - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь расположить камеру на оси X относительно игрового объекта (в моем случае - сферы).Мне нужно это, чтобы просмотреть только половину этой сферы, независимо от разрешения окна.Поэтому, если пользователь изменяет размеры окна, камера должна настроить себя так, чтобы видеть только левую половину.Смотрите прикрепленное изображение.Красный - это вид с камеры, а черный - Сфера

enter image description here

1 Ответ

0 голосов
/ 21 января 2019

Используя функцию Camera.ViewerportPointToRay , вы можете получить положение и направление в мировом пространстве из точки на экране. Координаты экрана определяются как (0,0) в левом нижнем углу, чтобы (1, 1) в правом верхнем углу. Поэтому, чтобы расположить сферу в средней правой части экрана, вам нужно преобразовать координаты экрана (1, 0,5) в мировые координаты.

Вот идея о том, как получить точку в средней правой части экрана на полпути между ближней и дальней плоскостями отсечения камеры:

// get the world ray from screen coordinates
Ray ray = camera.ViewpoirtPointToRay(new Vector3(1, 0.5, 0));

// make the z-component of the direction 1
ray.direction /= ray.direction.z;

// get the world position for where to place the sphere by scaling the ray
// halfway down the camera's frustum
Vector3 worldPos = ray.origin + ray.direction * (camera.far - camera.near) * 0.5;
sphere.position = worldPos;

Надеюсь, это поможет! Дайте мне знать, если что-то неясно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...