gpt4 book ai didi

android - 无法让多点触控在 Unity3D 中工作

转载 作者:行者123 更新时间:2023-11-30 01:28:09 34 4
gpt4 key购买 nike

在寻找解决方案后,我仍然无法弄清楚为什么我的 unity 多点触控脚本无法正常工作。这是我的代码。在你问之前:所有变量都存在。

    void Update()
{
if (Input.touchCount > 0)
{
for (i = 0; i < Input.touchCount; i++)
{
if (Input.GetTouch(i).phase != TouchPhase.Ended)
{
hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
if (hit.collider != null && hit.transform.gameObject.tag == "Links")
{
cannon.GetComponent<Rigidbody2D>().MovePosition(cannon.GetComponent<Rigidbody2D>().position + new Vector2(-0.1f, 0) * Time.deltaTime * moveSpeed);
}
else if (hit.collider != null && hit.transform.gameObject.tag == "Rechts")
{
cannon.GetComponent<Rigidbody2D>().MovePosition(cannon.GetComponent<Rigidbody2D>().position + new Vector2(0.1f, 0) * Time.deltaTime * moveSpeed);
}
}



if (Input.GetTouch(i).phase == TouchPhase.Began)
{
hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
if (hit.collider != null && hit.transform.gameObject.tag == "Fire")
{
clone = Instantiate(projectile, cannon.transform.position + new Vector3(0, 1.3f, 0), transform.rotation) as Rigidbody2D;
clone.velocity = new Vector2(0, speed);
}
}
}
}
}

它一次只注册一个输入。是的,我的手机确实支持多点触控。我将不胜感激任何帮助。

最佳答案

你的问题很简单!

如果你应该有一个“i”,你有一个“0”。仅此而已。

你正在循环遍历 i ...

    for (i = 0; i < Input.touchCount; i++)

有时你会正确地引用

     GetTouch(i)

但在其他时候你错误地引用了

    GetTouch(0)

幸运的是,仅此而已!

不要忘记,您将来可以通过随时记录日志轻松解决此类问题(使用 Debug.Log,或者在屏幕上显示一个 Text 并在那里写下您的开发信息,dev.text = "blah" )

关于android - 无法让多点触控在 Unity3D 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118943/

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