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

Unity dziedziczenie C#

Object Storage Arubacloud
0 głosów
802 wizyt
pytanie zadane 11 maja 2017 w OpenGL, Unity przez dzidziamocarz Początkujący (370 p.)

Hej, chciałbym zrobić usuwanie przeciwnika za pomocą tapnięcia na tel. Problem leży w tym, że gdy odejmuję przy naciśnięciu w jednego przeciwnika życie to odejmuje się wszystkim przeciwnikom na scenie. Oto kod:

public class BaseEnemyScript : MonoBehaviour{

public uint Life;

}

public class Enemy1Script : BaseEnemyScript{

private Enemy1Script Instance;

private void Start()
   {
        Instance = this;
        Instance.Life = 120;
   }

 private void Update()
    {
        DestroyByClicking();
    }

    private void DestroyByClicking()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Instance.Camera.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, LayerMask.GetMask("Enemy")))
            {
                if (hit.rigidbody != null)
                {
                    if (Life > 10)
                        Life -= 10;
                    if (Life < 15)
                    {
                        Destroy(hit.collider.gameObject);
                    }
                }
            }
        }
    }
}

 

3 odpowiedzi

0 głosów
odpowiedź 11 maja 2017 przez Mateusz Tomaszewski Nowicjusz (160 p.)
Destroy(this.gameObject);

?
komentarz 11 maja 2017 przez dzidziamocarz Początkujący (370 p.)
Usuwanie jest dobrze. Chodzi o punkty życia
0 głosów
odpowiedź 1 czerwca 2017 przez piotrsz109 Stary wyjadacz (13,730 p.)
1. Sprawdź collidery.

2. Pokaż screenshota z hierarchią mapy
0 głosów
odpowiedź 31 lipca 2017 przez Łukasz Kubicki Nowicjusz (140 p.)

hit.collider.gameObject.GetComponent<Enemy1Script >().Life -=10;

To powinno pomóc wink

Osobiście, zrobiłbym to inaczej. Stworzyć osobną metodę w której odejmuje się punkty życia i stworzyć dodatkowy skrypt, w którym jest obsługiwany detekcję naciśnięcia na "Enemy", w której wykonałaby się metoda odejmowania życia.

Podobne pytania

0 głosów
0 odpowiedzi 228 wizyt
pytanie zadane 18 września 2021 w OpenGL, Unity przez Hei Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 564 wizyt
pytanie zadane 20 września 2020 w OpenGL, Unity przez Wiktor Panecki Użytkownik (920 p.)
0 głosów
0 odpowiedzi 225 wizyt
pytanie zadane 26 listopada 2017 w OpenGL, Unity przez Emil Panecki Bywalec (2,100 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!

...