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.
- 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!