Как поворачивать в нужном порядке?
Добавлено: 02 июл 2023, 19:52
ситуация следующая - делается поиск пути, точка А ищет путь к точке В, для этого она вычисляет изначальное направление, к примеру точка А находится вверху слева а точка В находится внизу справа, соответственно получается вектор (1f, 0 -1f).
если же эта точка недоступна (перекрыта каким-то препятствием) то нужно искать другие направления, и конечно же лучше искать оптимальные, то есть в данной ситуации от нынешнего направления нужно по вернуть на 45 градусов потом -45, далее 90 и -90 и т.д.
подскажите каким образом это осуществить?
я пробовал так
но это не работает, даже не пойму как оно "крутит"...
если же эта точка недоступна (перекрыта каким-то препятствием) то нужно искать другие направления, и конечно же лучше искать оптимальные, то есть в данной ситуации от нынешнего направления нужно по вернуть на 45 градусов потом -45, далее 90 и -90 и т.д.
подскажите каким образом это осуществить?
я пробовал так
Синтаксис:
Используется csharp
private Quaternion[] ArrayDirRot = new Quaternion[8]{
Quaternion.Euler(0f, 0f, 0f),
Quaternion.Euler(0f, 45f, 0f),
Quaternion.Euler(0f, -45f, 0f),
Quaternion.Euler(0f, 90f, 0f),
Quaternion.Euler(0f, -90f, 0f),
Quaternion.Euler(0f, 135f, 0f),
Quaternion.Euler(0f, -135f, 0f),
Quaternion.Euler(0f, 180f, 0f)
};
Vector3 dir = new Vector(1f, 0 -1f);
for(int i = 0; i < ArrayDirRot.Length; ++i){
dirRot = ArrayDirRot[i] * dir;
searchPoint = pointStart + dirRot;
Quaternion.Euler(0f, 0f, 0f),
Quaternion.Euler(0f, 45f, 0f),
Quaternion.Euler(0f, -45f, 0f),
Quaternion.Euler(0f, 90f, 0f),
Quaternion.Euler(0f, -90f, 0f),
Quaternion.Euler(0f, 135f, 0f),
Quaternion.Euler(0f, -135f, 0f),
Quaternion.Euler(0f, 180f, 0f)
};
Vector3 dir = new Vector(1f, 0 -1f);
for(int i = 0; i < ArrayDirRot.Length; ++i){
dirRot = ArrayDirRot[i] * dir;
searchPoint = pointStart + dirRot;
но это не работает, даже не пойму как оно "крутит"...