Страница 1 из 1

Касание к объекту

СообщениеДобавлено: 25 апр 2017, 08:26
Kirilenkov
Здравствуйте! Подскажите как реализуется касание к объекту? На тач скрине?
Мне нужно когда игрок прикоснулся пальцем к шару например тот исчезал.
примерно так?

public void shar(){
Shar.Destroy();

}
Просто вопрсо в том что мне нужно на каждый шар вешатть этот скрипт? или как то по другому можно реализовать? У меня может бытть нескольок шаров на экране и их всех можно удалить.

Re: Касание к объекту

СообщениеДобавлено: 25 апр 2017, 08:34
Valentinus
обычно пускается луч из точки касания, и проверяется через какие объекты луч проходит - если попался шар, то удаляете его с сцены.

смотрите в справке или гуглите RayCast

PS как-то так:

Синтаксис:
Используется csharp
if (Input.GetKey ("mouse 0")) { //  если  нажата ЛКМ

                                        Ray ray = main_camera.ScreenPointToRay (Input.mousePosition);

                                        RaycastHit[] hits;
                                        hits = Physics.RaycastAll (ray, 1000.0F);
                                        for (int i = 0; i < hits.Length; i++) {                                
                                               
                                                if (hits [i].transform.tag == "shar" ) {
                                                        // удаляете шар или что-то еще


здесь 1000.0F - максимальная дистанция от камеры до шара (можете поставить свою или бесконечность)
здесь шар определяется по тегу у объекта "shar" ( или можете сделать по имени, name)
main_camera - главная камера

если на экране висят какие-то кнопки и нужно чтобы нажатие сквозь них не проходило, то добавьте перед (Ray ray...) код:

Синтаксис:
Используется csharp
                                        // блокировка от нажатий через UI
                                        PointerEventData clickData = new PointerEventData (EventSystem.current);
                                        clickData.position = Input.mousePosition;
                                        List<RaycastResult> results = new List<RaycastResult> ();
                                        EventSystem.current.RaycastAll (clickData, results);
                                        if (results.Count != 0)
                                                return;

 

Re: Касание к объекту

СообщениеДобавлено: 26 апр 2017, 20:51
Kirilenkov
у меня просто много других объеквто на сцене а если сделать tag для объектов которые нужно удалить как тогда скрипт записывать?Если просто исключить их как кнопки?

Re: Касание к объекту

СообщениеДобавлено: 26 апр 2017, 23:17
NOVA
Kirilenkov писал(а):у меня просто много других объеквто на сцене а если сделать tag для объектов которые нужно удалить как тогда скрипт записывать?Если просто исключить их как кнопки?

Это всё гуглится. Raycast object.
if (object.tag.name=("destroyedsphere"))
Типа того сейчас не помню.

Вот Что-то похожее.
http://answers.unity3d.com/questions/37 ... ycast.html
Господа. Пора учить английский.

Re: Касание к объекту

СообщениеДобавлено: 27 апр 2017, 07:27
Valentinus
Kirilenkov писал(а):у меня просто много других объеквто на сцене а если сделать tag для объектов которые нужно удалить как тогда скрипт записывать?Если просто исключить их как кнопки?

Я вам такой пример и привел - условие срабатывает только на обьекты с тегом shar

Re: Касание к объекту

СообщениеДобавлено: 27 апр 2017, 09:10
Kirilenkov
Да простите не уивдел. по другому написано я через tag написал.

А подскажите еще если дургие объекты висят на экране. вы сказали добавить код он весь подчеркивается крсаным

а так ошибка выпадает если на других объектах нет тэга этого

Re: Касание к объекту

СообщениеДобавлено: 01 май 2017, 11:45
Kirilenkov
Valentinus писал(а):
Kirilenkov писал(а):у меня просто много других объеквто на сцене а если сделать tag для объектов которые нужно удалить как тогда скрипт записывать?Если просто исключить их как кнопки?

Я вам такой пример и привел - условие срабатывает только на обьекты с тегом shar



Подскажите еще вы написали код чтобы не срабатывал этот код если лругие объекты нажимаешь. ноу меня все красным подчеркивает? Как правильно его записать. поому что оно спотывается но работает в итоге при перезапуксе. а как полностью убарть эту ошибку?