void FixedUpdate() { if (simulate) { //gravity velocity.y = velocity.y - g * Time.fixedDeltaTime; // moving of the ball float x = transform.position.x + velocity.x * Time.fixedDeltaTime; float y = transform.position.y + velocity.y * Time.fixedDeltaTime; transform.position = new Vector3(x, y, 0); // Below line is in case someone wants to test the boundaries of the throw if (transform.position.y < -10 || Mathf.Abs(transform.position.x) > 50 || transform.position.y > 100) { if (controller != null) { controller.BallDestroyed(this, 0); } else { GameControllerSP gosp = FindObjectOfType <GameControllerSP> (); Destroy(gameObject); gosp.Result(false); } } } }
void OnCollisionEnter2D(Collision2D collision) { simulate = false; //1 = enemy | 0 = ground/obstacle/other ball | -1 = self int hitEvaluator = 0; if (collision.collider.gameObject.tag.Equals("Player")) { Player hitTarget = collision.collider.gameObject.GetComponent <Player>(); if (int.Parse(hitTarget.playerNumber.text) == thrower) { hitEvaluator = -1; } else { hitEvaluator = 1; } } if (collision.collider.gameObject.tag.Equals("Target")) { GameControllerSP gosp = FindObjectOfType <GameControllerSP> (); Destroy(gameObject); gosp.Result(true); return; } if (controller != null) { controller.BallDestroyed(this, hitEvaluator); } else { GameControllerSP gosp = FindObjectOfType <GameControllerSP> (); Destroy(gameObject); gosp.Result(false); } }