Düşman Verileri
Coddy'nin Unity Oyunu: Kule Savunması kursunda ders 2 / 25.
Runner, Grunt'a katılıyor. Daha hızlıdır ve daha az sağlığı vardır; tüm Runner'lar bu değerleri paylaştığından, bu değerler tek bir düşmana değil türe aittir. Bu değerler, bir ScriptableObject varlığı olan verilen EnemyData içinde bulunur: projede GruntData (hız 2, sağlık 9) ve RunnerData (hız 3.5, sağlık 5) vardır ve Inspector, her düşmana kendi değerini bir data alanında verir.
Her düşman, bu değerlere ihtiyaç duyduğu her seferinde kendi türünün değerlerini bu alan üzerinden okur:
void Start()
{
Debug.Log(name + " pays " + data.reward);
}Sağlık farklıdır: darbe almış bir Grunt'un sağlığı, arkasındaki Grunt'tan daha azdır. Bu nedenle varlık maxHealth değerini tutar ve her düşman, nesne oluşturulur oluşturulmaz çalışan Awake içinde bu değeri kendi alanına kopyalar. Varlığın kendisini asla değiştirmeyin: o türdeki tüm düşmanlar değişir.
Görev
KolayHer düşmana, varlığına ait türün istatistiklerini ver.
Enemyiçindespeedyerinepublic EnemyData data;yaz vedata.speedhızında ilerle.private int health;ekle veAwakeiçinde değerinidata.maxHealtholarak ayarla.
“Oyna” düğmesine bas: Runner, Grunt'ı geçer. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 2f;
public Transform[] waypoints;
private int next = 1;
void Update()
{
if (next >= waypoints.Length)
{
return;
}
Vector3 target = waypoints[next].position;
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
if (transform.position == target)
{
next++;
}
}
}
Unity Oyunu: Kule Savunması bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground