Я работаю в игре для мобильных устройств, в которой я могу перемещать карту пальцем.Когда я нажимаю на некоторые объекты на экране, появляется текст в пользовательском интерфейсе с прокруткой с информацией, но когда я касаюсь экрана, чтобы выполнить прокрутку текста, карта, помещенная в фон, перемещается.Как я могу получить карту не двигается, когда я прокручиваю информационный текст?
Это скриншот:
Это код для перемещения карты фона:
if(dragToPan){
if(!mapping && ready){
if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved) {
if(Input.GetTouch(0).position.y > screenY/12){
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
//Check if any of the tile borders has been reached
CheckBorders();
//Translate the camera
cam.Translate(-touchDeltaPosition.x*dragSpeed*Time.deltaTime, -touchDeltaPosition.y*dragSpeed*Time.deltaTime, 0);
//Clamp the camera position to avoid displaying any off the map areas
ClampCam();
}
}
}
}
И вот как я включаю текст прокрутки:
public class SeleccionarTesoro_LIST : MonoBehaviour {
void Start()
{
GameObject[] hitObject = GameObject.FindGameObjectsWithTag("TESOROS");
}
public void SetHitObjectToActive(GameObject hitObject)
{
hitObject.transform.GetChild(0).GetChild(0).gameObject.SetActive (true);
hitObject.transform.GetChild(0).GetChild(2).gameObject.SetActive (true);
}
void Update() {
if (Input.GetMouseButtonDown (0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit)) {
SetHitObjectToActive (hit.collider.gameObject);
}
}
}
}
ОБНОВЛЕНИЕ 1: я добавил эти строки вПервый скрипт, и он работает в редакторе Unity, но не на устройствах Android и iOS.Как я могу решить это?
if (EventSystem.current.IsPointerOverGameObject() ||
EventSystem.current.currentSelectedGameObject != null) {
return;
}