2D Space Shooter – II. fázis: Alapvető programozási kihívások

Cél: Hozz létre egy ellenségtípust, amely döngölni fog, és megpróbálja üldözni a játékost egy adott tartományon belül.

Megjegyzés: Ez a szkript az Ellenséghez van csatolva.

  1. Először is meg kell tudnunk mérni a távolságot az ellenséges objektum és a játékos objektum között. Kezdje a Player Game Object Component beszerzésével a Start funkción belül.

2. A legjobb gyakorlat szerint nullázd le a Player komponenst, hogy megbizonyosodj arról, hogy a játék futása közben jelen van-e.

3. Deklaráljon globális változókat a ram vezérléséhez

  • Távolság:A két objektum közötti távolság. Ezt a változót a következő lépésben részletesebben kifejtem.
  • Ram sebesség:Aszorzó, amelyet a normál mozgási sebességhez adunk, hogy az ellenség gyorsabban mozogjon. Beállítottam egy Serialize Field-et, amely lehetővé teszi az érték módosítását az Inspectorból, ha szükséges.
  • Támadási tartomány: Milyen közel kell lennie az ellenségnek a játékoshoz ahhoz, hogy végrehajtsa a kos akciót.
  • Ram szorzó: Sebességnövelést ad a ram támadáshoz.

4. Most meg kell tudnunk mérni a távolságot a két objektum között. Szerencsére a Unity Engine beépített módot biztosít számunkra, hogy ezt vektorokon keresztül érjük el. A Vector3.Distance használatával egyszerűen meg kell adnia a másik transzformációt (jelen esetben a lejátszót), és azt a transzformációs pozíciót, amelyhez a szkript jelenleg kapcsolódik.

Megjegyzés: A következő lépésekből származó kódot a Frissítés funkción belül vagy a Frissítésben meghívott saját függvényen belül kell elhelyezni.

Módosíthatja a Támadási tartomány távolságát, ha ezt a Debug.Log-gal kombinálva nyomtatja ki az objektumok pontos távolságát, ahogyan azok a jelenetben vannak.

5. Készítsen if-utasítást a távolság és a támadási távolság összehasonlításához, és ennek megfelelően hajtsa végre a döngölési műveletet,

  • Ha feltétel: Ha a távolság azonos vagy kisebb a támadási tartománytól, I.E. amikor az Ellenség elég közel van a játékoshoz.
  • 3. vektor iránya: egy új változó az ellenség mozgási irányának beállításához.
  • irány. normalizált:A vektor irányból és nagyságrendből áll. A vektor magnitúdóját a rendszer eltávolítja, ha normalizálja, és csak az iránya marad meg. Technikailag 1-es magnitúdójú vektorrá alakítják át. Mivel azonban az 1 a "multiplikatív azonosság", a magnitúdó (hossz) és a normalizált vektor szorzata azt eredményezi, hogy a távolság megegyezik a normalizált vektor irányában ezzel a hosszúsággal. Ezért, ha a normalizált vektort hozzáadjuk a transzformáció mozgásszámításához, az a megadott objektum irányába fog mozogni pontos egységekkel.

Az eredmény:

Ez a cikk a GameDevHQ Core Programming Challenges sorozatának része. A következő cikkben megnézzük, hogyan lehet színvillogást/villogást elérni a Unity-ben!