Cпавн префаба в рандомной точке

119
03 октября 2019, 13:00

Нужно заспавнить префаб противника в рандомной точке за областью экрана. Как можно реализовать?

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 спавнится в точке, где ранее был размещен префаб.

Answer 1
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 - максимальное

Answer 2

У метода Instantiate есть перегруженный вариант, который принимает вектор с координатами спавна и кватернион для указания начального поворота объекта.
Например:

GameObject enemyInstance = Instantiate(enemyPrefab, new Vector3(-5, 1, 3), Quaternion.identity);

Настоятельно рекомендую прочесть ссылки, которые дали в комментариях.
Также координаты можно указать напрямую через компонент Transform.

READ ALSO
Бот должен послать групповое фото

Бот должен послать групповое фото

В методе SendMediaGroupAsync выводится ошибка

119
Как привести DateTime.Now.Day к DateTime [дубликат]

Как привести DateTime.Now.Day к DateTime [дубликат]

На данный вопрос уже ответили:

126
При выборе TextBox менялась раскладка клавиатуры C#

При выборе TextBox менялась раскладка клавиатуры C#

Возможно ли при выборе определенного textbox, менялась раскладка клавиатурыК примеру при нахождении фокуса в TextBox1 раскл

106
Создание потоков для подключения tcp C#

Создание потоков для подключения tcp C#

Столкнулся с проблемой, не знаю как реализовать

107