остановить падение игрока в начале игры и использовать тап для запуска в unity2D

Я создаю игру для Android в Unity 5.3.5, когда нажимается осыпь, игрок перемещается вверх и должен продолжать нажимать, однако, когда игра начинается, игрок падает и выходит из игровой зоны! то, что я хочу сделать, это чтобы игрок оставался неподвижным, когда игра начинается, поэтому при нажатии на экран игра начинается! вот код..

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;
    }
}

}


person David Marsh    schedule 05.09.2017    source источник
comment
Добавьте логическое значение; isFirstTouch. Сделайте это ложным в начале. Проверьте это в обновлении. При выполнении прикосновения. Сделайте это правдой. И если это правда, то запустите свой код?   -  person Thalthanas    schedule 05.09.2017
comment
попробуете это, сделайте isFirstTouch ложным в методе запуска, который вы имеете в виду? затем оберните код обновления в другой оператор if?   -  person David Marsh    schedule 05.09.2017
comment
Да. Вы можете сделать новый оператор if с помощью bool, чтобы обернуть текущий блок if в update. Также вы используете физику. Вы должны изменить значение isKinematic, как это логическое значение, как предложил @ZayedUpal.   -  person Thalthanas    schedule 05.09.2017
comment
кажется, что игрок все еще падает, я сделал логическую переменную isFirstTouch, затем установил ее в false в методе запуска, также установил Circle.isKinematic = true; как упоминал @ZayedUpal, завернул код в обновлении в if statemenet, в котором говорится, что если isFirstTouch = true;   -  person David Marsh    schedule 05.09.2017
comment
Что происходит, когда вы устанавливаете isKinematic = true в редакторе перед запуском игры? Он все еще падает при запуске игры?   -  person Thalthanas    schedule 05.09.2017
comment
думаю, мы добираемся до цели, isKinematic = true в начале удерживает игрока на месте! при касании плеер вылетает на экран! просто случай выяснить метод обновления сейчас   -  person David Marsh    schedule 05.09.2017
comment
Давайте продолжим обсуждение в чате.   -  person Thalthanas    schedule 05.09.2017


Ответы (1)


Сначала сделайте circle.isKinematic = true;.
При первом нажатии сделайте circle.isKinematic = false;

person ZayedUpal    schedule 05.09.2017
comment
спасибо вам обоим и @EmreE за помощь! высоко ценится - person David Marsh; 05.09.2017