2017-09-05 2 views
0

私はユニオン5.3.5でアンドロイド用のゲームを構築していますが、スクリーがタップされたときにプレイヤーが上に移動してタップし続ける必要がありますプレイヤーは倒れて遊び場から外れます!私は何をしたいのですか?ゲーム開始時にプレイヤーを静止させて、画面がタップされるとゲームが始まります。ここでのコードは..ですゲームの開始時にプレイヤーを止めてタップを使用してユニティ2Dで開始する

public class Player : MonoBehaviour { 

public string currentColor; 

public float jumpForce = 10f; 

public Rigidbody2D circle; 
public SpriteRenderer sr; 

public Color blue; 
public Color yellow; 
public Color pink; 
public Color purple; 

public static int score = 0; 
public Text scoreText; 

public GameObject obsticle; 
public GameObject colorChanger; 


void Start() { 

    setRandomColor(); 

} 

// Update is called once per frame 
void Update() { 

     if (Input.GetButtonDown ("Jump") || Input.GetMouseButtonDown (0)) 

     { 
      circle.velocity = Vector2.up * jumpForce; 
     } 

    scoreText.text = score.ToString(); 
} 

private void OnTriggerEnter2D(Collider2D collision) 
{ 
    if (collision.tag == "Scored") 
    { 
     score++; 
     Destroy (collision.gameObject); 
     Instantiate (obsticle, new Vector2(transform.position.x,transform.position.y + 7f), transform.rotation); 
     return; 
    } 

    if (collision.tag == "ColorChanger") 
    { 
     setRandomColor(); 
     Destroy (collision.gameObject); 
     Instantiate(colorChanger, new Vector2(transform.position.x,transform.position.y + 7f), transform.rotation); 
     return; 
    } 

    if (collision.tag != currentColor) { 
     Debug.Log ("You Died"); 
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); 
     score = 0; 
    } 

    if (collision.tag == "Floor") 
    { 
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); 
    } 
} 

void setRandomColor() 
{ 
    int rand = Random.Range (0, 4); 

    switch (rand) 
    { 
    case 0: 
     currentColor = "Blue"; 
     sr.color = blue; 
     break; 

    case 1: 
     currentColor = "Yellow"; 
     sr.color = yellow; 
     break; 

    case 2: 
     currentColor = "Pink"; 
     sr.color = pink; 
     break; 

    case 3: 
     currentColor = "Purple"; 
     sr.color = purple; 
     break; 
    } 
} 

}

+1

boolを追加します。 'isFirstTouch'です。それを最初に偽にする。アップデート時に確認してください。タッチが行われたとき。それを真実にしてください。そしてそれが本当であればあなたのコードを実行しますか? – Thalthanas

+0

これを試してみてください、あなたは意味するstartメソッドでisFirstTouchをfalseにしますか?別のif文でコードを更新にラップしますか? –

+1

はい。 boolを使って新しいif文を作成し、現在のifブロックを更新することができます。また、物理学を使っています。 @ ZayedUpalが提案するように、このboolのように 'isKinematic'値を変更する必要があります。 – Thalthanas

答えて

1

最初にcircle.isKinematic = true;してください。
初めてタップするとcircle.isKinematic = false;

+0

あなたと@EmreEの両方に感謝します!非常に高く評価 –

関連する問題