A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Creaci贸n de Spawnpoints de enemigos

20/40
Recursos

Aportes 4

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

<h3>Para los que no les guste el comportamiento del enemigo que va con mayor velocidad al inicio de su recorrido, podemos usar la funcion:</h3>
Vector3.MoveTowards()

La cual e ocupa de la siguiente manera:

        transform.position = Vector3.MoveTowards(transform.position, _player.position, velocity * Time.deltaTime);

Lo cual nos dara el vector resultante para que nuestro objeto llegue hasta su destino.
Primer parametro :Posici贸n actual del objeto que queremos mover(En este caso transform.position del script enemy)
Segundo parametro: Posici贸n a la cual deseamos mover el objeto(En este caso la posici贸n del player)
Tercer Parametro: Distancia a recorrer por frame(En este caso, la velocidad por el tiempo de cada frame, ya que se ejecuta en el Update)

Con Unity tenemos el objeto random, al que podemos utilizar para las elecciones aleatorias, y definimos un rango de elecciones, con el m茅todo Range(start, finish).

Crear posiciones aleatorias al rededor del jugador:

// Asignamos la distancia a la que deben aparecer los enemigos del jugador (Radio)
[SerializeField] float startDistanceToEnemy = 5f;
// En el m茅todo Start, mandamos a llamar la funci贸n que generara la posicion
void Start() {
	// Find Player Object
	player = FindObjectOfType<Player>().transform;    
	// Llamar funci贸n para asignar posici贸n 
	SetRandomPosition();
}

// Asignar posici贸n al rededor del jugador
 private void SetRandomPosition() {
	// Generamos la posicion X al azar 
	// (entre 0 y la distancia que queremos que aparezca el enemigo)
	float x = Random.Range(0, startDistanceToEnemy);
	//  Dado que X, puede ser cualquier n煤mero entre 0 y startDistanceToEnemy 
	// (en este caso 5), debemos calcular la posici贸n y, para asegurarnos 
// que se encuentre a una distancia constante
	// Se usa una formula matem谩tica Y^2 = R^2 鈥 X^2 
        float y = Mathf.Pow(Mathf.Pow(startDistanceToEnemy, 2) - Mathf.Pow(x, 2), .5f);
	// Random para saber si lo haremos positivo o negativo
        int leftOrRight = Random.Range(0, 2);
	// Generamos el vector para la posici贸n del enemigo
        Vector3 positionEnemy = new Vector3(x, y, 0);
	
	// Evaluamos si ser谩 positivo o negativo y asignamos la posici贸n 
        if (leftOrRight == 0)
            transform.position = player.position + positionEnemy;
        else
            transform.position = player.position - positionEnemy;
}

Genial