Sprite renderer wysokość sprite'a

Programowanie w Unity.

Sprite renderer wysokość sprite'a

Postprzez Siekacz » 29 Maj 2019, 21:33

Cześć, mam problem z moim kodem.
Gdy zostanie umieszczony budynek na mapie wystartuje coroutine "UpgradeBuilding()" i co 1,5 sekundy zmieniamy render sprite na następny, ale sprity o innej wysokości powodują, że budynek "porusza się", ale pozycja nadal jest taka sama. Staram się obliczyć jakoś tę różnicę przesunięcia, uzyskując rozmiar sprite Y - 60 (60 to wysokość sprite budynku z buildingSprites[0]") i zmienić pozycję, jednak coś źle to działa.
Oto kod:
Kod: Zaznacz wszystko
    void Start()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        StartCoroutine(UpgradeBuilding());
    }
 
  IEnumerator UpgradeBuilding()
    {
        float differentSize = 0f;
 
        for (int i = 0; i < 6; i++)
        {
            spriteRenderer.sprite = buildingsSprites[i];
            differentSize = spriteRenderer.sprite.rect.size.y - 60f;
            gameObject.transform.position = new Vector2(gameObject.transform.position.x, gameObject.transform.position.y + (differentSize/ 100));
            yield return new WaitForSeconds(1.5f);
        }
    }
Siekacz
 
Posty: 6
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time

Re: Sprite renderer wysokość sprite'a

Postprzez Hostur » 30 Maj 2019, 07:35

Założenie jest złe, sprity powinny być tego samego rozmiaru, uzupełnij je alphą ale rozmiary wyrównaj bo będziesz się z takimi problemami bić przez całą produkcję
Hostur
 
Posty: 707
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Sprite renderer wysokość sprite'a

Postprzez EvilArev » 30 Maj 2019, 19:09

A może po prostu musisz pivoty poustawiać w sprite'ach? https://docs.unity3d.com/Manual/SpriteEditor.html (koniec strony)
EvilArev
 
Posty: 377
Rejestracja: 14 Kwi 2013, 15:32
Has thanked: 0 time
Been thanked: 0 time

Re: Sprite renderer wysokość sprite'a

Postprzez Siekacz » 30 Maj 2019, 21:29

Hostur napisał(a):Założenie jest złe, sprity powinny być tego samego rozmiaru, uzupełnij je alphą ale rozmiary wyrównaj bo będziesz się z takimi problemami bić przez całą produkcję

Zapomniałem to dopisać ale robię grę w rzucie izometrycznym więc sprity z modelami ciężko by miało te same wymiaru i a tak mają różne wysokości bo szerokość to jest identyczna jak wszystkie inne sprite'y.
Siekacz
 
Posty: 6
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time

Re: Sprite renderer wysokość sprite'a

Postprzez EvilArev » 30 Maj 2019, 22:27

Nie żebym się dopraszał o uwagę, ale serio zainteresuj się tymi pivotami bo mam wrażenie, że próbujesz wyważać otwarte drzwi. Przy dobrze ustawionych pivotach jakiekolwiek przeliczanie rozmiaru nie powinno być konieczne.
EvilArev
 
Posty: 377
Rejestracja: 14 Kwi 2013, 15:32
Has thanked: 0 time
Been thanked: 0 time

Re: Sprite renderer wysokość sprite'a

Postprzez Siekacz » 31 Maj 2019, 16:35

EvilArev napisał(a):Nie żebym się dopraszał o uwagę, ale serio zainteresuj się tymi pivotami bo mam wrażenie, że próbujesz wyważać otwarte drzwi. Przy dobrze ustawionych pivotach jakiekolwiek przeliczanie rozmiaru nie powinno być konieczne.

Faktycznie rozwiązało to problem, dziękuję bardzo za pomoc.
Siekacz
 
Posty: 6
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron