不希望TouchPhase.Ended执行

时间:2014-10-29 16:59:26

标签: android ios unity3d

我是Unity的新手,但还是...... :) 这里我需要的是什么: 当我点击屏幕(按下并释放)时,我的控制台应该说"做材料" 当我移动(触摸,移动,释放)时,我的控制台应该只说很多" Do Rotation"
我有什么: 当我点击屏幕(按下并释放)时,我的控制台会说"做材料" 当我移动(触摸,移动,释放)时,我的控制台会说很多" Do Rotation"和"做材料"当我释放我的手指。 请帮我弄清楚在TouchPhase.Moved之后如何停止执行TouchPhase.Ended

if (Input.touchCount == 1)
            {
                t = Input.GetTouch (0);
                if (t.phase == TouchPhase.Moved )
                Debug.Log ("Do Rotation");

                if (t.phase == TouchPhase.Ended && t.tapCount == 1 ) 
                Debug.Log ("Do Material");
            }

提前感谢您的快速回复

1 个答案:

答案 0 :(得分:0)

如果你使用bool,你可以得到你想要的结果,我很确定我还没有尝试过,比如

public bool touched = false;
if (Input.touchCount == 1)
            {
                t = Input.GetTouch (0);
                if(t.phase == TouchPhase.Began){
                touched = true;
                }
                if (t.phase == TouchPhase.Moved ){
                Debug.Log ("Do Rotation");
                touched = false;
                }

                if (t.phase == TouchPhase.Ended && t.tapCount == 1 && touched) 
                Debug.Log ("Do Material");
            }