[英]How can I transform mouse Input into Touch Input in Unity?
I have this lines of code that work with mouse input: when mouse is pressed and moved up, the game object rotate, and when moved down, rotate backwards.我有这行代码可以处理鼠标输入:当鼠标被按下并向上移动时,游戏 object 旋转,向下移动时,向后旋转。 I want to do the same but with my finger touch for an AR app.
我也想做同样的事情,但用手指触摸 AR 应用程序。 Please someone help me!!!
请有人帮助我!!!
case "BOTAO GIRO (1)":案例“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;
In API eg Touch.phase
where you can find a complete implementation example.在 API 例如
Touch.phase
中,您可以找到完整的实现示例。
For you it would look somewhat like eg对你来说,它看起来有点像例如
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);
}
Typed on smartphone but I hope the idea gets clear在智能手机上打字,但我希望这个想法很清楚
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.