Hello! I got two Scripts: 1 Enemy_mob script, with the Array on it, to search for new enemies on the fixed Update(). My Goal is to fill the enemy Array in the Start () of Script 2:
public Transform[] monsterArray;
private PlayerScript opponent;
private Transform player;
void Start () {
player = GameObject.FindWithTag ("Player").transform;
opponent = player.GetComponent();
}
void Update () {
atktime += Time.deltaTime;
if (player != null) {
if (!isDead ()) {
if (!inRange ()) {
chase ();
} else {
attack ();
}
// transformArray = GameObject.FindGameObjectsWithTag ("Player").Select (go => go.transform).ToArray ();
} else {
dieMethod ();
}
} else {
if (!newTarget ())
{
//player = GetNewTarget ();
player = GetClosestEnemy (monsterArray);
}
}
}
Transform GetClosestEnemy(Transform[] enemies)
{
Transform bestTarget = null;
float closestDistanceSqr = Mathf.Infinity;
Vector3 currentPosition = transform.position;
foreach(Transform potentialTarget in enemies)
{
Vector3 directionToTarget = potentialTarget.position - currentPosition;
float dSqrToTarget = directionToTarget.sqrMagnitude;
if(dSqrToTarget < closestDistanceSqr)
{
closestDistanceSqr = dSqrToTarget;
bestTarget = potentialTarget;
player = bestTarget;
opponent = player.GetComponent();
}
}
return bestTarget;
}
void attack()
{
if (atktime >= 3)
{
Debug.Log(monsterArray);
atktime = 0;
Debug.Log("Angriff_opponent");
opponent.getHit(damage);
// impacted = true;
}
}
bool newTarget()
{
if (atktime >= 4)
{
// monsterArray = GameObject.FindWithTag ("Player").transform;
//Debug.Log("newTargetBoolTrue");
return true;
} else
{
//Debug.Log("FALSE");
return false;
}
}
and Script 2, where I actually want to fill the monsterArray
private MonsterScript opponent;
private Transform enemy;
void Start () {
opponent.monsterArray[] += this.gameObject; //put this gameobj. in the monsterArray of MonsterScript
enemy = GameObject.FindWithTag ("Enemy").transform;
opponent = enemy.GetComponent();
}
If new Monster spawn, it will check in it's Start() to get put into monsterArray, so it will get a Focus if it is in nearest Range. Untill now the monsterArray is empty
↧