Как понять в какую сторону направлен курсор относительно объекта?

В Unity можно определить направление курсора относительно объекта, используя следующий подход:

1. Получите позицию объекта и позицию курсора в мировых координатах. Для этого можно использовать функции transform.position, чтобы получить позицию объекта, и Input.mousePosition, чтобы получить позицию курсора.

2. Вычислите вектор между позицией объекта и позицией курсора. Для этого отнимите позицию объекта от позиции курсора:

Vector3 cursorDirection = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position);

Здесь Camera.main.WorldToScreenPoint используется для преобразования позиции объекта из мировых координат в экранные координаты.

3. Нормализуйте вектор направления, чтобы получить единичный вектор:

cursorDirection.Normalize();

4. Теперь у вас есть нормализованный вектор направления курсора относительно объекта. Чтобы определить, в какую сторону он направлен, вы можете использовать следующие проверки:

float dotUp = Vector3.Dot(cursorDirection, transform.up);
float dotRight = Vector3.Dot(cursorDirection, transform.right);

if (Mathf.Abs(dotUp) > Mathf.Abs(dotRight))
{
    if (dotUp > 0)
    {
        // Курсор направлен вверх
    }
    else
    {
        // Курсор направлен вниз
    }
}
else
{
    if (dotRight > 0)
    {
        // Курсор направлен вправо
    }
    else
    {
        // Курсор направлен влево
    }
}

Здесь мы используем скалярное произведение (dot product) вектора направления и векторов "вверх" и "вправо" объекта, чтобы определить, в какую сторону направлен курсор.

Таким образом, вы можете определить, в какую сторону направлен курсор относительно объекта в Unity.