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)

Pan89 01.05.2011 22:36

Ответ: Фак по Юнити.
 
Буду внимательнее читать документацию.

Nuprahtor 08.06.2011 09:18

Ответ: Фак по Юнити.
 
http://entitycrisis.blogspot.com/201...occlusion.html
Increpare на форуме тигсурса выложил сию ссылку. Фальшивый вертексный эмбиент окклюжн - для настоящих инди-мэнов! (не проверял, но, думаю, должно быть красиво и дешево)

pax 08.06.2011 10:09

Ответ: Фак по Юнити.
 
Красиво будет, если очень много вершин в модели. Для низкополигональных проще использовать лайтмэпу.

SaM_ 16.06.2011 19:11

Ответ: Фак по Юнити.
 
Объясните как пользоваться функцией типа Random. Что бы при определенном действии случайно выбиралась одна из заранее заданных форм. Например, при передвижении игрока, включалась Одна из Нескольких анимаций.

Lestar 16.06.2011 19:23

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

int variable = UnityEngine.Random.Range(0, 5);
switch(variable)
 {
    case 0:
        //играем анимацию 1
    break;
  ..............
      case 5:
        //играем анимацию 6
    break;
  }


SaM_ 18.06.2011 23:58

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

function OnCollisionEnter(collision Collision) {
    for (var 
contact ContactPoint in collision.contacts) {
        
Debug.DrawRay(contact.pointcontact.normalColor.white);
    }
    if (
collision.relativeVelocity.magnitude 0.1)
        
Destroy (gameObject);


В данном случае объект, к которому применен скрипт уничтожается при столкновении с Любым другим телом.
Что изменить, что бы объект уничтожался при с столкновении с Определенным телом?

pax 19.06.2011 02:45

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

function OnCollisionEnter(collision Collision) { 
    for (var 
contact ContactPoint in collision.contacts) { 
        
Debug.DrawRay(contact.pointcontact.normalColor.white); 
    } 
    if (
collision.gameObject.Tag == "Player"
        
Destroy (gameObject); 


Игроку надо будет назначить тэг Player и тогда объект будет уничтожен при столкновении с игроком.

SaM_ 19.06.2011 13:35

Ответ: Фак по Юнити.
 
Спасибо, работает. Хотя, мне кажется, что будет лучше, если тег объекта будет с маленькой буквы. У меня скрипт заработал только при таком условии. :dontknow:
Как сделать задержку выполнения действия после столкновения?

pax 19.06.2011 13:36

Ответ: Фак по Юнити.
 
Что-то вроде:
PHP код:

var time float 2;

function 
OnCollisionEnter(collision Collision) { 
    for (var 
contact ContactPoint in collision.contacts) { 
        
Debug.DrawRay(contact.pointcontact.normalColor.white); 
    } 
    if (
collision.gameObject.Tag == "Player"
        
Invoke ("DestroySelf"time ); 
}  

function 
DestroySelf(){
   
Destroy (gameObject); 



SaM_ 19.06.2011 14:26

Ответ: Фак по Юнити.
 
Возник еще один вопрос :rolleyes:

Как поменять значение переменной через определенный промежуток времени после старта? (Использую js)

pax 19.06.2011 14:34

Ответ: Фак по Юнити.
 
Ну очевидно жеж из предыдущего примера:
PHP код:

var time float 2;
var 
mayVar int 1;

function 
Start() { 
    
Invoke ("ChangeValue"time ); 
}  

function 
ChangeValue(){
   
mayVar 2;


или

PHP код:

var time float 2;
var 
mayVar int 1;

function 
Start() { 
    yield 
WaitForSeconds(time);
    
mayVar 2;



Lestar 19.06.2011 14:36

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

var my_TIme float;
var 
my_Variable :float=5;

function 
Update ()
{
   
my_Time=Time.time ;

   if(
my_Time>=30)
    {
       
my_Variable=15
    }


В зависимости от нужды вместо Time.time использовать Time.timeSinceLevelLoad .
P.S. Pax,мне кажется ему еще рановато делегаты использовать :)

SaM_ 19.06.2011 14:58

Ответ: Фак по Юнити.
 
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) );




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

pax 19.06.2011 15:06

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

PHP код:

var time float 2;
var 
float 1;

function 
Start() { 
    yield 
WaitForSeconds(1);
    
Random.Range(521); 
    yield 
WaitForSeconds(29);
    
Random.Range(16); 


А вообще строка
PHP код:

InvokeRepeating("LaunchProjectile"2, (x)); 

выполняется только один раз

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

PHP код:

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


function Start() { 
    yield 
WaitForSeconds(1);
    
Random.Range(521); 
    yield 
WaitForSeconds(29);
    
Random.Range(16); 
}  

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

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


Хотя на js это может выглядеть так, я js плохо знаю для unity, лучше C#:
PHP код:

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

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

yield WaitForSeconds(1);
Random.Range(521); 
yield 
WaitForSeconds(29);
Random.Range(16); 

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



Lestar 19.06.2011 15:22

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

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

function 
Update ()
{
   
time=Time.timeSinceLevelLoad;

   if(
time<30)
    {
      
Random.Range(521);
    }
     else
    {
       
Random.Range(16);
    }

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

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


P.S. Не очень красиво,но для новичка будет проще разобраться в алгоритме.Я тоже предпочитаю C# и если начинать,то начинать его учить.


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

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