forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Фак по Юнити. (http://forum.boolean.name/showthread.php?t=12966)

pax 19.06.2011 15:30

Ответ: Фак по Юнити.
 
@Lestar На сколько я понимаю - изменить время инстансирования надо всего два раза - через 1 секунду после старта и через 30.
Код:
PHP код:

if(time>=1
    { 
      
Random.Range(521); 
    } 
      if(
time>=30
    { 
       
Random.Range(16); 
    } 

Вызывает смену времени, записанное в переменную столько раз, сколько кадров пройдет с первой секунды

Lestar 19.06.2011 15:40

Ответ: Фак по Юнити.
 
Немного изменил для красоты код.
@Pax,а я так понял,что до 30 секунд рандом между инстансами один,после 30 секунд рандом между инстансами другой.Пускай SaM_ пояснит тогда.

SaM_ 19.06.2011 16:20

Ответ: Фак по Юнити.
 
Lestar, в моем случае переменная "x" обозначает промежуток времени между спавном. Не важно что спавнится - но чем этого больше, тем сложней играть. То есть промежуток между спавнами может быть от 5 до 20. Через 30 секунд уровень сложности повышается и промежуток может быть от 1 до 5. Как-то так. :)

Кстати, огромное спасибо за помощь. На других форумах обычно молчат или кричат, что вопросы глупые. :crazy:

pax 19.06.2011 16:24

Ответ: Фак по Юнити.
 
Тогда я бы предложил такой вариант:
PHP код:

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

Invoke("LaunchProjectile"x); 

function 
LaunchProjectile () 
{
  
instance Instantiate(apple,transform.positiontransform.rotation);
  
instance.velocity transform.TransformDirectionVector300) );
  if(
Time.timeSinceLevelLoad <30)
     
Invoke("LaunchProjectile"Random.Range(521));
  else
     
Invoke("LaunchProjectile"Random.Range(16));



Lestar 19.06.2011 16:26

Ответ: Фак по Юнити.
 
Что такое x я вижу.Вопрос в том,она рандомно генедиться до и после 30-ти секунд по одному разу или нет.То есть следующий инстанс будет через тот же промежуток времени или генерим х снова.

SaM_ 19.06.2011 16:26

Ответ: Фак по Юнити.
 
pax, твой последний способ не очень подойдет, ибо:
PHP код:

var apple Rigidbody;
var 
time :  float;
var 
next_Instans float 0;
var 
float 1

function 
Update ()
{
   
time=Time.timeSinceLevelLoad;



   if(
time>=1)
    {
      
Random.Range(0.0141);
    }
    
       if(
time>=30)
    {
      
Random.Range(0.0131);
    }

      if(
time>=60)
    {
       
Random.Range(0.0121);
    }
    
          if(
time>=180)
    {
       
Random.Range(0.0116);
       }
         if(
time>=300)
    {
       
Random.Range(0.0111);
       }
       
          if(
time>=420)
    {
       
Random.Range(0.016);
    }
    
          if(
time>=480)
    {
       
Random.Range(0.013);
    }
    



     if(
time>=next_Instans)
     {
         
LaunchProjectile ();
         
next_Instans+=x;
     }
}

function 
LaunchProjectile () 
{
instance Instantiate(apple,transform.positiontransform.rotation);
instance.velocity transform.TransformDirectionVector300) );



pax 19.06.2011 16:29

Ответ: Фак по Юнити.
 
Вот этот код вообще беда, условия такие, что чем больше уровень сложности, тем больше раз сработает рандом.

SaM_ 19.06.2011 16:31

Ответ: Фак по Юнити.
 
И что в итоге выйдет? Как это будет выглядеть в игре? Что-то не пойму. Уже потестил - вроде нормально.

pax 19.06.2011 16:32

Ответ: Фак по Юнити.
 
На самой сложной игре будет выполнено каждое условие, результат конечно получишь верный

pax 19.06.2011 16:37

Ответ: Фак по Юнити.
 
Вот еще пример:
PHP код:

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

Invoke("LaunchProjectile"x); 

function 
LaunchProjectile () 
{
  
instance Instantiate(apple,transform.positiontransform.rotation);
  
instance.velocity transform.TransformDirectionVector300) );

  
time=Time.timeSinceLevelLoad

  if(
time>=480)
  {
     
Invoke("LaunchProjectile"Random.Range(0.013));
  }
  else if (
time>=420
  { 
     
Invoke("LaunchProjectile"Random.Range(0.016));
  } 
  else if (
time>=300
  { 
     
Invoke("LaunchProjectile"Random.Range(0.0111));
  } 
  else if (
time>=180
  { 
     
Invoke("LaunchProjectile"Random.Range(0.0116));
  } 
  else if (
time>=60
  { 
     
Invoke("LaunchProjectile"Random.Range(0.0121));
  } 
  else if (
time>=30
  { 
     
Invoke("LaunchProjectile"Random.Range(0.0131));
  } 
  else
  {
     
Invoke("LaunchProjectile"Random.Range(0.0141));
  }



SaM_ 19.06.2011 20:26

Ответ: Фак по Юнити.
 
В бесплатной версии Unity возможно как-то реализовать динамическую тень? Может скрипт есть какой нибудь?

pax 19.06.2011 20:34

Ответ: Фак по Юнити.
 
Нет, только фейковую.

Lestar 19.06.2011 22:12

Ответ: Фак по Юнити.
 
http://www.youtube.com/watch?v=e7NUXuyHv6E

L-ee-X 20.06.2011 16:41

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от SaM_ (Сообщение 192209)
Lestar, я js только вчера начал учить, мне многое еще рано :-)

И все же не могу я разобраться:
PHP код:

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


function Update ()
{
   
time=Time.timeSinceLevelLoad;

   if(
time>=1)
    {
      
Random.Range(521);
     }
      if(
time>=30)
    {
       
Random.Range(16);
     }
}




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

function LaunchProjectile () 
{
instance Instantiate(apple,transform.positiontransform.rotation);
instance.velocity transform.TransformDirectionVector300) );




Вот мой скрипт спавна. Что не так? Ибо изменение колва спавнющихся объектов со временем не меняется, хотя игра запускается.

Если ты его только начал изучать, то мне кажется, что до программирования игр, а тем более на Unity3D еще далеко... Подучи синтаксис языка, научись работать с классами, объектами, полями и т. д. Только потом садись за Unity3D, и только тогда не будешь задавать глупых вопросов... В Unity3D очень хорошая справка, достаточно только уметь обращаться с ООП и Unity для тебя станет раем ;) Дерзай ;)

is.SarCasm 23.06.2011 20:13

Ответ: Фак по Юнити.
 
Цитата:

var mycamera:GameObject;
var Distance=10;
function Update () {
mycamera.transform.position.y = transform.position.y + Mathf.Sin(mycamera.transform.rotation.x)* Distance;
mycamera.transform.position.z = transform.position.z + Mathf.Cos(mycamera.transform.rotation.x)* -Distance;
}
По сути работает правильно. ТО ест ькамера движется как нода и дистанция соблюдается, но какого то хера время от времени меняется знак О_О
То есть например сначало при 30 градусах камера идёт вверх, а потом при 30 идет вниз. Короче загрузите, посмотрите


Часовой пояс GMT +4, время: 05:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot