Давайте поставим точку

Общие вопросы о Unity3D

Давайте поставим точку

Сообщение michaelmihe 12 ноя 2017, 15:32

Привет всем. Много гуглил и везде разная инфа по поводу того, что лучше OnMouse или пускать луч.
Допустим у меня в сцене сотня кликабельных объектов, что тогда будет лучше использовать?

И второй вопрос, рэй каст пустил, обьект получил по if и тегу, поменял цвет на зеленый, вышел с коллизии, через else цвет стал белым. НО. Блин у меня 20 вариантов тегов, тоеcть мне в if и else придется прописывать каждый вариант? Этож смертоубийство производительности, или я ошибаюсь?
моя группа об инди-играх: vk.com/myindieru
Аватара пользователя
michaelmihe
UNец
 
Сообщения: 18
Зарегистрирован: 24 май 2013, 15:48

Re: Давайте поставим точку

Сообщение 1max1 12 ноя 2017, 15:38

Вряд ли if`ы такие требовательные))
Может попробовать sendmessage? накинуть скрипт с методом на каждый объект, который должен менять цвет и просто отсылать ему меседж.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Давайте поставим точку

Сообщение Cr0c 12 ноя 2017, 15:59

1max1 писал(а):Вряд ли if`ы такие требовательные))
<...>
и просто отсылать ему меседж.

Это в разы требовательнее ифов
IPointerExitHandler-IPointerEnterHandler-IPointerClickHandler-IPointerUpHandler-IPointerDownHandler есть
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Давайте поставим точку

Сообщение michaelmihe 12 ноя 2017, 16:49

Cr0c писал(а):Это в разы требовательнее ифов


Тоесть как я понял, по производительности OnMouse < If < Поинтер

Еще тут писали что Рэйкаст в апдейте может тупить и не срабатывать, есть смысл его в другие апдейты кидать?

Cr0c писал(а):IPointerExitHandler-IPointerEnterHandler-IPointerClickHandler-IPointerUpHandler-IPointerDownHandler есть


Ненашел примеров реализации для самой игры или документации, только для интерфейсов примеры есть и то что-то нагруженное получается
моя группа об инди-играх: vk.com/myindieru
Аватара пользователя
michaelmihe
UNец
 
Сообщения: 18
Зарегистрирован: 24 май 2013, 15:48

Re: Давайте поставим точку

Сообщение michaelmihe 12 ноя 2017, 16:55

Изображение

Суть в том, что бы правильно вот такую всплывашку для стратегии сделать
моя группа об инди-играх: vk.com/myindieru
Аватара пользователя
michaelmihe
UNец
 
Сообщения: 18
Зарегистрирован: 24 май 2013, 15:48

Re: Давайте поставим точку

Сообщение Cr0c 12 ноя 2017, 17:09

michaelmihe писал(а):Ненашел примеров реализации для самой игры или документации, только для интерфейсов примеры есть и то что-то нагруженное получается

Синтаксис:
Используется csharp
using System;
using UnityEngine;
using UnityEngine.EventSystems;

public class TestOver : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("Mouse enter");
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("Mouse exit");
    }
}
 

Вот пример, делать отдельным скриптом, поле с ID описания и кидать на все объекты с описанием.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Давайте поставим точку

Сообщение samana 12 ноя 2017, 20:05

michaelmihe писал(а):что лучше OnMouse или пускать луч.

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

Re: Давайте поставим точку

Сообщение Valentinus 12 ноя 2017, 20:49

michaelmihe писал(а):Изображение

Суть в том, что бы правильно вот такую всплывашку для стратегии сделать


если про билборды то вероятно лучше пускать луч. потому что OnMouse будет тарабанить каждый кадр и на всех объектах под курсором, а луч можно пускать 5 раз в секунду, ограничивать длину, слои и т.п.
но что-то мне подсказывает что хоть так делай , хоть эдак, на fps это особого влияния не окажет, ибо не это самое тяжелое в игре
другое мое творчество: samlib.ru/u/us_w/
Аватара пользователя
Valentinus
Старожил
 
Сообщения: 889
Зарегистрирован: 24 мар 2017, 18:33

Re: Давайте поставим точку

Сообщение michaelmihe 14 ноя 2017, 23:34

Cr0c писал(а):Вот пример, делать отдельным скриптом, поле с ID описания и кидать на все объекты с описанием.


Извиняюсь, а есть какое-то научное пояснение почему это будет быстрее онмаус и простого луча?
моя группа об инди-играх: vk.com/myindieru
Аватара пользователя
michaelmihe
UNец
 
Сообщения: 18
Зарегистрирован: 24 май 2013, 15:48

Re: Давайте поставим точку

Сообщение Paul Siberdt 15 ноя 2017, 00:20

var question = "Пишете под десктопы?";
var pcDev = "Не парьтесь, делайте, как удобнее";
var mobileDev = "У меня и под мобилы покадрово долбили трейсы с ифами, это далеко не узкое горлышко в разработке";

return question ? pcDev : mobileDev;
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Давайте поставим точку

Сообщение borr 22 ноя 2017, 17:29

На мобильных устройствах OnMouse работает как-то так. См последнее сообщение :)
http://unity3d.ru/distribution/viewtopic.php?f=20&t=19049
borr
UNIт
 
Сообщения: 112
Зарегистрирован: 01 мар 2013, 09:15


Вернуться в Общие вопросы

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

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