Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在移动设备上实现Unity3d中的多点触摸?_C#_Android_Ios_Mobile_Unity3d - Fatal编程技术网

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
        }
    }
}