Курсор и объект[РЕШЕНО]
Добавлено:
09 окт 2011, 10:38
Nachiket
Помогите пожалуйста с написанием скрипта(на яве). Есть примитив, как сделать так, чтобы он, после нажатия не нем лкм, следовал за курсором?
Заранее спасибо)
Re: Курсор и объект
Добавлено:
09 окт 2011, 13:13
bomberest
Для движения за курсором - брать позицию курсора x,y и присваивать их кубику, а z у кубика оставлять прежним.
Ну, я бы сделал так, наверное: при нажатии на лкм пускается луч, если объект, с которым столкнулся луч, подходит (проверка на тэг), то мы начинаем его тягать.
Re: Курсор и объект
Добавлено:
09 окт 2011, 14:11
Nachiket
Сделал все, но дело в том, что после нажатия на объекте мышью он просто исчезает. и его координаты равны глобальным. как сделать так, чтобы кубик следовал за мышью на экране
Вот скрипт, на всякий случай :
Используется javascript
function Update()
{
if(Input.GetMouseButton(0))
{
var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if(Physics.Raycast(ray,hit, 100))
{
if(hit.transform.tag == "box")
{
print("hit");
hit.transform.position = Input.mousePosition;
}
}
}
}
Re: Курсор и объект
Добавлено:
09 окт 2011, 14:19
bomberest
Возможно путаю, но ведь нужно присваивать только 2 оси кубику?
Re: Курсор и объект
Добавлено:
09 окт 2011, 14:30
Neodrop
http://www.unity3d.com раздел Resources, демо проект Procedural Example - там есть готовый пример требуемой задачи. Изучите.
А так, в двух словах :
Луч от камеры.
Взять по лучу требуемую дистанцию (получаем Vector3).
Поставить объект в полученную точку.
Вот и вся любовь в быстром исполнении.
Пример тут.
Re: Курсор и объект
Добавлено:
09 окт 2011, 14:37
seaman
Вот это, конечно, потрясающая строчка:
hit.transform.position = Input.mousePosition;
1. Кроме метода ScreenPointToRay у камеры есть
ScreenToWorldPoint. Используйте его.
2. Если у Вас не для мобилок, то проще использовать не Raycast, а
OnMouseDown
Re: Курсор и объект
Добавлено:
09 окт 2011, 21:41
Nachiket
Всем спасибо, получилось!
Re: Курсор и объект
Добавлено:
09 окт 2011, 22:52
seaman
Добавьте в название темы [РЕШЕНО].