【问题标题】:Is there a way to cancel Touches on Awake of a Screen?有没有办法取消屏幕唤醒时的触摸?
【发布时间】:2014-12-23 17:03:29
【问题描述】:

我正在开发的游戏有问题。当用户在屏幕上拖动他的角色时,如果角色在拖动时死亡,我切换到“死亡”场景。问题是在新场景中有两个使用新 Unity UI 的按钮。按钮,如果玩家在场景加载时碰巧将手指放在其中一个按钮上并作为反应放手,他们最终会在他们甚至看到屏幕上的内容之前执行按钮。

我可以在唤醒、开始或启用上说取消所有触摸吗?强制用户将手指从屏幕上移开,然后在消化完屏幕后点击他们想要的按钮?

【问题讨论】:

    标签: c# unity3d touch


    【解决方案1】:

    恕我直言,更好的用户体验是在角色死亡时播放动画。动画甚至可以像缓慢模糊或调暗视图一样简单。然后玩家有一些时间做出反应,他或她很可能会结束正在进行的拖拽。

    如果您仍想禁用所有触摸,一种解决方法可能是添加布尔值,告知是否在新场景中开始了任何新触摸。不幸的是,我猜这不会很有效:

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
    
        private bool newTouchesInThisScene = false;
    
        void Update() {
            for(int i = 0; i < Input.touchCount; ++i) {
                if (Input.GetTouch(i).phase == TouchPhase.Began) {
                    newTouchesInThisScene = true;
                }
            }
        }
    }
    

    【讨论】:

    • 非常感谢。好想法。我同意你关于减速和调光的观点,只是在播放方式上它必须切换,因为它是一个关于你如何死去的动画场景。这很好用,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2015-01-28
    • 2011-03-28
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多