首页 文章

在Unity中使用sprite作为按钮

提问于
浏览
1

我使用为Android开发的C#在Unity中制作游戏 . 我正在使用Unity Remote 4进行测试 . 我只是想知道精灵是否可以用作Unity中的按钮而不是Component - > UI - > Button中的按钮 . 我试过这个:

void Update () {
     if (Input.touchCount > 0) {
         Application.LoadLevel ("startScene");
     } }

哪个确实有效 . 该按钮用于从主菜单切换到选项菜单 . 理想情况下,我希望按钮位于选项菜单中的相同位置,以用于返回主菜单 . 问题在于,由于场景立即切换,场景一次又一次地在彼此之间切换,因为下一个场景也会获得触摸输入 . 如何延迟场景切换之间的时间,还是有更好的方法将精灵用作按钮?

3 回答

  • 1

    您可以使用光线投射来检测精灵上的触摸

    void Update()
     {
         if (Input.touchCount == 1)
         {
             Vector3 wp = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
             Vector2 touchPos = new Vector2(wp.x, wp.y);
             if (collider2D == Physics2D.OverlapPoint(touchPos))
             {
                 //your code
    
             }
         }
     }
    
  • 0

    您可以创建一个在场景中持久的菜单系统 . 请查看This Tutorial Video以获取指南

  • 0

    通常按钮在执行敲击后执行其功能 . 点击按钮即可按下并释放按钮 . 您正在做的是在按下时执行您的功能,这会导致您的按钮在您握住手指时连续触发 .

    伪代码:如果一个手指按下精灵如果同一个手指在精灵上释放按钮已被按下 .

相关问题