Не могу понять, где я ошибаюсь? Скрипт не хочет работать, пишет ошибки в коде. Хелп ми)
Код
using UnityEngine; using System.Collections;
public class SpawnEnemy : MonoBehaviour { public GameObject [] oenemy; // Массив мобов public Transform [] spawpoint; // их местоположение public int maxenemy = 10; // максимальное колличество мобов public int mintime = 2; // минимальное время public int maxtime = 10; // максимальное время
// Use this for initialization void Start () { Spawn (); // вызываю функцию
}
// Update is called once per frame void Update () {
Я пытался с Java(будь проклята она, в л2 заела еще меня) переписать в C#.
Вот Java скрипт, исходник.
Код
// Add this script to a Parent GameObject of the spawnPoints. // Note: enemyPrefab will have an AI script attached which will already Tag the Player object // so it won't be needed here.
var spawnPoints : Transform[]; // Array of spawn points to be used. var enemyPrefabs : GameObject[]; // Array of different Enemies that are used. var amountEnemies = 20; // Total number of enemies to spawn. var yieldTimeMin = 2; // Minimum amount of time before spawning enemies randomly. var yieldTimeMax = 5; // Don't exceed this amount of time between spawning enemies randomly.
function Start() { Spawn(); }
function Spawn() { for (i=0; i<amountEnemies; i++) // How many enemies to instantiate total. { yield WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // How long to wait before another enemy is instantiated.
var obj : GameObject = enemyPrefabs[Random.Range(0, enemyPrefabs.length)]; // Randomize the different enemies to instantiate. var pos: Transform = spawnPoints[Random.Range(0, spawnPoints.length)]; // Randomize the spawnPoints to instantiate enemy at next.
Во-первых, не Java, а JavaScript. Это разные языки.
Во-вторых, ты переписал код с моими советами? 1-ая ошибка относится, как я уже сказал, к неправильному типу в цикле. 3,4 ошибка, я думаю, что не правильный синтаксис. Я тоже написал как исправить. 2-ая ошибка, наверное beril тебе ее сказал. Про wait. Насчет нее я не знаю. Flist - social platform PuzzleSystem - Open-source Unity Asset [2D] Mission: Defender
Сообщение отредактировал romeo98 - Воскресенье, 14 Сентября 2014, 09:48
В общем переделал я код с помощью romeo98, не смог справится с WaitSec и решил использовать таймер, теперь встал, как только таймер падает в 0, все объекты создаются нон - стопно. Есть вариант, проверять, как только падает в ноль его возвращать в значение обратно, но чего - то идея никак не идет)
Код
using UnityEngine; using System.Collections;
public class SpawnEnemy : MonoBehaviour { public GameObject [] oenemy; // Массив мобов public Transform [] spawpoint; // их местоположение public float TimerSp = 15.0f; // Время таймера
// Use this for initialization void Start () {
Spawn (); // вызываю функцию
}
// Update is called once per frame void Update () { if(TimerSp > 0){ // Чекаю условие TimerSp -= Time.deltaTime; // выполняем }else if(TimerSp <= 0) { Spawn(); // вызываю спавн } }
allods, это хорошо, но спавн мобов ни на один раз потребуется, тогда сброс все равно нужен будет, что бы счетчик вставал опять на цифру, которая указана в TimeSp. DjanStudio
public class SpawnEnemy : MonoBehaviour { public GameObject [] oenemy; // Массив мобов public Transform [] spawpoint; // их местоположение public int maxenemy = 10; // максимальное колличество мобов public int mintime = 2; // минимальное время public int maxtime = 10; // максимальное время
// Use this for initialization void Start () {
StartCoroutine(Spawn ()); }
// Update is called once per frame void Update () {
Плод моих стараний. Код переделал, всем спс за помощь.
beril, WaitSec не помог все равно добиться результата, они появлялись по одному, а мне нужно было разом пачка, но все равно dankeshеn.
Код
using UnityEngine; using System.Collections;
public class SpawnEnemy : MonoBehaviour { public GameObject [] oenemy; // Массив мобов public Transform [] spawpoint; // их местоположение public int maxenemy = 10; // Маскимальное кол-во врагов public float TimerSp = 15f; // Время таймера
// Use this for initialization void Start () {
Spawn (); // вызываю функцию
}
// Update is called once per frame void Update () { if(TimerSp > 0){ // Чекаю условие TimerSp -= Time.deltaTime; // выполняем }else if(TimerSp <= -1) { Spawn(); // вызываю спавн } }