2015-10-01 2 views
1

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

Как я могу это сделать?

Я написал:

transform.position = Input.mousePosition; 

Но это не работает. Хорошо, он работает, но изображение больше не отображается на экране. Это где-то справа.

Я нашел это. Но это также не работает:

gameObject.GetComponent<RectTransform>().localPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y); 

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

ответ

4

Вы можете перемещать изображение интерфейса, поставив следующий в сценарии прикрепленным к нему:

void Update() { 

    for (var i = 0; i < Input.touchCount; i++) { 

     if (Input.GetTouch(i).phase == TouchPhase.Began) { 

      // assign new position to where finger was pressed 
      transform.position = new Vector3 (Input.GetTouch(i).position.x Input.GetTouch(i).position.y, transform.position.z); 

     } 

    }  

} 
1

использование gameobject.transform.position = camera.ScreenToWorldPoint(Input.mousePosition);

для рабочего стола. для мобильных устройств вы хотите заменить InputmousePostion на input.getTouch[i].position.

+0

Но теперь, объект теперь осталось снизу в точке (0,0). Также попробовал настольную версию. – Johnny