Как подстроить касание пальцем на мышку?

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

Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 13:25

Сейчас перестраиваюсь на тач таким вот образом
Синтаксис:
Используется csharp
#if UNITY_EDITOR
void OnMouseDown(){ Ci.OnMouseDownCell(this); }
void OnMouseOver(){ Ci.OnMouseOverCell(this); }
#endif
    void Update(){
        #if UNITY_EDITOR
        #else
            if(Input.touchCount > 0){
                Touch touch = Input.GetTouch(0);
                switch(touch.phase){
                    case TouchPhase.Began: Ci.OnMouseDownCell(this); break;
                    case TouchPhase.Moved: Ci.OnMouseOverCell(this); break;
                    }
                }
        #endif

но все идет не совсем гладко, не так работает как нужно, для каждого теста нужно инсталлировать на телефон и проверять, нет ли какого-то способа так сказать превратить мышку в палец?
Чтобы не бегать и смотреть как оно на телефоне будет....

А данный код не работает на телефоне так же как и на пк...
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 18:10

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


Вот у меня на префабе есть скрипт который при касании передает другому скрипту свои данные
Синтаксис:
Используется csharp
void OnMouseDown(){ SomeClass.OnMouseDownTest(this); }
void OnMouseOver(){ SomeClass.OnMouseOverTest(this); }

мне их нужно переделать под тач, но если такой код разместить в префабе
Синтаксис:
Используется csharp
void Update(){
        #if UNITY_EDITOR
        #else
            if(Input.touchCount > 0){
                Touch touch = Input.GetTouch(0);
                switch(touch.phase){
                    case TouchPhase.Began: SomeClass.OnMouseDownTest(this);  break;
                    case TouchPhase.Moved: SomeClass.OnMouseOverTest(this);  break;
                    case TouchPhase.Ended: SomeClass.OnMouseOverTest(this);  break;
                    }
                }
        #endif

то от этого не будет смысла, как я понял тач работает на весь экран а не на какой-то выбранный объект, как мне заметить OnMouseDown() и OnMouseOver на тач или что-то подобное, но при этом чтобы они выполняли тоже самое?
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение Tolking 11 апр 2021, 18:37

OnMouseDown() работает и на тач, а как ты представляешь на тачскрине OnMouseOver? Типа когда пальцем над экраном держишь? Ты не многого хочешь от устройства?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 19:28

Tolking писал(а):OnMouseDown() работает и на тач, а как ты представляешь на тачскрине OnMouseOver? Типа когда пальцем над экраном держишь? Ты не многого хочешь от устройства?

короче, мне нужно избавиться от OnMouseDown() и OnMouseOver()
чтобы не вылазило это
Game scripts or other custom code contains OnMouse_ event handlers. Presence of such handlers might impact performance on handheld devices.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

мол вы используете методы которые предназначены для мыши и поэтому может работать не корректно или повлиять на производительность, и т.д.....
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение samana 11 апр 2021, 20:06

Tolking писал(а): а как ты представляешь на тачскрине OnMouseOver? Типа когда пальцем над экраном держишь? Ты не многого хочешь от устройства?

На тачскринах, метод OnMouseOver срабатывает когда смотришь на элемент. :D
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 20:09

samana писал(а):
Tolking писал(а): а как ты представляешь на тачскрине OnMouseOver? Типа когда пальцем над экраном держишь? Ты не многого хочешь от устройства?

На тачскринах, метод OnMouseOver срабатывает когда смотришь на элемент. :D

у меня он точнее работает когда по нему провожу, у меня так свайп работает, 1 элемент выбираю OnMouseDown веду пальцем и захожу на другой элемент, тут то и срабатывает OnMouseOver, и они меняются местами...

А вопрос то так и остался как их теперь заменить....
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение 1max1 11 апр 2021, 20:27

Рейкастами, как же еще.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 21:04

1max1 писал(а):Рейкастами, как же еще.

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


Синтаксис:
Используется csharp
public class Cell : MonoBehaviour,IPointerEnterHandler, IPointerExitHandler{

     public void OnPointerEnter(PointerEventData eventData)
     {
         Debug.Log("Test1111");
     }
 
     public void OnPointerExit(PointerEventData eventData)
     {
         Debug.Log("Test22222");
     }

они не работают, при том что у префаба есть Canvas (Environment), так же цеплял Graphic Raycaster (честно уже методом тыка), в общем не работают они...
причем префабы не UI элементы, это я так к слову....
Собственно тут и встала проблемка как над ними текст (типа +очки) выводить, Canvas (Environment) то есть...
В общем что-то я чую на ночь глядя пальцем в небо тыкаю, что точно делать, вообще без понятия...
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение 1max1 11 апр 2021, 21:25

Может оставишь все как есть? Еще пару лет поизучаешь юнити и вернешься к этому вопросу)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 21:37

1max1 писал(а):Может оставишь все как есть? Еще пару лет поизучаешь юнити и вернешься к этому вопросу)

Да сама игра то уже запущена в гугл плее, вот решил поэкспериментировать и поработать над некоторыми вещами, размер например уже сократил, предупреждений в гугл консоли было 11 теперь 1 (но она никак не пропадает хоть пустой проект загони, хз что оно такое), от TMPro избавился ( -5мб веса стало), в общем оптимизирую, да и разбираюсь за одно как что работает и как легко можно что-то изменить, а то пока делал некоторые вещи делались по принципу "работает - не трогай" :D
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как подстроить касание пальцем на мышку?

Сообщение Saltant 11 апр 2021, 21:46

Zimaell писал(а):
1max1 писал(а):Может оставишь все как есть? Еще пару лет поизучаешь юнити и вернешься к этому вопросу)

предупреждений в гугл консоли было 11 теперь 1

Нууу как же так! Это не дело что есть "ошибка"! Как тебе простил такое твой внутренней перфекционист?!
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Как подстроить касание пальцем на мышку?

Сообщение Zimaell 11 апр 2021, 21:57

Saltant писал(а):
Zimaell писал(а):
1max1 писал(а):Может оставишь все как есть? Еще пару лет поизучаешь юнити и вернешься к этому вопросу)

предупреждений в гугл консоли было 11 теперь 1

Нууу как же так! Это не дело что есть "ошибка"! Как тебе простил такое твой внутренней перфекционист?!

все стебётесь :D
увы но вот это говно
StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Ljava/lang/invoke/MethodHandles$Lookup;-><init>

не пропадает даже если пустой проект загнать, даже после полной чистки и переустановки юнити.... ~x(

Да и заметил если делать сборку на .Net Standard 2.0 то поддерживаемых устройств на треть больше чем если .Net 4.x, как-то так...

Ну практикуюсь я... :D
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45


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

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 28