本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术,本文讲Unity 2D动画如何检测tap。
问题:
user3386461
我的场景中有着2D动画。当使用OnMouseDown函数检测轻击(tap)或者单击动画时,没有效果,但是使用下面的代码就起作用了:
1
Input.GetMouseButtonDown(0)
虽然起作用,但是它检测的是整个窗口的tap,如果输出到onject名字,例如
1
Debug.log(this.name);
它输出动画精灵的名字。我想要只检测动画精灵的tap,请帮帮我。
答案:
Esa
你需要使用 Raycasting 来检测它。 从输入位置投放一个2D射线下来,检测它是否碰撞到了什么东西。 相关信息.
123456789
if (Input.GetMouseButtonDown(0)){ var hit : RaycastHit2D = Physics2D.Raycast(cam.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); if(hit != null) { Debug.Log("object clicked: "+hit.collider.tag); }}
原文链接:how to detect tap on a 2d animation on unity3d
文章选自StackOverFlow社区,鉴于其内容对于开发者有所帮助,现将文章翻译于此,供大家参考及学习。9Tech将每日持续更新,读者可点击StackOverflow(简称:SOF)精选问答汇总,查看全部译文内容。同时,我们也招募志同道合的技术朋友共同翻译,造福大家!
建议使用电驴(eMule)下载分享的资源。
说明:本教程来源互联网或网友分享或出版商宣传分享,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
|