- Home /
Ending game on score count
I bought a endless fall game in asset store and am having trouble adding the function to end the game on score count. using UnityEngine; using System.Collections; public class PlayerControl : MonoBehaviour { private float i; [HideInInspector] public bool facingRight = true; // For determining which way the player is currently facing. [HideInInspector] public bool jump = false; // Condition for whether the player should jump. public GameObject BoxGUI; public GameObject PauseButton; public float moveForce = 365f; // Amount of force added to move the player left and right. public float maxSpeed = 5f; // The fastest the player can travel in the x axis. public float jumpForce = 1000f; // Amount of force added when the player jumps. public AudioClip[] taunts; // Array of clips for when the player taunts. public float tauntProbability = 50f; // Chance of a taunt happening. public float tauntDelay = 1f; // Delay for when the taunt should happen. private int tauntIndex; // The index of the taunts array indicating the most recent taunt. private Transform groundCheck; // A position marking where to check if the player is grounded. private bool grounded = false; // Whether or not the player is grounded. private Animator anim; // Reference to the player's animator component. private TrailRenderer trailrender; // [HideInInspector] public bool isDeal; // is deal ? public AudioClip[] audioClip; // public GameObject Protection; //Protection private bool isProtection; void Awake() { anim = GetComponent<Animator>(); trailrender = GetComponent<TrailRenderer> (); Protection.SetActive (false); trailrender.enabled = false; // } void Update() { // The player is grounded if a linecast to the groundcheck position hits anything on the ground layer. // grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground")); // If the jump button is pressed and the player is grounded then the player should jump. if(Input.GetButtonDown("Jump") && grounded) jump = true; } void FixedUpdate () { if(isDeal){ Destroy (gameObject.collider2D); Destroy (gameObject.rigidbody2D); Protection.SetActive (false); }else{ if(Application.isEditor || Application.isWebPlayer){ // Cache the horizontal input. float h = Input.GetAxis("Horizontal"); // print(h); // The Speed animator parameter is set to the absolute value of the horizontal input. anim.SetFloat("Speed", Mathf.Abs(h)); if(isProtection){ print ("isProtection"); if(h * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * h * moveForce*3); }else{ if(h * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * h * moveForce); } // If the player is changing direction (h has a different sign to velocity.x) or hasn't reached maxSpeed yet... // If the player's horizontal velocity is greater than the maxSpeed... if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed) // ... set the player's velocity to the maxSpeed in the x axis. rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y); // If the input is moving the player right and the player is facing left... if(h > 0 && !facingRight) // ... flip the player. Flip(); // Otherwise if the input is moving the player left and the player is facing right... else if(h < 0 && facingRight) // ... flip the player. Flip(); }else{ if(PlayerPrefs.GetString("isGravity") == "ture"){ //判断是重力感应还是手指触摸 anim.SetFloat("Speed", Mathf.Abs(Input.acceleration.x)); if(isProtection){ if(Input.acceleration.x * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * Input.acceleration.x * moveForce*3); }else{ if(Input.acceleration.x * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * Input.acceleration.x * moveForce); } // If the player's horizontal velocity is greater than the maxSpeed... if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed) // ... set the player's velocity to the maxSpeed in the x axis. rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y); // If the input is moving the player right and the player is facing left... if(Input.acceleration.x > 0 && !facingRight) // ... flip the player. Flip(); // Otherwise if the input is moving the player left and the player is facing right... else if(Input.acceleration.x < 0 && facingRight) // ... flip the player. Flip(); }else{ if (Input.touchCount > 0)//如果存在Touch事件 { if(Input.GetTouch(0).position.x > Screen.width/2){ if(i<0.99f){ i += 0.1f; } }else{ if(i>-0.99f){ i -= 0.1f; } } }else{ i = 0; } anim.SetFloat("Speed", Mathf.Abs(i)); // If the player is changing direction (h has a different sign to velocity.x) or hasn't reached maxSpeed yet... if(isProtection){ if(i * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * i * moveForce*3); }else{ if(i * rigidbody2D.velocity.x < maxSpeed) // ... add a force to the player. rigidbody2D.AddForce(Vector2.right * i * moveForce); } // If the player's horizontal velocity is greater than the maxSpeed... if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed) // ... set the player's velocity to the maxSpeed in the x axis. rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y); // If the input is moving the player right and the player is facing left... if(i > 0 && !facingRight) // ... flip the player. Flip(); // Otherwise if the input is moving the player left and the player is facing right... else if(i < 0 && facingRight) // ... flip the player. Flip(); } } } } void Flip () { // Switch the way the player is labelled as facing. facingRight = !facingRight; // Multiply the player's x local scale by -1. Vector3 theScale = transform.localScale; theScale.x *= -1; transform.localScale = theScale; } public IEnumerator Taunt() { // Check the random chance of taunting. float tauntChance = Random.Range(0f, 100f); if(tauntChance > tauntProbability) { // Wait for tauntDelay number of seconds. yield return new WaitForSeconds(tauntDelay); // If there is no clip currently playing. if(!audio.isPlaying) { // Choose a random, but different taunt. tauntIndex = TauntRandom(); // Play the new taunt. audio.clip = taunts[tauntIndex]; audio.Play(); } } } int TauntRandom() { // Choose a random index of the taunts array. int i = Random.Range(0, taunts.Length); // If it's the same as the previous taunt... if(i == tauntIndex) // ... try another random taunt. return TauntRandom(); else // Otherwise return this index. return i; } void OnCollisionEnter2D(Collision2D coll) { if (isDeal || isProtection) { } else { if(coll.collider.tag == "Enemy"){ anim.SetBool("Deal",true); // print("enemy dal"); isDeal = true; StartCoroutine("GameOver"); } } } void OnTriggerEnter2D(Collider2D collider) { if (isDeal) { } else { if(collider.name == "dealLine"){ anim.SetBool("Deal",true); //print("enemy dal"); isDeal = true; StartCoroutine("GameOver"); } if(collider.name == "Strong(Clone)"){ trailrender.enabled = true; // Destroy(collider.gameObject); StartCoroutine("trailrenderFalse"); } } } IEnumerator trailrenderFalse(){ isProtection = true; audio.clip = audioClip[1]; audio.Play(); Protection.SetActive (true); yield return new WaitForSeconds(10); isProtection = false; trailrender.enabled = false; audio.clip = audioClip[2]; audio.Play(); Protection.SetActive (false); } IEnumerator GameOver(){ audio.clip = audioClip[0]; audio.loop = false; audio.Play(); PauseButton.SetActive(false); yield return new WaitForSeconds(3); BoxGUI.SetActive(true); } }
Your answer
Follow this Question
Related Questions
End Game when hit's water 2 Answers
How to end multiplayer game. 0 Answers
Level Compete Spot 1 Answer
how to end game when anim stops? 1 Answer
how to stop my scene on collision.. 1 Answer