Не дать объекту покинуть объем

Общие вопросы о Unity3D

Не дать объекту покинуть объем

Сообщение GrueGames 19 май 2009, 18:49

Подскажите пожалуйста как лучше ограничить движения объекта?

Вот у меня есть сцена с объектами, колидерами итд. По сцене двигается объект - таргет на который смотрит камера сверху сбоку.
Вот как мне этот таргет не выпускать за пределы BoxCollider'а который я создал на сцене? Причем чтобы он не сталкивался с колидерами игровых объектов.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Не дать объекту покинуть объем

Сообщение Neodrop 19 май 2009, 18:55

К примеру, можно повесить на объект Sphere Collider побольше радиусом. Поставить на нём галку isTrigger и проверять, не заколлизился ли он с границами уровня. Если заколлизился, предпринимать действия по отодвиганию объекта обратно.
Это простой и действенный метод.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Не дать объекту покинуть объем

Сообщение GrueGames 19 май 2009, 19:10

Спасибо! разобрался
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Не дать объекту покинуть объем

Сообщение Neodrop 19 май 2009, 20:46

Не, ну в самом деле, иногда, я будто сам с собою разговариваю..
Галку isTrigger поставить и ничего дрожать не станет.
Второй вариант : Поставить Сферу и коллидить её только с коллидерами из определённого слоя. Тогда будет скольжение вдоль границ уровня и НЕ будет коллизий с объектами из "общих слоёв".
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Не дать объекту покинуть объем

Сообщение GrueGames 19 май 2009, 22:14

Извините.
С isTrigger разобрался, но не получается сделать отброс назад. Объект просто на долю секунды застревает на границе тригера и движется дальше.
Код: Выделить всё
function Update () {
if (block) {
      transform.position.x = limit_x;
      transform.position.z = limit_z;
      block = false;
      }
}

function OnTriggerStay(other : Collider) {
    if (other.gameObject.name == "limit") {
        limit_x = transform.position.x;
        limit_z = transform.position.z;
        }
}

function OnTriggerExit(other : Collider) { //если объект вышел за предел
     if (other.gameObject.name == "limit") {
         block = true;
         }
}
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ


Вернуться в Общие вопросы

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

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