Управление физического шара - Форум Игроделов
Вт, 04 Фев 2025, 02:01 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Управление физического шара
MaxUnityDevДата: Пт, 03 Фев 2012, 15:44 | Сообщение # 1
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Всем привет. Тут столкнулся с такой проблемой. Есть скрипт управления и прыжка шара, но при прыжке с разгона шар летит вперед сильно если держать клавишу, с место как бы нормально. И когда давишь допустим в право, шар разгоняется как и должен, но когда отпускаешь, он продолжает двигатся, мне же нужно чтобы он остоновился только не сразу.

Code
var Jumped = false;
var speedScroll = 3;
var JumpUP = 7;
        function Update () {

            
        if (Input.GetKey ("a")) {

        rigidbody.AddForce (Vector3.left *speedScroll);

        }
        if (Input.GetKey ("d")) {
        rigidbody.AddForce (Vector3.right * speedScroll);
        }

        if(Input.GetKey("space") && !Jumped)
        {
                rigidbody.velocity += Vector3(0,JumpUP,0);
                Jumped = true;
                }
        }
//При помощи этого тега шар будет прыгать. Указать тег где вы хотели использовать прыжок.
        function OnCollisionEnter(theCollision : Collision){
         if(theCollision.gameObject.tag == "Floor"){
      Jumped = false;}}
          function OnCollisionExit(theCollision : Collision){
         Jumped = true;}
      


Прошу помощи, так как еще не достиг хорошего знания JS но стараюся.

Да и как уместит в одной строке много тегов, дапустим Floor| Metal| Wood столько сколько нужно мне.


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити


Сообщение отредактировал MaxUnityDev - Пт, 03 Фев 2012, 16:08
 
СообщениеВсем привет. Тут столкнулся с такой проблемой. Есть скрипт управления и прыжка шара, но при прыжке с разгона шар летит вперед сильно если держать клавишу, с место как бы нормально. И когда давишь допустим в право, шар разгоняется как и должен, но когда отпускаешь, он продолжает двигатся, мне же нужно чтобы он остоновился только не сразу.

Code
var Jumped = false;
var speedScroll = 3;
var JumpUP = 7;
        function Update () {

            
        if (Input.GetKey ("a")) {

        rigidbody.AddForce (Vector3.left *speedScroll);

        }
        if (Input.GetKey ("d")) {
        rigidbody.AddForce (Vector3.right * speedScroll);
        }

        if(Input.GetKey("space") && !Jumped)
        {
                rigidbody.velocity += Vector3(0,JumpUP,0);
                Jumped = true;
                }
        }
//При помощи этого тега шар будет прыгать. Указать тег где вы хотели использовать прыжок.
        function OnCollisionEnter(theCollision : Collision){
         if(theCollision.gameObject.tag == "Floor"){
      Jumped = false;}}
          function OnCollisionExit(theCollision : Collision){
         Jumped = true;}
      


Прошу помощи, так как еще не достиг хорошего знания JS но стараюся.

Да и как уместит в одной строке много тегов, дапустим Floor| Metal| Wood столько сколько нужно мне.

Автор - MaxUnityDev
Дата добавления - 03 Фев 2012 в 15:44
ЛевшаДата: Пт, 03 Фев 2012, 18:36 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote
когда отпускаешь, он продолжает двигатся, мне же нужно чтобы он остоновился только не сразу.

Параметры rigidBody - Drag и AngularDrag определяют сопротивление среды.

Quote (MaxUnityDev)
Да и как уместит в одной строке много тегов

Непонятный вопрос...


X.cor.R (Prologue)
 
Сообщение
Quote
когда отпускаешь, он продолжает двигатся, мне же нужно чтобы он остоновился только не сразу.

Параметры rigidBody - Drag и AngularDrag определяют сопротивление среды.

Quote (MaxUnityDev)
Да и как уместит в одной строке много тегов

Непонятный вопрос...

Автор - Левша
Дата добавления - 03 Фев 2012 в 18:36
MaxUnityDevДата: Сб, 04 Фев 2012, 10:23 | Сообщение # 3
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Quote (Левша)
Непонятный вопрос...


Можно ли в тегах прописывать не одно значение а несколько, чтобы не дописывать еще много строк кода.

