void OnCollisionEnter(Collision _collision) { if (mIsMoving) { GameObject objectcollision = _collision.collider.gameObject; if (objectcollision.tag == "Wall" || objectcollision.tag == "SlingBall") { //If collision withj walls, destroy self gameobject if (objectcollision.tag == "SlingBall") { SlingBallScript scriptcollision = objectcollision.GetComponent <SlingBallScript> (); if (scriptcollision != null && !scriptcollision.getMoving()) { stopMovement(); if (scriptcollision.getColor() == mColor) { mTouchingGameObject.Add(objectcollision); if (mColor == scriptcollision.getColor()) { checkDestroy(); } } } } else { stopMovement(); } } else { if (objectcollision.tag == "WallLateral") { mVelocity.x *= -1; mRigidBody.velocity = mVelocity; Debug.Log("Pared Lateral"); } else { Debug.Log(objectcollision.tag); } } } }
public int getBallContact() { int i = 1; foreach (GameObject obj in mTouchingGameObject) { if (obj) { SlingBallScript scriptcollision = obj.GetComponent <SlingBallScript> (); if (scriptcollision) { i += (scriptcollision.getBallContact()); } } } return(i); }