我有这行代码可用于鼠标输入:当按下并向上移动鼠标时,游戏对象旋转,而向下移动时向后旋转。我想做同样的事情,但要用手指触摸一个AR应用程序。请有人帮我!!!
案例“ BOTAO GIRO(1)”:
if(botao.transform.rotation.eulerAngles.z < 100)
{
botao.transform.Rotate(Vector3.forward * speed);
}else { }
if(botao.transform.rotation.eulerAngles.z > 350)
{
botao.transform.Rotate(Vector3.back * speed);
}else { }
if (Input.GetMouseButton(0))
{
if (Input.GetAxis("Mouse Y") > 0)
{
if (botao.transform.rotation.eulerAngles.z > 100 && botao.transform.rotation.eulerAngles.z < 350)
{
Debug.Log(botao.transform.eulerAngles.z);
botao.transform.Rotate(Vector3.forward * speed);
}
}
else
{
if (Input.GetAxis("Mouse Y") < 0)
{
if (botao.transform.rotation.eulerAngles.z > 100 && botao.transform.rotation.eulerAngles.z < 350)
{
Debug.Log(botao.transform.rotation.eulerAngles.z);
botao.transform.Rotate(Vector3.back * speed);
}
}
}
}
else
{
if (Input.GetMouseButton(0) == false)
{
eixo.SetActive(false);
}
}
break;
答案 0 :(得分:0)
在API中,例如Touch.phase
,您可以在其中找到完整的实施示例。
对您来说,它看起来像是
private Vector2 firstTouchPosition;
...
case "BOTAO GIRO (1)":
if(botao.transform.rotation.eulerAngles.z < 100)
{
botao.transform.Rotate(Vector3.forward * speed);
}
if(botao.transform.rotation.eulerAngles.z > 350)
{
botao.transform.Rotate(Vector3.back * speed);
}
if (Input.touchCount > 0)
{
var touch = Input.GetTouch(0);
switch(touch.phase)
{
case TouchPhase.Began:
firstTouchPosition = touch.position;
break;
case TouchPhase.Moved:
var dif = touch.position - firstTouchPosition;
if (dif.y > 0)
{
if (botao.transform.rotation.eulerAngles.z > 100 && botao.transform.rotation.eulerAngles.z < 350)
{
Debug.Log(botao.transform.eulerAngles.z);
botao.transform.Rotate(Vector3.forward * speed);
}
else if (did.y < 0)
{
if (botao.transform.rotation.eulerAngles.z > 100 && botao.transform.rotation.eulerAngles.z < 350)
{
Debug.Log(botao.transform.rotation.eulerAngles.z);
botao.transform.Rotate(Vector3.back * speed);
}
}
}
break;
}
}
else
{
exio.SetActive(false);
}
在智能手机上输入文字,但我希望这个主意会清楚