Нужно заспавнить префаб противника в рандомной точке за областью экрана. Как можно реализовать?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject enemy1;
public GameObject enemy2;
public GameObject enemy3;
public int maxe = 10; // кол-во противников максимальное
public int stime = 1; // время между спавном объектов
public int counte;
public int killse;
public int levele = 1;
void Update()
{
if(counte < 10)
{
Instantiate(enemy1);
counte++;
}
if(counte == 0)
{
levele++;
}
}
}
На данный момент имею вот это. enemy1 спавнится в точке, где ранее был размещен префаб.
float x = Random.Range(0f, 100f);
float y = Random.Range(0f, 100f);
float z = Random.Range(0f, 100f); // Если игра в 2d, то z = 1f;
Vector3 pos = new Vector3(x, y, z);
GameObject gm = Instantiate(enemy1, pos, Quaternion.identity) as GameObject;
Где pos - позиция объекта.
Для того, чтобы выставлять рандомно Вам надо определить в каких пределах Ваши "враги" могут спауниться.
За рандом отвечает функция Random.Range(0, 1), где 0 - минимальное значение, а 1 - максимальное
У метода Instantiate есть перегруженный вариант, который принимает вектор с координатами спавна и кватернион для указания начального поворота объекта.
Например:
GameObject enemyInstance = Instantiate(enemyPrefab, new Vector3(-5, 1, 3), Quaternion.identity);
Настоятельно рекомендую прочесть ссылки, которые дали в комментариях.
Также координаты можно указать напрямую через компонент Transform.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Возможно ли при выборе определенного textbox, менялась раскладка клавиатурыК примеру при нахождении фокуса в TextBox1 раскл