gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 05:52:11 25 4
gpt4 key购买 nike

我使用 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 OnMouseDown(){

if (this.name == "clash") {
GetComponent<AudioSource>().PlayOneShot(hat_open);
c=true;
}
if (this.name == "clash 1") {
GetComponent<AudioSource>().PlayOneShot(hat_closed);
c1=true;
}

if (this.name == "clash 2") {
GetComponent<AudioSource> ().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 < Input.touchCount; i++)
{
//Do something with the touches
}
}
}

关于c# - 如何在移动设备上的 Unity3d 中实现多点触控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com