Передвижение объектов, создание animation, используя JS - Форум Игроделов
Пт, 17 Май 2024, 05:16 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Передвижение объектов, создание animation, используя JS ([JS])
Передвижение объектов, создание animation, используя JS
listanДата: Вт, 25 Окт 2011, 14:38 | Сообщение # 1
Нет аватара
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте) Накопился ряд вопрос по JS скриптам в Unity. Помогите их решить)
Идея такая: пользователь используя кнопки мыши и кнопки клавиатуры передвигает сферу как ему угодно в приделах комнаты.

1)Как сделать так, чтобы при движение сферы,она не застревали в ограничивающих её координатах(стенках комнаты) ,а плавно двигалась по ним вдоль стенки (при движении,если пользователь как бы хочет завести шарик за стенку)?

2)Как можно получить координаты сферы и используя эти координаты создать такую animation (используя JS) таким образом,чтобы при нажатии на какой-нибудь предмет(пусть это будет кнопка) сфера опускалась вниз, например вот мы подвинули сферу? используя предыдущий скрипт передвижения,нажали на кyопку,сфера опустилась вниз.

Заранее спасибо за ответы)

Cам скрипт передвижения объекта

Code
function OnMouseDown () {
var screenSpace = Camera.main.WorldToScreenPoint(transform.position) ;
var offset = transform.position - Camera.main.ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z));
var curPosition=transform.position;
var curScreenSpace = Vector3(0,0,0);
while (Input.GetMouseButton(0) )
{
curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
/*ограничение области передвижения сферы*/
if ((curPosition.x>=-5)&&(curPosition.x<=5)&&(curPosition.y<=4.5)&&(curPosition.y>=0.8)&&(curPosition.z<=13)&&(curPosition.z>=-5)) {
transform.position = curPosition;}
yield;
}
}

Используй [code], для выделения кода.
(Aswo)
 
СообщениеЗдравствуйте) Накопился ряд вопрос по JS скриптам в Unity. Помогите их решить)
Идея такая: пользователь используя кнопки мыши и кнопки клавиатуры передвигает сферу как ему угодно в приделах комнаты.

1)Как сделать так, чтобы при движение сферы,она не застревали в ограничивающих её координатах(стенках комнаты) ,а плавно двигалась по ним вдоль стенки (при движении,если пользователь как бы хочет завести шарик за стенку)?

2)Как можно получить координаты сферы и используя эти координаты создать такую animation (используя JS) таким образом,чтобы при нажатии на какой-нибудь предмет(пусть это будет кнопка) сфера опускалась вниз, например вот мы подвинули сферу? используя предыдущий скрипт передвижения,нажали на кyопку,сфера опустилась вниз.

Заранее спасибо за ответы)

Cам скрипт передвижения объекта

Code
function OnMouseDown () {
var screenSpace = Camera.main.WorldToScreenPoint(transform.position) ;
var offset = transform.position - Camera.main.ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z));
var curPosition=transform.position;
var curScreenSpace = Vector3(0,0,0);
while (Input.GetMouseButton(0) )
{
curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
/*ограничение области передвижения сферы*/
if ((curPosition.x>=-5)&&(curPosition.x<=5)&&(curPosition.y<=4.5)&&(curPosition.y>=0.8)&&(curPosition.z<=13)&&(curPosition.z>=-5)) {
transform.position = curPosition;}
yield;
}
}

Используй [code], для выделения кода.
(Aswo)

Автор - listan
Дата добавления - 25 Окт 2011 в 14:38
СкептикДата: Вт, 25 Окт 2011, 21:21 | Сообщение # 2
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Quote (listan)
Как сделать так, чтобы при движение сферы,она не застревали в ограничивающих её координатах(стенках комнаты) ,а плавно двигалась по ним вдоль стенки (при движении,если пользователь как бы хочет завести шарик за стенку)?


Тут просто задаем ограничение.

Code
if (Input.mousePosition.x > 50) Input.mousePosition.x = 50;


или

Code
if (Input.mousePosition.x > 50) curPosition = нужное значение;


То же и по оси Y.

Добавлено (25.10.2011, 21:21)
---------------------------------------------

Code
if ((curPosition.x>=-5)&&(curPosition.x<=5)&&(curPosition.y<=4.5)&&(curPosition.y>=0.8)&&(curPosition.z<=13)&&(curPosition.z>=-5)) {  
transform.position = curPosition;}


У вас ведь этот кусок должен ограничивать движение сферы?


Фанат игр Max Payne и Fahrenheit.
 
Сообщение
Quote (listan)
Как сделать так, чтобы при движение сферы,она не застревали в ограничивающих её координатах(стенках комнаты) ,а плавно двигалась по ним вдоль стенки (при движении,если пользователь как бы хочет завести шарик за стенку)?


Тут просто задаем ограничение.

Code
if (Input.mousePosition.x > 50) Input.mousePosition.x = 50;


или

Code
if (Input.mousePosition.x > 50) curPosition = нужное значение;


То же и по оси Y.

Добавлено (25.10.2011, 21:21)
---------------------------------------------

Code
if ((curPosition.x>=-5)&&(curPosition.x<=5)&&(curPosition.y<=4.5)&&(curPosition.y>=0.8)&&(curPosition.z<=13)&&(curPosition.z>=-5)) {  
transform.position = curPosition;}


У вас ведь этот кусок должен ограничивать движение сферы?

Автор - Скептик
Дата добавления - 25 Окт 2011 в 21:21
Форум Игроделов » UNITY3D » СКРИПТИНГ » Передвижение объектов, создание animation, используя JS ([JS])
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024