OnMouseUp в iOS [РЕШЕНО, ЯП C#]

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

OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iMoonlightAndre 23 ноя 2011, 00:57

Сейчас делаю тестовый проект в [unity 3D] . Суть:
Есть четыре куб(Cube), есть две сцены, требуется сделать переход с первой сцены на вторую. К кубам прикреплены скрипты(их взял с этого форума):

Первый скрипт( (js) ):
Синтаксис:
Используется javascript
function Update()
{
        if(Input.touchCount > 360)
        {
                var touch: Touch = Input.touches[0];
                if(touch.phase == TouchPhase.Began && guiTexture.HitTest(touch.position))
                {
                      Application.LoadLevel(1);
                     
                }
        }
}
 


-----

Второй скрипт( (js) ):
Синтаксис:
Используется javascript
var isTwoBtn = false;

function OnMouseUp()
{
        if(isTwoBtn)
        {
                Application.LoadLevel(1);
        }
}
 


-----

Третий скрипт( (js) ):
Синтаксис:
Используется javascript
var isTwoBtn = false;

function OnTouchDown()
{
        if(isTwoBtn)
        {
                Application.LoadLevel(1);
        }
}
 


-----

Ни один из скриптов не помогает. Сидел весь вечер [curved_hands], переделывал заново, перекомпилировал и т.д.. Может ли кто помочь решить данную проблему?(могу выложить сам проект)


P.S.: Как сделать(в iOS приложении), чтобы при клике на куб изменялся его цвет. Вариант, который я использовал для PC\Mac на iOS выдает ошибку.
Последний раз редактировалось iMoonlightAndre 23 ноя 2011, 12:31, всего редактировалось 1 раз.
iMoonlightAndre
UNец
 
Сообщения: 4
Зарегистрирован: 23 ноя 2011, 00:43

Re: OnMouseUp в iOS

Сообщение DbIMok 23 ноя 2011, 01:17

если писать функции наугад, не читая... ничего хорошего не получится. например:
iMoonlightAndre писал(а):if(Input.touchCount > 360)

а если (вдруг!) количество касаний меньше 360?
iMoonlightAndre писал(а):OnMouseUp()

IMPORTANT: This function has no effect on iPhone.

вы точно туда мышку подключали?
iMoonlightAndre писал(а):function OnTouchDown()

эта функция не сработает, потому что движок про нее не знает

попробуйте начать с прохождения туториала
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: OnMouseUp в iOS

Сообщение iMoonlightAndre 23 ноя 2011, 01:50

Я вначале пробовал "0", но потом решил попробовать 360, в любом случае "0" тоже не работает.
iMoonlightAndre
UNец
 
Сообщения: 4
Зарегистрирован: 23 ноя 2011, 00:43

Re: OnMouseUp в iOS

Сообщение iMoonlightAndre 23 ноя 2011, 01:52

P.S.: А если скомпилить приложение под Android и подключить к планшету с мышкой OnMouseUp будет действовать?
iMoonlightAndre
UNец
 
Сообщения: 4
Зарегистрирован: 23 ноя 2011, 00:43

Re: OnMouseUp в iOS

Сообщение DbIMok 23 ноя 2011, 02:38

по поводу Input в Android. с 0 там в следующее условие упиралось. насчет мышки не знаю, не пробовал.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: OnMouseUp в iOS

Сообщение pestantium 23 ноя 2011, 11:10

Синтаксис:
Используется csharp
public GameObject buttonPlay; //Ссылка на 3д куб в сцене на которой висит колайдер
void Update()
{
if (Input.GetMouseButtonUp(0))
{
 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 RaycastHit hit;
 if (Physics.Raycast(ray, out hit))
  {
  linkTools.input.Reset();
  if (hit.collider.gameObject == buttonPlay)
   Application.LoadLevel(1);
  }
}
}
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: OnMouseUp в iOS

Сообщение iMoonlightAndre 23 ноя 2011, 12:31

pestantium, спасибо, а я как раз только с мануалом по Penelope разобрался и понял, как сделать аналогичное на (js) . Но за скрипт спс большое.
iMoonlightAndre
UNец
 
Сообщения: 4
Зарегистрирован: 23 ноя 2011, 00:43

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iXerox 24 ноя 2011, 00:47

С C# не работает. У меня вопрос, кстати, по этому поводу. У меня скрипт:
Синтаксис:
Используется javascript

function Update()
{
  var count = Input.touchCount;
  for (var i: int = 0; i < count; i++)
  {
    var touch : Touch = Input.GetTouch(i);
       Тут действие, которое должно произойти

        }
}
 


Как сделать так, чтобы действие происходило при нажатии на 3D Text. Потом что, тот скрипт, что я описал выше реагирует на любое касание экрана. На PC я вводил переменную:

Синтаксис:
Используется javascript
var isBtn = false;
 


А дальше:
Синтаксис:
Используется javascript
function OnMouseUp()
{
        if(isBtn)
        {
        Тут действие, которое должно произойти
        }
}
 


Как сделать это в iOS\Android?
iXerox
UNец
 
Сообщения: 46
Зарегистрирован: 03 сен 2011, 18:41

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение pestantium 24 ноя 2011, 10:47

Вешай колайдер на 3д текст, используй скрипт что я приводил.
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iXerox 24 ноя 2011, 15:05

Я дал 3D Text'у имя buttonPlay. Присоединил в тексту коллайдер. Вот:
screen-capture-3.png


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

public GameObject buttonPlay; //3D Text назвал buttonPlay, но Unity3D выдает ошибку на этой строчке.

void Update()
{
if (Input.GetMouseButtonUp(0))
{
 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 RaycastHit hit;
 if (Physics.Raycast(ray, out hit))
  {
  linkTools.input.Reset();
  if (hit.collider.gameObject == buttonPlay)
                               
   Application.LoadLevel(1);
  }
}
}
 


Но скрипт выдает ошибку(скрин лога выше). В чем проблема?
У вас нет доступа для просмотра вложений в этом сообщении.
iXerox
UNец
 
Сообщения: 46
Зарегистрирован: 03 сен 2011, 18:41

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iXerox 24 ноя 2011, 16:17

У меня Unity 3.4.2f3
iXerox
UNец
 
Сообщения: 46
Зарегистрирован: 03 сен 2011, 18:41

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение seaman 24 ноя 2011, 18:06

Предъявленный скрипт не C#. В C# все может быть только в классе. У Вас вообще нет класса!
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iXerox 24 ноя 2011, 18:15

В плане?
Что ли на ввести:
Синтаксис:
Используется csharp
public class GameObject buttonPlay;
 

???

Я в точности копировал скрипт pestantium'а.
iXerox
UNец
 
Сообщения: 46
Зарегистрирован: 03 сен 2011, 18:41

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение iXerox 24 ноя 2011, 18:17

Я не знаком с C#'ом. Мне может кто-нибудь как правильно использовать этот скрипт или подсказать, как реализовать это на JS.
iXerox
UNец
 
Сообщения: 46
Зарегистрирован: 03 сен 2011, 18:41

Re: OnMouseUp в iOS [РЕШЕНО, ЯП C#]

Сообщение seaman 24 ноя 2011, 18:36

Ну видимо так.
Синтаксис:
Используется csharp
using UnityEngine;

public class MyClass
{
    public GameObject buttonPlay;

    void Update()
    {
        if (Input.GetMouseButtonUp(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                linkTools.input.Reset();
                if (hit.collider.gameObject == buttonPlay)            
                     Application.LoadLevel(1);
            }
       }
    }
 }
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

След.

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

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

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