C# 如何在移动设备上实现Unity3d中的多点触摸?
我使用C# 如何在移动设备上实现Unity3d中的多点触摸?,c#,android,ios,mobile,unity3d,C#,Android,Ios,Mobile,Unity3d,我使用OnMouseDown()来处理按下操作,但不可能实现多点触控 该程序包含的对象在轻按后增加,然后减少。只要轻轻一碰,一切都很好。但是,当您试图同时单击多个对象时,它不起作用 我正试图解决这个问题,但它不起作用,物体不能缩放,多点触摸也不起作用 代码: 使用UnityEngine; 使用系统集合; 公共类OnTouch:单一行为{ 公共音频片段crash1; 公共录音带关闭; 公共音频剪辑打开; 公共图书馆; 公共图书馆c1; 公共图书馆c2; void OnMouseDown(){ 如果
OnMouseDown()
来处理按下操作,但不可能实现多点触控
该程序包含的对象在轻按后增加,然后减少。只要轻轻一碰,一切都很好。但是,当您试图同时单击多个对象时,它不起作用
我正试图解决这个问题,但它不起作用,物体不能缩放,多点触摸也不起作用
代码:
使用UnityEngine;
使用系统集合;
公共类OnTouch:单一行为{
公共音频片段crash1;
公共录音带关闭;
公共音频剪辑打开;
公共图书馆;
公共图书馆c1;
公共图书馆c2;
void OnMouseDown(){
如果(this.name==“clash”){
GetComponent().PlayOneShot(打开);
c=正确;
}
如果(this.name==“碰撞1”){
GetComponent().PlayOneShot(已关闭);
c1=真;
}
如果(this.name==“clash 2”){
GetComponent().PlayOneShot(crash1);
c2=真;
}
transform.localScale+=新向量3(0.05f,0.05f,0);
}
无效更新(){
如果(c){transform.localScale=Vector3.Lerp(this.transform.localScale,new Vector3(0.2f,0.2f,0),Time.deltaTime*10f);}
如果(c1){transform.localScale=Vector3.Lerp(this.transform.localScale,new Vector3(0.2f,0.2f,0),Time.deltaTime*10f);}
如果(c2){transform.localScale=Vector3.Lerp(this.transform.localScale,new Vector3(0.25f,0.25f,0),Time.deltaTime*10f);}
}
}
您真的不应该在触摸设备上使用鼠标事件。Unity为您提供了将第一次触摸映射到鼠标事件的便利,但仅此而已
Unity对触摸设备的支持:为了在您的解决方案中支持多种平台(PC、平板电脑、手机等),您应该研究:
Input.GetTouch代码示例
public class TouchTest : MonoBehaviour
{
void Update ()
{
Touch myTouch = Input.GetTouch(0);
Touch[] myTouches = Input.touches;
for(int i = 0; i < Input.touchCount; i++)
{
//Do something with the touches
}
}
}
公共类触控测试:单行为
{
无效更新()
{
Touch myTouch=Input.GetTouch(0);
Touch[]mytouchs=Input.touchs;
对于(int i=0;i
public class TouchTest : MonoBehaviour
{
void Update ()
{
Touch myTouch = Input.GetTouch(0);
Touch[] myTouches = Input.touches;
for(int i = 0; i < Input.touchCount; i++)
{
//Do something with the touches
}
}
}