public void OnCollisionEnter(UnityEngine.Collision collision)
    {
        //Collision parent and collision object name
        GameObject parent   = collision.gameObject.transform.root.GetChild(1).gameObject;
        string     partName = collision.gameObject.name;

        //Impact force
        float impact = collision.relativeVelocity.magnitude;

        //If not landing on legs, kill rocket
        if (collision.gameObject.tag != "Leg")
        {
            //Visual explosionforce
            collision.gameObject.GetComponent <Rigidbody>().AddExplosionForce(30f * impact, collision.gameObject.transform.position, 30f);

            //Add fitness penalty on collion
            parent.GetComponent <RocketController>().AddPenalty(impact);

            //Deactivate rocket
            generationManager.Deactivate(parent);
            parent.GetComponent <RocketController>().Deactivate();
        }

        //If hard impact, break rocket
        if (partName == "RocketPrefab(Clone)" && impact > 20)
        {
            Destroy(collision.gameObject.GetComponent <FixedJoint>());
            Destroy(collision.gameObject.GetComponent <MeshRenderer>());
        }
    }
    void Update()
    {
        //Rocket out of bounds
        if (transform.position.magnitude > 80)
        {
            generationManager.Deactivate(transform.root.GetChild(1).gameObject);
            AddPenalty(100f);
        }

        if (initilized)
        {
            FlyRocket();
        }
    }