热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#–如何在移动设备上的Unity3d中实现多点触控?

我使用OnMouseDown()来处理按压,但是不可能实现多点触控.该程序包括在您点击然后减少时增加的对象.如果只有一次触摸,一切正常.但是,当您尝试同时单击多个对象时,它无法正常

我使用OnMouseDown()来处理按压,但是不可能实现多点触控.

该程序包括在您点击然后减少时增加的对象.如果只有一次触摸,一切正常.但是,当您尝试同时单击多个对象时,它无法正常工作.

我正在尝试解决问题,但它无法正常工作,对象无法扩展,多点触控不起作用.

码:

using UnityEngine;
using System.Collections;
public class OnTouch : MonoBehaviour {
public AudioClip crash1;
public AudioClip hat_closed;
public AudioClip hat_open;
public bool c;
public bool c1;
public bool c2;
void onm ouseDown(){
if (this.name == "clash") {
GetComponent().PlayOneShot(hat_open);
c=true;
}
if (this.name == "clash 1") {
GetComponent().PlayOneShot(hat_closed);
c1=true;
}
if (this.name == "clash 2") {
GetComponent ().PlayOneShot (crash1);
c2=true;
}
transform.localScale += new Vector3(0.05f, 0.05f, 0);
}
void Update(){
if (c) {transform.localScale = Vector3.Lerp (this.transform.localScale, new Vector3 (0.2f, 0.2f, 0), Time.deltaTime*10f);}
if (c1) {transform.localScale = Vector3.Lerp (this.transform.localScale, new Vector3 (0.2f, 0.2f, 0), Time.deltaTime*10f);}
if (c2) {transform.localScale = Vector3.Lerp (this.transform.localScale, new Vector3 (0.25f, 0.25f, 0), Time.deltaTime*10f);}
}
}

解决方法:

你真的不应该使用鼠标事件的触摸设备. Unity为您提供了将第一次触摸映射到鼠标事件的便利,但这就是全部.

Unity对Touch设备的支持:
Touch
Input.GetTouch
Official Video Tutorial

为了在您的解决方案中支持多个平台(PC,平板电脑,手机等),您应该考虑:
Platform Dependent Compilation

Input.GetTouch代码示例

public class TouchTest : MonoBehaviour
{
void Update ()
{
Touch myTouch = Input.GetTouch(0);
Touch[] myTouches = Input.touches;
for(int i = 0; i {
//Do something with the touches
}
}
}


推荐阅读
author-avatar
tanhuixi135_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有