if(theCollision.gameObject.tag == "Floor"){ - Можно ли еще дописать сюда же допустим тег Metal, wood или нужно еще дополнительно прописывать код для тега?


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити
 
Сообщение
Quote (Левша)
Непонятный вопрос...


Можно ли в тегах прописывать не одно значение а несколько, чтобы не дописывать еще много строк кода.

if(theCollision.gameObject.tag == "Floor"){ - Можно ли еще дописать сюда же допустим тег Metal, wood или нужно еще дополнительно прописывать код для тега?

Автор - MaxUnityDev
Дата добавления - 04 Фев 2012 в 10:23
seamanДата: Сб, 04 Фев 2012, 11:55 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Code
string tag = theCollision.gameObject.tag;
if(tag == "Floor" || tag == "Metal" || ...)
{}
 
Сообщение
Code
string tag = theCollision.gameObject.tag;
if(tag == "Floor" || tag == "Metal" || ...)
{}

Автор - seaman
Дата добавления - 04 Фев 2012 в 11:55
MaxUnityDevДата: Пн, 06 Фев 2012, 10:19 | Сообщение # 5
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Quote (seaman)
string tag = theCollision.gameObject.tag;  if(tag == "Floor" || tag == "Metal" || ...)  {}


Спасибо. Можете еще помочь. Как это

Code
string tag = theCollision.gameObject.tag;   
   if(tag == "Floor" || tag == "Metal" || ...)   
   {}


приставить сюда
Code
  function OnCollisionEnter(theCollision : Collision){   
           if(theCollision.gameObject.tag == "Floor"){   
        Jumped = false;}}   
            function OnCollisionExit(theCollision : Collision){   
           Jumped = true;}


Просто вчера пробовал, с таким еще не разу не связывался. Вроде как дома сделал, но он перестал вообще реагировать на теги.


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити


Сообщение отредактировал MaxUnityDev - Пн, 06 Фев 2012, 10:20
 
Сообщение
Quote (seaman)
string tag = theCollision.gameObject.tag;  if(tag == "Floor" || tag == "Metal" || ...)  {}


Спасибо. Можете еще помочь. Как это

Code
string tag = theCollision.gameObject.tag;   
   if(tag == "Floor" || tag == "Metal" || ...)   
   {}


приставить сюда
Code
  function OnCollisionEnter(theCollision : Collision){   
           if(theCollision.gameObject.tag == "Floor"){   
        Jumped = false;}}   
            function OnCollisionExit(theCollision : Collision){   
           Jumped = true;}


Просто вчера пробовал, с таким еще не разу не связывался. Вроде как дома сделал, но он перестал вообще реагировать на теги.

Автор - MaxUnityDev
Дата добавления - 06 Фев 2012 в 10:19
seamanДата: Пн, 06 Фев 2012, 14:01 | Сообщение # 6
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Code
function OnCollisionEnter(theCollision : Collision)
{
     string tag = theCollision.gameObject.tag;
     Jumped = !(tag == "Floor" || tag == "Metal");
}
function OnCollisionExit(theCollision : Collision)
{
     Jumped = true;
}
 
Сообщение
Code
function OnCollisionEnter(theCollision : Collision)
{
     string tag = theCollision.gameObject.tag;
     Jumped = !(tag == "Floor" || tag == "Metal");
}
function OnCollisionExit(theCollision : Collision)
{
     Jumped = true;
}

Автор - seaman
Дата добавления - 06 Фев 2012 в 14:01
MaxUnityDevДата: Пн, 06 Фев 2012, 14:45 | Сообщение # 7
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Quote (seaman)
Codefunction OnCollisionEnter(theCollision : Collision)  {      string tag = theCollision.gameObject.tag;      Jumped = !(tag == "Floor" || tag == "Metal");  }  function OnCollisionExit(theCollision : Collision)  {      Jumped = true;  }


Ошибка. Блин не пойму, там проще не куда но ошибка.


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити
 
Сообщение
Quote (seaman)
Codefunction OnCollisionEnter(theCollision : Collision)  {      string tag = theCollision.gameObject.tag;      Jumped = !(tag == "Floor" || tag == "Metal");  }  function OnCollisionExit(theCollision : Collision)  {      Jumped = true;  }


Ошибка. Блин не пойму, там проще не куда но ошибка.

Автор - MaxUnityDev
Дата добавления - 06 Фев 2012 в 14:45
seamanДата: Пн, 06 Фев 2012, 15:22 | Сообщение # 8
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Сорри, это из-за того что я на C# пишу. Получилось смешение языков. переменные в JS бявляются не так
Code
string tag = theCollision.gameObject.tag;

а так:
Code
var tag : string = theCollision.gameObject.tag;
 
СообщениеСорри, это из-за того что я на C# пишу. Получилось смешение языков. переменные в JS бявляются не так
Code
string tag = theCollision.gameObject.tag;

а так:
Code
var tag : string = theCollision.gameObject.tag;

Автор - seaman
Дата добавления - 06 Фев 2012 в 15:22
MaxUnityDevДата: Пн, 06 Фев 2012, 15:31 | Сообщение # 9
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Quote (seaman)
var tag : string = theCollision.gameObject.tag;


Та же ошибка выдает. Может то что у меня 3.5 версия, может что они изменили.


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити
 
Сообщение
Quote (seaman)
var tag : string = theCollision.gameObject.tag;


Та же ошибка выдает. Может то что у меня 3.5 версия, может что они изменили.

Автор - MaxUnityDev
Дата добавления - 06 Фев 2012 в 15:31
seamanДата: Пн, 06 Фев 2012, 16:16 | Сообщение # 10
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Строку в которой ошибка в студию. А лучше весь скрипт как он есть в программе.
 
СообщениеСтроку в которой ошибка в студию. А лучше весь скрипт как он есть в программе.

Автор - seaman
Дата добавления - 06 Фев 2012 в 16:16
ЛевшаДата: Пн, 06 Фев 2012, 17:15 | Сообщение # 11
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (seaman)
var tag : string = theCollision.gameObject.tag;

Не нужен на Js - string, хотя и так работать будет.

Quote (MaxUnityDev)
у меня 3.5 версия, может что они изменили.

Нет, скорее у тебя в др. ошибка.


X.cor.R (Prologue)
 
Сообщение
Quote (seaman)
var tag : string = theCollision.gameObject.tag;

Не нужен на Js - string, хотя и так работать будет.

Quote (MaxUnityDev)
у меня 3.5 версия, может что они изменили.

Нет, скорее у тебя в др. ошибка.

Автор - Левша
Дата добавления - 06 Фев 2012 в 17:15
MaxUnityDevДата: Сб, 18 Фев 2012, 11:01 | Сообщение # 12
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Все заработало. Спасибо всем.

Quote (Левша)
Не нужен на Js - string, хотя и так работать будет.

Именно я так и сделал.

Code
var Jumped = false;
var speedScroll = 10;
var JumpUP = 8;
       function Update () {

          
       if (Input.GetKey ("a")) {

       rigidbody.AddForce (Vector3.left *speedScroll);

       }
       if (Input.GetKey ("d")) {
       rigidbody.AddForce (Vector3.right * speedScroll);
       }

       if(Input.GetKey("space") && !Jumped)
       {
               rigidbody.velocity += Vector3(0,JumpUP,0);
               Jumped = true;
               }
       }

function OnCollisionEnter(theCollision : Collision)
{
        tag = theCollision.gameObject.tag;    
        Jumped = !(tag == "Floor" || tag == "Metal");    
    }    
    function OnCollisionExit(theCollision : Collision)    
    {    
        Jumped = true;    
    }


Впринцепи при массе хотябы 10 кг и Ангуляр драг я поставил 1 все хорошо работает.

Добавлено (07.02.2012, 12:00)
---------------------------------------------
Подскажите еще, как можно сделать при нажатии клавиши шифт чтобы шар разгонялся в ту сторону куда идешь. Допустим я качу шар в право, он едет тихо, я нажимаю клавишу шифт и он резко устремляется вперед, но так чтобы допусти всего секунды 3, чтобы тупа не летел.

Если добавить к коду выше вот эти строки то шар крутится но не так как надо. А то что он на месте прокручивается нужно усилить. Но как?
Code

var ballRotateSpeed = 200;

  if (Input.GetKey ("left ctrl")) {
     rigidbody.AddTorque (Vector3.one * ballRotateSpeed);
     }
  

Добавлено (18.02.2012, 11:01)
---------------------------------------------
Исходник шара

Помогите. Вот исходник. Там есть скрипт Particle_Collision я кидаю его на объект, и выбираю партикл, при коллизии производится эффект. А как сделать чтобы допустим при коллизии чтобы дым исходил не однократно, при его передвижение...


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити


Сообщение отредактировал MaxUnityDev - Вт, 07 Фев 2012, 13:04
 
СообщениеВсе заработало. Спасибо всем.

Quote (Левша)
Не нужен на Js - string, хотя и так работать будет.

Именно я так и сделал.

Code
var Jumped = false;
var speedScroll = 10;
var JumpUP = 8;
       function Update () {

          
       if (Input.GetKey ("a")) {

       rigidbody.AddForce (Vector3.left *speedScroll);

       }
       if (Input.GetKey ("d")) {
       rigidbody.AddForce (Vector3.right * speedScroll);
       }

       if(Input.GetKey("space") && !Jumped)
       {
               rigidbody.velocity += Vector3(0,JumpUP,0);
               Jumped = true;
               }
       }

function OnCollisionEnter(theCollision : Collision)
{
        tag = theCollision.gameObject.tag;    
        Jumped = !(tag == "Floor" || tag == "Metal");    
    }    
    function OnCollisionExit(theCollision : Collision)    
    {    
        Jumped = true;    
    }


Впринцепи при массе хотябы 10 кг и Ангуляр драг я поставил 1 все хорошо работает.

Добавлено (07.02.2012, 12:00)
---------------------------------------------
Подскажите еще, как можно сделать при нажатии клавиши шифт чтобы шар разгонялся в ту сторону куда идешь. Допустим я качу шар в право, он едет тихо, я нажимаю клавишу шифт и он резко устремляется вперед, но так чтобы допусти всего секунды 3, чтобы тупа не летел.

Если добавить к коду выше вот эти строки то шар крутится но не так как надо. А то что он на месте прокручивается нужно усилить. Но как?
Code

var ballRotateSpeed = 200;

  if (Input.GetKey ("left ctrl")) {
     rigidbody.AddTorque (Vector3.one * ballRotateSpeed);
     }
  

Добавлено (18.02.2012, 11:01)
---------------------------------------------
Исходник шара

Помогите. Вот исходник. Там есть скрипт Particle_Collision я кидаю его на объект, и выбираю партикл, при коллизии производится эффект. А как сделать чтобы допустим при коллизии чтобы дым исходил не однократно, при его передвижение...


Автор - MaxUnityDev
Дата добавления - 18 Фев 2012 в 11:01
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025