Скрыть деревья при сокрытии игрока

Я создал 3D-игру в единстве с ландшафтом и некоторыми моделями, где игрок может идти куда угодно, а камера следует за ним.

моя проблема в том, когда пользователь находится за деревом, как мне сделать дерево прозрачным?

Я уже делал это с другими моделями с использованием лучей, но деревья являются частью ландшафта, и поэтому я получаю материал местности, а не конкретное дерево.

есть идеи?

заранее спасибо

1 ответ

Выявление проблемы

Деревья являются частью ландшафта, и если вам нужно сделать деревья, вы можете легко это сделать. Деревья будут иметь класс prefab, и всякий раз, когда игровой объект сталкивается с каким-либо деревом, выполняется задача столкновения или, скажем, событие

решение

Тысячи деревьев могут быть легко созданы в случайном месте местности, а затем столкновение может быть легко сделано с помощью тегов, и код для создания деревьев будет в коде коллайдера. Деревья будут отключены. Ienumerator может применяться в методе обновления. WaitForSeconds(30) будет ждать 30 секунд, а затем код

gameobject.setactive(true)

вернет деревья на свои позиции

код для создания деревьев в случайном месте в методе запуска

 public GameObject trees;
     for (int i = 0; i < 300; i++)
        {
            Vector3 localPosition = new Vector3(Random.Range(-200, 100), 0 , Random.Range(-200, 100));
            Instantiate(trees, localPosition, Quaternion.identity);
        }

Что ж, лучшим решением было бы запустить луч от камеры к передней, а затем поместить камеру немного дальше точки столкновения, чтобы вы не могли видеть дерево.

Ray ray = new Ray(oldCam.position, oldCam.forward);
RaycastHit hit;

if (Physics.Raycast(ray, out hit, 5)){
cam.position = hit.point + oldCam.forward;
} else
cam.position = oldCam.position;

Не забудьте установить прежнее положение камеры в том месте, где оно должно быть, чтобы камера не уходила и оставалась там, и чтобы камера и старая камера имели одинаковый код положения и поворота, прежде чем это произойдет, а затем вы просто меняете их положение, Я имею в виду, я не знаю, все ли в порядке, но вы можете сделать выводы из этого.

Извините за ошибки, я из Испании.

Другие вопросы по тегам