Пределы клика мышью
|
|
kario_s | Дата: Среда, 12 Марта 2014, 19:50 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| У меня игра, где некий предмет появляется в определенно заданной области. Если по нему кликнуть, то прибавляются очки, а если мимо него - отнимаются. Но, я столкнулся с такой неприятной вещью: кликая не только по определенно заданной области респавна предмета, у меня так же отнимаются очки, т.е. если курсор мышки за пределами области и я делаю клик очки отнимаются. Как можно это исправить, чтобы клики считались только по той области, которую я задал в качестве респавна для предмета? Если понадобится, могу скинуть скрипт.
|
|
| |
lakoris | Дата: Среда, 12 Марта 2014, 19:57 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| kario_s, может теги?
|
|
| |
kario_s | Дата: Среда, 12 Марта 2014, 20:45 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| lakoris, каким образом там можно ограничить клик тегом? в то время, как область спавна я задал координатами.
|
|
| |
lakoris | Дата: Среда, 12 Марта 2014, 21:40 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| kario_s, ну так. создай в этой же области триггер с N тегом и при клике проверяй так-же тег
|
|
| |
kario_s | Дата: Четверг, 13 Марта 2014, 16:25 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| lakoris, блин, этот триггер теперь тоже спавнится в рандомном месте
|
|
| |
PoqXert | Дата: Четверг, 13 Марта 2014, 16:47 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Сравнивай координаты области и клика.
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
kario_s | Дата: Четверг, 13 Марта 2014, 16:57 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| PoqXert, не понял, при чем тут это? Код void Update () { if (Input.GetMouseButtonDown (0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray, out hit, 100)) { newPosition = new Vector3 (Random.Range (-2.3f, 2.2f), Random.Range (-4.4f, 4.5f));
StartCoroutine(respawnWait(hit.transform)); hit.transform.position = newPosition;
if(hit.transform.tag == "Player") { plusScore = 200; score += plusScore; } } if (hit.collider.tag == "N") { score -= increaseScore; } } }
Мой предмет спавнится в рандомном месте, после того, как я создал триггер и вставил в код (при клике по триггеру) он стал так же спавниться в рандом месте после нажатия, как и предмет с тегом "Player".
|
|
| |
rip_your_chest | Дата: Четверг, 13 Марта 2014, 16:59 | Сообщение # 8 |
был не раз
Сейчас нет на сайте
| Ну раз такой случай, можно сделать так, чтоб когда ты нажимаешь на кнопку респавна, прибавлялись очки, отнятые у тебя из-за того, что ты "промахнулся":D (шучу конечно, но это вариант)
|
|
| |
PoqXert | Дата: Четверг, 13 Марта 2014, 17:31 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Цитата kario_s ( ) PoqXert, не понял, при чем тут это? Цитата kario_s ( ) Как можно это исправить, чтобы клики считались только по той области, которую я задал в качестве респавна для предмета? Цитата kario_s ( ) в то время, как область спавна я задал координатами. Цитата PoqXert ( ) Сравнивай координаты области и клика.
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
allods | Дата: Пятница, 14 Марта 2014, 16:25 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| А нафига ты спавниш тригер для отнимания очков с каждым Предметом? Как я понял ты спавниш предмет на который надо кликать для прибавки очков, после чего он исчезает . Если промазал то отнимают но только если клик был в переделе области. Как я понял у тебя есть всего одна область. Так зачем ты спавниш еще области
|
|
| |