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

Dostęp do zmiennej z innego skryptu oraz szukanie nieistniejących obiektów

Object Storage Arubacloud
0 głosów
388 wizyt
pytanie zadane 4 listopada 2018 w OpenGL, Unity przez Yashe Dyskutant (7,720 p.)

Witam serdecznie,

Mam problem z zliczaniem punktów w prostej grze. Mianowicie, gracz ma pod klawiszami A/S/D "pociski" w kształcie kolejno, kwadratu, trójkąta i kółka. Z prawej strony tworzone są takie same typy przeciwników (Kwadrat, Trójkąt itd.). 
Przeciwnicy mają odpowiadające im tagi, czyli również kwadrat, trójkąt i kółko. Gdy pocisk kwadrat uderzy w takiego samego przeciwnika to obiekty są usuwane, jeśli nie - przegrywa. 

Jak mam zliczać punkty ? Nie mogę zrobić prostej publicznej zmiennej z inkrementacją wyniku gdyż, każdy następny obiekt ma tą zmienną ustawioną na 0. Później znów następuje kolizja wynik ma wartość 1, lecz kolejny obiekt ma zmienną wynik na 0.

Do tego potrzebuje mieć dostęp do tej zmiennej z innego skryptu. Ma ktoś jakiś pomysł ? 

 

using UnityEngine;
using UnityEngine.SceneManagement;

public class Enemy : MonoBehaviour {

    public float speed;
    public int score = 0;

    private void Update()
    {
        transform.Translate(Vector2.left * speed * Time.deltaTime);
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        }

        if (other.tag == gameObject.tag){
            Destroy(other.gameObject);
            Destroy(gameObject);
            //score++;
        }
        else{
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        }

    }
      
}


 

1 odpowiedź

0 głosów
odpowiedź 7 listopada 2018 przez Borys Kaczmarek Użytkownik (630 p.)
A nie prościej stworzyć oddzielny skrypt (np. "ScoreManager") i tam stworzyć publiczną zmienną "score"? Mógłbyś wtedy z każdego innego skryptu korzystać ze zmiennej "score" i ta sama zmienna zapisywałaby się i nie zmieniała wartości na zero jak w przypadku przypisania tej zmiennej do każdego oddzielnego skryptu przypisanego do wroga.
komentarz 17 listopada 2018 przez Yashe Dyskutant (7,720 p.)

Problem rozwiązałem deklarując, że jest to zmienna statyczna [static]. (zanim napisałeś sad)
Być może komuś pomoże ten temat wink

Podobne pytania

0 głosów
1 odpowiedź 199 wizyt
pytanie zadane 5 czerwca 2021 w C# przez Michał Stankiewicz Nowicjusz (120 p.)
0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 1 lipca 2016 w C# przez Adrian1999 Nałogowiec (34,570 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...