OnMouseUpAsButton скрипт на одном объекте, управлять другим

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 17 июл 2017, 19:59

Добрый вечер друзья. Я новичок в C# и Unity. Столкнулся с такой проблемой.
1) Есть канвас в котором есть пустой ГО с коллайдером2д, то есть на ГО есть только два компонента: рект трансформ и коллайдер2д.
2) Есть отдельный ГО который находится вне канваса. На этот ГО привязан скрипт.

Вопрос: Возможно ли написать в этом скрипте функцию OnMouseUpAsButton чтобы он срабатывал именно когда я нажимаю на ГО который находится в канвасе. Или мне надо вешать этот скрипт конкретно на ГО который находится в канвасе?

Я пытался сделать это таким образом.
1) В скрипте создал публичную переменную public GameObject left_touch; в которую в редакторе засунул тот ГО который находится в канвасе.
2) Создал функцию:
Синтаксис:
Используется csharp
void OnMouseUpAsButton()
    {
        if (left_touch)
        {
            Debug.Log("LEFT touch");
            print("left");
        }
    }


Но почему то при запуске проекта в редакторе, в консоль не хочет выводится тот блок кода который описан в условие if. Нажимаю по всему ГО но не работает. Подскажите пожалуйста, что я делаю не так.
P.S. Извиняюсь, если название вопроса сформулировал неправильно.
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение samana 17 июл 2017, 21:43

ven000mus писал(а):Вопрос: Возможно ли написать в этом скрипте функцию OnMouseUpAsButton чтобы он срабатывал именно когда я нажимаю на ГО который находится в канвасе. Или мне надо вешать этот скрипт конкретно на ГО который находится в канвасе?

Нет, так не получится. Вам нужно ловить клик по объекту на канвасе. В методе клика может быть что угодно, можно получить ссылку на любой объект сцены и задать любые возможные параметры для него или его компонентов.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 17 июл 2017, 22:28

samana писал(а):
ven000mus писал(а):Вопрос: Возможно ли написать в этом скрипте функцию OnMouseUpAsButton чтобы он срабатывал именно когда я нажимаю на ГО который находится в канвасе. Или мне надо вешать этот скрипт конкретно на ГО который находится в канвасе?

Нет, так не получится. Вам нужно ловить клик по объекту на канвасе. В методе клика может быть что угодно, можно получить ссылку на любой объект сцены и задать любые возможные параметры для него или его компонентов.


Спасибо за ответ. По гуглив, я так и понял что не получится. А тогда такой вопрос, я ведь могу с помощь функции OnMouseUpAsButton, когда прикручу скрипт в ГО канваса, это свое рода невидимые кнопки которые имеют только два компонента: рект трансформ и коллайдер2д, двигать ГО игрока который находится вне канваса и имеет компонент РБ?
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 17 июл 2017, 23:04

Разобрался сам и гугл помог :)
Прописал в скрипте который привязал к ГО канваса в функции OnMouseUpAsButton, блок кода: panda_rb.velocity = new Vector2(turnSpeed, panda_rb.velocity.y);. Заранее выше объявив public Rigidbody2D panda_rb; (в редакторе засунул туда РБ ГО который вне канваса) и float turnSpeed = 5; и все работает, ГО двигается, как я и хотел.

Сейчас буду заставлять ГО игрока (который вне канваса) автоматически прыгать постоянно на определенную высоту и буду думать как прикрутить к нему граундчек чтобы он не улетал, а только прыгал если касается какого то колллайдера с тегом граунд.
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Rando_OM 18 июл 2017, 19:50

ven000mus писал(а):Разобрался сам и гугл помог :)
Прописал в скрипте который привязал к ГО канваса в функции OnMouseUpAsButton, блок кода: panda_rb.velocity = new Vector2(turnSpeed, panda_rb.velocity.y);. Заранее выше объявив public Rigidbody2D panda_rb; (в редакторе засунул туда РБ ГО который вне канваса) и float turnSpeed = 5; и все работает, ГО двигается, как я и хотел.

Сейчас буду заставлять ГО игрока (который вне канваса) автоматически прыгать постоянно на определенную высоту и буду думать как прикрутить к нему граундчек чтобы он не улетал, а только прыгал если касается какого то колллайдера с тегом граунд.

А зачем коллайдер в канвасе? там же все через buttons image text работает.
Мои игры доступны онлайн на Kongregate.com! ---->>
Rando_OM
UNIт
 
Сообщения: 94
Зарегистрирован: 22 дек 2015, 03:44
Откуда: Россия
Skype: gorodok402
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 18 июл 2017, 22:10

