НЕ РЕШЕНО Помощь с векторами.

Хостинг игровых серверов

Aliluya

Прохожий
20 Окт 2018
259
79
Всем привет, кто умеет работать с векторами, есть вопрос.
Как отследить гору ? (что бы точка не генерировалась на ней)
 

VooDoo

Прохожий
5 Янв 2018
78
59
27
Код:
float y = TerrainMeta.HeightMap.GetHeight((Vector3)position);

Ну и далее можно пустить Raycast, если необходимо узнать что то еще, к примеру:
Код:
            RaycastHit hit;
            if (Physics.Raycast(new Ray(new Vector3(x, y + 1, z), Vector3.down), out hit, 3f, -1))
                if (hit.GetCollider() != null && hit.GetCollider().name == "Road Mesh")
                {
                    // Work
                }
 
Последнее редактирование:
  • Like
Реакции: Ryamkk и Aliluya

Aliluya

Прохожий
20 Окт 2018
259
79
Код:
float y = TerrainMeta.HeightMap.GetHeight((Vector3)position);

Ну и далее можно пустить Raycast, если необходимо узнать что то еще, к примеру:
Код:
            RaycastHit hit;
            if (Physics.Raycast(new Ray(new Vector3(x, y + 1, z), Vector3.down), out hit, 3f, -1))
                if (hit.GetCollider() != null && hit.GetCollider().name == "Road Mesh")
                {
// Work
                }
спасибо, попробую
 

Aliluya

Прохожий
20 Окт 2018
259
79
Код:
float y = TerrainMeta.HeightMap.GetHeight((Vector3)position);

Ну и далее можно пустить Raycast, если необходимо узнать что то еще, к примеру:
Код:
            RaycastHit hit;
            if (Physics.Raycast(new Ray(new Vector3(x, y + 1, z), Vector3.down), out hit, 3f, -1))
                if (hit.GetCollider() != null && hit.GetCollider().name == "Road Mesh")
                {
                    // Work
                }
Код:
float y = TerrainMeta.HeightMap.GetHeight((Vector3)position);

Ну и далее можно пустить Raycast, если необходимо узнать что то еще, к примеру:
Код:
            RaycastHit hit;
            if (Physics.Raycast(new Ray(new Vector3(x, y + 1, z), Vector3.down), out hit, 3f, -1))
                if (hit.GetCollider() != null && hit.GetCollider().name == "Road Mesh")
                {
                    // Work
                }
а можно как то наклонять с наклоном горы объект?
 

VooDoo

Прохожий
5 Янв 2018
78
59
27
а можно как то наклонять с наклоном горы объект?
Можно конечно, вычисли угол наклона горы, если не ошибаюсь тебе поможет Vector3.Angle и измени угол наклона своего объекта (object.transform.rotation.eulerAngles)
 
Последнее редактирование:

VooDoo

Прохожий
5 Янв 2018
78
59
27
Я сейчас без VS и без сервера. Так что проверить не могу. Но видел такое решение

Код:
Quaternion rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
obj.transform.rotation = rotation;

Если надо вычислить только угол наклона между двумя векторами, то тут Vector3.Angle();
 
Последнее редактирование:

Aliluya

Прохожий
20 Окт 2018
259
79
Я сейчас без VS и без сервера. Так что проверить не могу. Но видел такое решение

Код:
Quaternion rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
obj.transform.rotation = rotation;

Если надо вычислить только угол наклона между двумя векторами, то тут Vector3.Angle();
obj это что за значение?
 

FENESY

Прохожий
8 Апр 2019
123
17
32
Формат файлов OBJ — это простой формат данных, который содержит только 3D геометрию, а именно, позицию каждой вершины, связь координаттекстуры с вершиной, нормаль для каждой вершины, а также параметры, которые создают полигоны.

Википедия епть)
 

Sparkless

Прохожий
7 Фев 2019
68
27
26
Формат файлов OBJ — это простой формат данных, который содержит только 3D геометрию, а именно, позицию каждой вершины, связь координаттекстуры с вершиной, нормаль для каждой вершины, а также параметры, которые создают полигоны.

Википедия епть)
а если var obj?)
 

VooDoo

Прохожий
5 Янв 2018
78
59
27
Любой класс в C# является производным от object.
Конкретно в данном случае это будет то, чей rotation/eulerAngles ты хочешь поменять
obj - просто имя переменной, у тебя это скорее всего будет entity, ну или как ты ее назвал
 

Aliluya

Прохожий
20 Окт 2018
259
79
Любой класс в C# является производным от object.
Конкретно в данном случае это будет то, чей rotation/eulerAngles ты хочешь поменять
obj - просто имя переменной, у тебя это скорее всего будет entity, ну или как ты ее назвал
Да entity, попробую, спасибо