Unity在触摸屏时启动游戏

时间:2015-12-23 18:03:40

标签: unity3d

我做了一个移动2D游戏,你需要点击屏幕开始移动球,但出了点问题。 这是我的代码:

getRowData

当我点击屏幕时,球仍然固定。

3 个答案:

答案 0 :(得分:1)

您的代码无法正常工作,因为您正在检查Start方法中的输入计数。创建场景时调用Start方法。之后它不会检查你的if语句。把它写成这样的Update方法。

=AND(A2:A=indirect("JOBS!A2:A"),  A2:A<>"")

答案 1 :(得分:0)

如上所述,您使用了Start方法上的代码。如果你想用触摸来移动球只有一次,也许可以使用bool。声明:

    public class movingBall : MonoBehaviour {
        bool gameStart;

    void Start(){
        gameStart=false;
    }

    void Update() 
    {   
        if (Input.touchCount >=1)
        {
           if (gameStart){
               //game already started, do stuff with touch action in game
           }else{
              //game not started yet, move the ball once
              gameStart=true;
              GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);
           }

       }
    }
}

对于游戏结束,请记住再次将其设置为false。

如果您只使用触摸输入开始,您可以这样做:

public class movingBall : MonoBehaviour {
      bool gameStart;

    void Start(){
            gameStart=false;
        }

    void Update() 
    {   

           if (!gameStart){
               if (Input.touchCount >=1) {
             gameStart=true;
             GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);
              }
           }
    }
}

答案 2 :(得分:0)

修改ゴスエンヘンリ的回答。

public class movingBall : MonoBehaviour {
    bool _gameStarted = false; // In the class but outside any function

    void Update()
    {
        if (!_gameStarted ){
            if (Input.GetMouseButtonDown(0)){ // It will work on mobile too.
                _gameStarted = true;
                GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);
            }
        }
    }
}