Input Touch Position в Android приложении - Форум Игроделов
Ср, 08 Май 2024, 10:42 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Input Touch Position в Android приложении
Input Touch Position в Android приложении
NapalmRainДата: Сб, 31 Окт 2015, 10:43 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Приветствую всех, дорогие друзья!
Продолжаю постигать разработку под андроид, сейчас столкнулся с работой в 2D пространстве.
Задача: разместить на сцене объект и потом таскать его, .не отрывая палец.

Код реализации данного процесса:

Код
void Update () {
     if (Input.touchCount>0) {
            if (Input.touches[0].phase == TouchPhase.Began) {
                LampObject = Instantiate(LampPrefab) as GameObject;
                LampObject.name = "MainLamp";
                LC = LampObject.GetComponent<LampControl>();
                lampPivot = LC.LampUp;
                LampObject.transform.position = Input.touches[0].position;
                lampPivot.transform.position = Input.touches[0].position;
            }
            if (Input.touches[0].phase == TouchPhase.Moved) {
                lampPivot.transform.position = Input.touches[0].position;
            }
            if (Input.touches[0].phase == TouchPhase.Ended) {
                Destroy(LampObject);
            }
        }
    }


На видео ниже показано, что при нажатии объект создаётся, однако его позиция находится где-то вне точки касания, подозреваю, что за пределами экрана.
Понять это можно по поведению зверьков.

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



Прошу подсказки у знающих товарищей, что я делаю не так...

Добавлено (31 Окт 2015, 10:43)
---------------------------------------------
Да здравствует мыло душистое и гугл пушистый.
Решил проблему так:
Код
position = mainCamera.ScreenToWorldPoint(Input.touches[0].position);
                lampPivot.transform.position = new Vector3(position.x, position.y, -0.1f);

Правда искренне не понимаю, почему нужно указывать позицию в трёхмерном пространстве...


Сообщение отредактировал NapalmRain - Сб, 31 Окт 2015, 10:50
 
СообщениеПриветствую всех, дорогие друзья!
Продолжаю постигать разработку под андроид, сейчас столкнулся с работой в 2D пространстве.
Задача: разместить на сцене объект и потом таскать его, .не отрывая палец.

Код реализации данного процесса:

Код
void Update () {
     if (Input.touchCount>0) {
            if (Input.touches[0].phase == TouchPhase.Began) {
                LampObject = Instantiate(LampPrefab) as GameObject;
                LampObject.name = "MainLamp";
                LC = LampObject.GetComponent<LampControl>();
                lampPivot = LC.LampUp;
                LampObject.transform.position = Input.touches[0].position;
                lampPivot.transform.position = Input.touches[0].position;
            }
            if (Input.touches[0].phase == TouchPhase.Moved) {
                lampPivot.transform.position = Input.touches[0].position;
            }
            if (Input.touches[0].phase == TouchPhase.Ended) {
                Destroy(LampObject);
            }
        }
    }


На видео ниже показано, что при нажатии объект создаётся, однако его позиция находится где-то вне точки касания, подозреваю, что за пределами экрана.
Понять это можно по поведению зверьков.

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



Прошу подсказки у знающих товарищей, что я делаю не так...

Добавлено (31 Окт 2015, 10:43)
---------------------------------------------
Да здравствует мыло душистое и гугл пушистый.
Решил проблему так:
Код
position = mainCamera.ScreenToWorldPoint(Input.touches[0].position);
                lampPivot.transform.position = new Vector3(position.x, position.y, -0.1f);

Правда искренне не понимаю, почему нужно указывать позицию в трёхмерном пространстве...

Автор - NapalmRain
Дата добавления - 31 Окт 2015 в 10:43
AswoДата: Сб, 31 Окт 2015, 13:19 | Сообщение # 2
КЗОИ
 
Сообщений: 1031
Награды: 18
Репутация: 430
Статус: Offline
NapalmRain, задание порядка отрисовки слоев.

end.
 
СообщениеNapalmRain, задание порядка отрисовки слоев.

Автор - Aswo
Дата добавления - 31 Окт 2015 в 13:19
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Input Touch Position в Android приложении
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024