Рандом не работает.[РЕШЕНО]

Программирование на Юнити.

Рандом не работает.[РЕШЕНО]

Сообщение reimon245 27 ноя 2011, 17:05

Добрый день. Подскажите пожалуйста как реализовать чтобы некий объект при запросе private void Spawn(); передвигался на произвольную точку( ограниченную по x 0-100 по y 1-2 по z 0-100) И при этом на месте этого объекта появлялся произвольный объект из списка)Я сделал такой скрипт но похоже плохо и он никак не хочет запускаться и пишет ошибку:
"Assets/RandomMobSpawn.cs(30,79): error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `random' and no extension method `random' of type `UnityEngine.GameObject' could be found (are you missing a using directive or an assembly reference?)
"

Сама часть скрипта где у меня все происходит:
Синтаксис:
Используется csharp
        private void Spawn(){
                int randx=(int)Random.Range(0,100);
                int randy=(int)Random.Range(1,2);
                int randz=(int)Random.Range(0,100);
                transform.position=new Vector3(randx,randy,randz);
                int index=(int)Random.Range(0.0f,enemiesToRandom.Length);
                Instantiate(enemiesToRandom[index],GameObject.Find("SpawnPlace").transform.position,transform.rotation);
        }

30 строка это строка "transform.position=new Vector3(randx,randy,randz);" и в ней нету символа на 79 столбце)Там всего 66 символов)))
Либо будьте добры подсказать как исправить данный скрипт,либо предложите свой.
p.s Спаун рандомного объекта в конкретной точке работает,а вот в произвольной пишет вышеописанную ошибку.
Помогите пожалуйста,буду очень признателен.
Последний раз редактировалось reimon245 27 ноя 2011, 21:38, всего редактировалось 1 раз.
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54

Re: Рандом не работает.

Сообщение Ashvar 27 ноя 2011, 21:02

Почему, то ощущение что библиотека нужная не подключена... хотя конечно он должен был раньше вылетать...
Вот пример с их мануала:
var prefab : GameObject;
function Start () {
var position: Vector3 = Vector3(Random.Range(-10.0, 10.0), 0, Random.Range(-10.0, 10.0));
Instantiate(prefab, position, Quaternion.identity);
}
Ashvar
UNIт
 
Сообщения: 62
Зарегистрирован: 20 ноя 2011, 16:22

Re: Рандом не работает.[РЕШЕНО]

Сообщение reimon245 27 ноя 2011, 21:42

Спасибо за помощь Ashvar. Решил проблему со скриптом сам, проблема в том была,что редактировал 1 скрипт а ошибку искал в соседнем почти таком же)))) Когда пишет ошибку не смотрю в каком файле)
Для потомков оставляю скрипт,вдруг кому пригодится. Скрипт считывает кол-во врагов на карте,создает их список.Если врагов меньше нужного кол-ва то добавляет случайных врагов из 2 списка в произвольном месте ограниченном координатами. Произвольное место определяется передвижением некоторого SpawnPoint.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class EnemiesAmount : MonoBehaviour{
    [SerializeField]
        public int enemiesCount=3;
        public GameObject[] enemiesToRandom;
    public List<Transform> enemies;
    void Start(){
    }
    void Update(){
        enemies = new List<Transform>();
        AddAllEnemies();
               
                if(enemies.Count<enemiesCount)Spawn();
                }
    public void AddAllEnemies(){
        GameObject[]  go=GameObject.FindGameObjectsWithTag("Enemy");
        foreach(GameObject enemy in go)
            AddTarget(enemy.transform);
    }
    public void AddTarget(Transform enemy){
        enemies.Add(enemy);
    }
        private void Spawn(){
                transform.position=new Vector3(Random.Range(1400,1426),1,Random.Range(533,561));
                int index=(int)Random.Range(0.0f,enemiesToRandom.Length);
                Instantiate(enemiesToRandom[index],GameObject.Find("SpawnPlace").transform.position,Quaternion.identity);
        }
}
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9