Показать сообщение отдельно
Старый 19.06.2011, 15:06   #404
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

По приведенному примеру можно сделать так:

var time : float = 2;
var 
x : float = 1;

function 
Start() { 
    yield 
WaitForSeconds(1);
    
x = Random.Range(5, 21); 
    yield 
WaitForSeconds(29);
    
x = Random.Range(1, 6); 
} 
А вообще строка
InvokeRepeating("LaunchProjectile", 2, (x)); 
выполняется только один раз

Я бы переписал скрипт так:

var apple : Rigidbody;
var 
time :  float;
var 
x : float = 1; //Начальное значение переменной "x", как я понял?


function Start() { 
    yield 
WaitForSeconds(1);
    
x = Random.Range(5, 21); 
    yield 
WaitForSeconds(29);
    
x = Random.Range(1, 6); 
}  

Invoke("LaunchProjectile", x); //"x" - та самая переменная, обозначающая промежуток между спавнами

function LaunchProjectile () 
{
  
instance = Instantiate(apple,transform.position, transform.rotation);
  
instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) );
  
Invoke("LaunchProjectile", x);
} 
Хотя на js это может выглядеть так, я js плохо знаю для unity, лучше C#:
var apple : Rigidbody;
var 
time :  float;
var 
x : float = 1; //Начальное значение переменной "x", как я понял?

Invoke("LaunchProjectile", x); //"x" - та самая переменная, обозначающая промежуток между спавнами

yield WaitForSeconds(1);
x = Random.Range(5, 21); 
yield 
WaitForSeconds(29);
x = Random.Range(1, 6); 

function 
LaunchProjectile () 
{
  
instance = Instantiate(apple,transform.position, transform.rotation);
  
instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) );
  
Invoke("LaunchProjectile", x);
} 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SaM_ (19.06.2011)