Rando_OM писал(а):
ven000mus писал(а):Разобрался сам и гугл помог :)
Прописал в скрипте который привязал к ГО канваса в функции OnMouseUpAsButton, блок кода: panda_rb.velocity = new Vector2(turnSpeed, panda_rb.velocity.y);. Заранее выше объявив public Rigidbody2D panda_rb; (в редакторе засунул туда РБ ГО который вне канваса) и float turnSpeed = 5; и все работает, ГО двигается, как я и хотел.

Сейчас буду заставлять ГО игрока (который вне канваса) автоматически прыгать постоянно на определенную высоту и буду думать как прикрутить к нему граундчек чтобы он не улетал, а только прыгал если касается какого то колллайдера с тегом граунд.

А зачем коллайдер в канвасе? там же все через buttons image text работает.


Ну я там создал два ГО в канвасе и прицепил к ним только коллайдер и рект трансформ и получил две невидимые кнопки для тача. Один ГО на одной половине экрана, второй ГО на другой. И нажимая на левую половину экрана, двигаю ГО героя влево, нажимая на правую половину, двигаю ГО героя на право. Как то так.
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 19 июл 2017, 02:00

Все, граундчек сделал, ГО героя прыгает автоматически на выставленную мною высоту и повторяет прыжок только если ГО находится на слое земля :)

Теперь буду думать как сделать генерацию платформ для героя на которые он будет запрыгивать чтобы пониматься выше и выше, но при этом чтобы платформы появлялись рандомно, но не наезжали сами на себя и конечно же давали герою возможность иметь некое расстояние между собой, дабы герой мог постепенно на них зализать. Ну и конечно останется допереть как сделать так чтобы камера и задний фон всегда следовали за героем но только по оси У (вертикально).

Зачем я это пишу тут, да фиг его знает :)
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Valerich 19 июл 2017, 03:02

Теперь буду думать как сделать

для 2d, я за вас вбил в поисковике, может пригодиться https://www.youtube.com/watch?v=IinYy-gY2oQ
Аватара пользователя
Valerich
UNITрон
 
Сообщения: 328
Зарегистрирован: 07 сен 2016, 11:24

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 19 июл 2017, 04:06

Valerich писал(а):
Теперь буду думать как сделать

для 2d, я за вас вбил в поисковике, может пригодиться https://www.youtube.com/watch?v=IinYy-gY2oQ


Да 2d конечно, я только начал изучать C# & Unity, поэтому делать что то больше чем 2d платформер, вряд ли стоит.
За видео большое спасибо, гляну.

P.S. Если что я написал тут свои мысли, не для того чтобы люди за меня что то искали :) Просто поделился.
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Valerich 19 июл 2017, 05:46

Теперь буду думать как сделать генерацию платформ для героя на которые он будет запрыгивать чтобы пониматься выше и выше, но при этом чтобы платформы появлялись рандомно, но не наезжали сами на себя и конечно же давали герою возможность иметь некое расстояние между собой, дабы герой мог постепенно на них зализать. Ну и конечно останется допереть как сделать так чтобы камера и задний фон всегда следовали за героем но только по оси У (вертикально).

Это видео просто пример коих сотни, который как мне кажется вам нужен, того что вы описали выше, я просто сразу подумал о doodle jump и в некой степени flappy bird, но больше первый вариант. Вот как то так.
Аватара пользователя
Valerich
UNITрон
 
Сообщения: 328
Зарегистрирован: 07 сен 2016, 11:24

Re: OnMouseUpAsButton скрипт на одном объекте, управлять другим

Сообщение Sne Bjorn 19 июл 2017, 05:52

Valerich писал(а):
Теперь буду думать как сделать генерацию платформ для героя на которые он будет запрыгивать чтобы пониматься выше и выше, но при этом чтобы платформы появлялись рандомно, но не наезжали сами на себя и конечно же давали герою возможность иметь некое расстояние между собой, дабы герой мог постепенно на них зализать. Ну и конечно останется допереть как сделать так чтобы камера и задний фон всегда следовали за героем но только по оси У (вертикально).

Это видео просто пример, того что вы описали выше, я просто сразу подумал о doodle jump и в некой степени flappy bird, но больше первый вариант. Вот как то так.


Да кстати неплохое видео, особенно понравился алгоритм комнат :) Возможно есть и лучше варианты, но мне очень приглянулся данный способ, что есть некие комнаты и их просто меняют местами и поднимают выше, а в конечном варианте, игрок думает что там бесконечность :) Спасибо еще раз за видосик.
Страница ВК | Личный блог
Аватара пользователя
Sne Bjorn
UNIт
 
Сообщения: 94
Зарегистрирован: 01 июл 2013, 23:30
Откуда: Azerbaijan, Baku
Skype: sne_byorn
  • Сайт


Вернуться в Почемучка

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

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