2016-04-11 28 views
-2

Oyun oynayabildiğim için oyunda bir oyun geliştiriyorum ama oyun engele çarptığında oyun durmuyor. Durmak için bir yöntem kullandım oyun ama işe yaramadı.Engel vurulduğunda oyun nasıl durdurulur

Benim komut

Player.cs

public class Player : MonoBehaviour{ 

    // The force which is added when the player jumps 
    // This can be changed in the Inspector window 
    public Vector2 jumpForce = new Vector2(0, 300); 
    public Rigidbody2D myRigidbody2D; 

    void Start() 
    { 
     this.myRigidbody2D = this.GetComponent<Rigidbody2D>(); 

    } 

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

     if (Input.GetKeyUp("space")) 
     { 
      this.myRigidbody2D.velocity = Vector2.zero; 
      this.myRigidbody2D.AddForce(jumpForce); 
     } 
     Vector2 screenPosition = Camera.main.WorldToScreenPoint(transform.position); 
     if (screenPosition.y > Screen.height || screenPosition.y < 0) 
     { 
      Die(); 
     } 
    } 
    public void Die() 
    { 
     if (Input.GetKeyUp ("r")) 
      { 
       Application.LoadLevel (Application.loadedLevel); 
      } 
    } 
} 

Generate.cs

using UnityEngine; 
public class Generate : MonoBehaviour 
    { 
    public GameObject Pencils; 
    int score = 0; 
    public Player p; 

    void Start() 
    { 
     InvokeRepeating("CreateObstacle", 2.8f, 2.5f); 
    } 
    void OnGUI() 
    { 
     GUI.color = Color.black; 
     GUILayout.Label(" Score: " + score.ToString()); 
    } 
    public void CreateObstacle() 
    { 
     Instantiate(Pencils); 
     { 
      score++; 
     } 
     //Player player = Pencils.GetComponent<Player>(); 
     //player.Die(); 

    } 
    public void destroy() 
    { 
     p.Die(); 
     //Generate.SetTrigger ("Die"); 
     //Die = true; 
     //public bool isChecked = false; 
     //public void Check(Die) 
     p mygen=destroy.GetComponent<p>(); 
     if (mygen) 
     { 
      if (p.transform.tag == "Die") 
       mygen.isChecked = true; 
     }//else 
     // is Checked=false; 
     { 
      CancelInvoke("CreateObstacle"); 
     } 
} 
} 

cevap

0

oldukça listelerinde kodu 'durdurma oyunu sevdiği bulamıyor vardır. Eğer 'oyunu durdurup' demek, duraklatmak veya oyun içi zaman akışını durdurmak demekse, Time.timeScale gibi bir şey yapmalıdır. Eğer Unity fizik motorunu kullanıyorsanız

Eğer Time.timeScale = 0f; yapabileceği oyunu durdurun amacıyla ve sırayla ayrıca fizik değil ki (Time.fixedDeltaTime değiştirmek gerekebilir sadece

Time.timeScale = 1f; yapmak bunu devam ettirmek için Oyun duraklatıldığında koş.

+0

Ben Generator.cs –

+1

gelen Die() yöntemi yürütür olarak Generate.cs void destroy() yöntemini yürütmek istiyorum. Sorduğun şey değilse lütfen sorunuza açıklık getirin. (Sorunun kendisini düzenleyin, sadece yorum yazmayın) –

0

Sana (yok aramak isterseniz generate.cs itibaren) yöntemi Player.cs

den yürütür) (Die olarak Generate.cs itibaren) (boşluk yok çalıştırma yöntemi istiyorum player.cs dosyasında die() işlemi yapıldığında, sadece die() öğesinde destroy() öğesini çağırmanız gerekir.

Sen generate.cs bir örneği olur player.cs bir GameObject oluşturmanız gerekir:

public gameObject generateInstance; 

Daha sonra kalıp yönteminde olduğu generateInstance yöntemini imha aramanız gerekmektedir senin player.cs komut dosyası:

public void Die() 
{ 
    if (Input.GetKeyUp ("r")) 
     { 
      generateInstance.destroy(); 
      Application.LoadLevel (Application.loadedLevel); 
     } 
} 

Dont Birlik denetiminde player.cs komut sürükleyerek veya kod aracılığıyla doğrudan alarak yoluyla, Generate.cs olmak generateInstance ayarlamayı unutmayın.