Обратный метод к Camera.ScreenToWorldPoint()

87
03 января 2022, 08:00

В движок Unity встроен метод ScreenToWorldPoint(), который координаты точки на экране конвертирует в координаты соответствующей точки на карте(сцене/мире). Есть ли в Unity обратный метод, который координаты точки на карте превращает в координаты точки на экране.

У меню есть метод:

    public void ShowHint(Vector2 pos, string typeOfHint)
    {
        rect.localPosition = pos;//Тут, судя по всему нужный мне метод
    }

rect - это RectTreansform некой Image-подсказки, которая должна появляться в месте, где находится объект с координатами pos(который точно попадает в обзор камеры).

Answer 1

Camera.WorldToScreenPoint

Camera.WorldToViewportPoint

static public Vector2 WorldToCanvasPosition (GameObject obj, Canvas canvas) {
    Vector2 ViewPos = Camera.main.WorldToViewportPoint(obj.transform.Position);
    ViewPos -= new Vector2(0.5f, 0.5f);
    Vector2 CanvasSize = canvas.gameObject.GetComponent<RectTransform>().sizeDelta;
    return new Vector2(ViewPos.x*CanvasSize.x, ViewPos.y*CanvasSize.y);
}
READ ALSO
Поиск папок в C#

Поиск папок в C#

КАК через Stack написать код поиска папок на компютере?

68
Почему не получается передать в обобщенный метод коллекцию типов, реализующих интерфейс, без установки ограничений на &lt;T&gt;

Почему не получается передать в обобщенный метод коллекцию типов, реализующих интерфейс, без установки ограничений на <T>

Опыт программирования небольшой, помогите, пожалуйста, разобратьсяИмеется интерфейс IPinHelper с методом PinFavoriteItem:

109
Как переместить файл?

Как переместить файл?

У меня есть два метода: поиск и сортировка

357
C# Выделение ячеек в Excel Unable to get the Select property of the Range class

C# Выделение ячеек в Excel Unable to get the Select property of the Range class

Стала падать программаВ ней реализовано так: ((Range)worksheet

158