W starszych grach i niektórych nowych, głównie z widokiem izometrycznym, bywa, że postacie na ekranie mają zobrazowane pole widzenia, z postaci wychodzi płaski, półprzeźroczysty trójkąt 2d, który symbolizuje zakres widzenia oraz zasięg widzenia. Ma to na celu ułatwienie graczom rozgrywki, wrogowie wtedy są bardziej przewidywalni, łatwiej ich ominąć bez wchodzenia w walkę. Które gotowe rozwiązania w Unity sprawdzą się by stworzyć podobny efekt?
Chodziło jedynie o efekt graficzny, a nie o AI i raycasting. Wizualny trójkąt rysowany dla każdej postaci, nic poza nim.
Zapytam w inny sposób - jak narysować linię obróconą o ileś stopni? (gdy poznam odpowiedź, to będę mógł narysować dwie linię, jedną z lewej strony, drugą z prawej i już prawie będzie trójkąt zasięgu, wystarczy mi tyle.
narysuj linie i obroc ja o tyle stopni ile chcesz? (za pomoca transform?)
Co ty chcesz osiagnac?
ale jest gotowa metoda do obracania linii o określony kąt np. 45 stopni?
w zaleznosci od pozycji kamery zmien transform.rotation.x albo y albo z
To podam ci przykład z linią prostą.
Vector3 forward = transform.position + transform.forward * col.radius;
Debug.DrawLine(transform.position, forward, Color.magenta);
Pierwsza linia to wektor, który będzie oddalony od postaci o np. 8 metrów. Druga linia to narysowanie linii od pozycji postaci do wektora wcześniejszego.
Potrafisz podać mi funkcję, pomoże mi tę linię obrócić o 45 stopni w lewą stronę?
tobie widocznie chodziło o to bym zrobił pusty Game Object jako Child, dodał mu Line Renderer, ustawił drugi wektor na daną odległość, a następnie cały Game Object obrócił za pomocą Transform Rotation. Tak będzie najlepiej wg ciebie? Może masz rację. Może niepotrzebnie chciałem bawić się w inne sposoby i obracać jakimiś funkcjami wektory, zamiast iść na łatwiznę :).