触摸我的Android设备上无法在Unity上运行 [英] Touch not working on Unity on my Android device

查看:134
本文介绍了触摸我的Android设备上无法在Unity上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Unity remote 5,并且试图创建一个简单的图像库,如果您按屏幕右侧的按钮,它将向前移动;如果您按屏幕左侧的按钮,它将移动bakcwards ...

I am using Unity remote 5 and i am trying to make a simple image gallery, if you press on the right of the screen it moves forward and if you press on the left it moves bakcwards...

问题在于,即使使用"Debug.Log(Input.touchCount);"也无法注册任何触摸.没有任何输入,我也不知道哪里出了问题.

The problem is that not a single touch is being registered, even using "Debug.Log(Input.touchCount);" gives me no input whatsoever and i dont know what is wrong.

这是代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Diapositiva{

public string nombre;
public string descripcion;
public Sprite imagen;

public Diapositiva(string _nombre,string _descripcion, string _imagen){

    nombre = _nombre;
    descripcion = _descripcion;
    imagen = Resources.Load<Sprite>(_imagen);

}


}

public class Controlador : MonoBehaviour {

public Text nombre;
public Text descripcion;
public Image dibujo;
public int indice = 0;

public List<Diapositiva> Diapositivas = new List<Diapositiva>();

public void LoadDiapositivas(){
    nombre.text= Diapositivas[indice].nombre;
    descripcion.text= Diapositivas[indice].descripcion;
    dibujo.sprite = Diapositivas[indice].imagen;
}

void Left()
{

    if (indice <= 0) indice = Diapositivas.Count - 1;

    else indice--;
    LoadDiapositivas();

}

void Right()
{

    if (indice >= Diapositivas.Count - 1) indice = 0;

    else indice++;
    LoadDiapositivas();

}

// Use this for initialization
void Start () {

    Diapositivas.Add(new Diapositiva("Darinka", "Mi amorcito", "Sprites/Darinka"));
    Diapositivas.Add(new Diapositiva("Hitler", "Heroe de Alemania", "Sprites/Hitler"));
    Diapositivas.Add(new Diapositiva("Nikola Tesla", "Científico mas inteligente del mundo", "Sprites/Tesla"));
    Diapositivas.Add(new Diapositiva("Guts", "Personaje principal de Berserk", "Sprites/Guts"));

    LoadDiapositivas();
    Debug.Log(Input.touchCount);

}

// Update is called once per frame
void Update () {

    Debug.Log(Input.touchCount);

    if (Application.platform == RuntimePlatform.Android) {

        if(Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            float middleScreen = Screen.width / 2;

            if(touch.position.x < middleScreen && touch.phase == TouchPhase.Began)
            {


                Left();

            }

            else if (touch.position.x > middleScreen && touch.phase == TouchPhase.Began)
            {

                Right();
            }
        }

    }



}

}

推荐答案

使用Unity remote 5并不意味着您正在使用移动设备. 只是第二个触摸屏. 所有条件都将与您的桌面相同. 甚至屏幕分辨率也与您当前的游戏视图"窗口相同. 因此,RuntimePlatform的值应为Windows/OSX.

Using Unity remote 5 dosen't means you are using mobile device. It just a second screen with touch . All the conditions would be the same as your desktop. Even the screen resolution is the same as your current Game view window . So RuntimePlatform value should be Windows/OSX.

这篇关于触摸我的Android设备上无法在Unity上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