• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [Unity C#] Rotacja dookoła obiektu/gracza.

Object Storage Arubacloud
0 głosów
573 wizyt
pytanie zadane 20 stycznia 2020 w C# przez Hexan Początkujący (430 p.)
zamknięte 21 stycznia 2020 przez Hexan

Witam, zmagam się sporo już z problemem dotyczącym skryptu pozwalającego na rotację kamery dookoła gracza/obiektu. Udało mi się w końcu uzyskać pożądany efekt, jednak nie wiem jak zrobić, aby kamera podążała za graczem, kiedy ten idzie. Sprawa wydaje się bajecznie błaha, ponieważ można ustawić kamerę jako child obiektu gracza i po problemie. Jednakże używam animacji chodzenia i ona ,,skacze" mi kiedy gracz się porusza, ponieważ w pełni przypisuje sobie wartości z komponentu Transform u gracza. Mniejsza, ponieważ chcę zrobić to w skrypcie, tylko nie mam za bardzo pomysłu jak to zrobić. Mam nadzieję, że nie będzie problemów ze zrozumieniem. Poniżej daję kod wraz z tłumaczeniem każdej linijki, może komuś się przyda wink

 

using UnityEngine;
using System.Collections;

public class Camera_controller : MonoBehaviour
{
    // Szybkość rotacji
    public float Rotation_speed;
    // Zmienna zawierająca wartość obecnej rotacji
    public float Rotation_X;
    // Zmienna typu Vector3 przechowująca pozycję która następnie jest dodawana do obecnej pozycji w celu ustawienia kamery.
    public Vector3 Camera_offset;
    // Zmienna typu Transform przechowująca pozycje, rotacje oraz skale obiektu gracza.
    public Transform plr;

    private void LateUpdate()
    {
        // Do zmiennej Rotation_X dodaję wartość którą zwraca Input.GetAxis("Mouse X"). Dodaję, gdyż muszę zapobiec ,,resetowaniu" parametrów. Dla przykładu gdybym dał ,,=" wartość byłaby taka sama.
        Rotation_X += Input.GetAxis("Mouse X");
        
        // Tworzę nową zmienną typu Vector3 i przypisuję do niej rotację wraz z wymnożonym offsetem. Mało opisu, gdyż nie rozumiem za bardzo sposobu działania Quaternion.AngleAxis.
        Vector3 offset_x = Quaternion.AngleAxis(Rotation_X * Rotation_speed, Vector3.up) * Camera_offset;
        // Następnie ustawiam nową pozycję kamery dodając pozycję gracza i offset, dzięki czemu kamera obraca się dookoła gracza.
        transform.position = plr.position + offset_x;
        // Edytuję komponent Transform kamery, aby ta patrzyła się cały czas na gracza
        transform.LookAt(plr.position);
    }
}

 

komentarz zamknięcia: Uzyskanie odpowiedzi

1 odpowiedź

0 głosów
odpowiedź 20 stycznia 2020 przez MsMaciek123 Pasjonat (24,760 p.)
wybrane 21 stycznia 2020 przez Hexan
komentarz 21 stycznia 2020 przez Hexan Początkujący (430 p.)
Dzięki, mniej więcej wiem już jak to zrobić.

Podobne pytania

0 głosów
1 odpowiedź 550 wizyt
pytanie zadane 10 października 2020 w C# przez PanPrezes Obywatel (1,520 p.)
+1 głos
1 odpowiedź 246 wizyt
pytanie zadane 23 listopada 2020 w C# przez Czerenia Początkujący (330 p.)
0 głosów
1 odpowiedź 166 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...