Exemple #1
0
    void GetOn(Collision2D vehicle)
    {
        //Driver Spot
        Transform chariotTransform = vehicle.gameObject.GetComponent(typeof(Transform)) as Transform;
        string    vehicleType      = "Chariot";
        string    spotType1        = "Driver";
        string    spotType2        = "Archer";
        string    spotType3        = "Passenger1";

        if (aiFight.CompareTag("Ally") & chariotTransform.CompareTag("Chariot") ||
            transform.CompareTag("Ally") & chariotTransform.CompareTag("FriendlyChariot"))
        {
            if (chariotTransform.GetComponent <Vehicle>().category != 1 | chariotTransform.GetComponent <Vehicle>().moveSpeed < chariotTransform.GetComponent <Vehicle>().maxSpeed / 5)
            {
                for (int n = 0; n < chariotTransform.childCount; n++)
                {
                    if (chariotTransform.GetChild(n).name == spotType2 | chariotTransform.GetChild(n).name == spotType1 | chariotTransform.GetChild(n).name == spotType3 &&
                        chariotTransform.GetChild(n).childCount == 0)
                    {
                        rb.GetComponent <Transform>().SetParent(chariotTransform.GetChild(n));
                        onSpot = true;
                        spot   = chariotTransform.GetChild(n);
                    }
                }
            }
        }
        else if (aiFight.CompareTag("Enemy") & chariotTransform.CompareTag("Chariot") ||
                 transform.CompareTag("Enemy") & chariotTransform.CompareTag("EnemyChariot"))
        {
            if (chariotTransform.GetComponent <Vehicle>().category != 1 | chariotTransform.GetComponent <Vehicle>().moveSpeed < chariotTransform.GetComponent <Vehicle>().maxSpeed / 5)
            {
                for (int n = 0; n < chariotTransform.childCount; n++)
                {
                    if (chariotTransform.GetChild(n).name == spotType2 | chariotTransform.GetChild(n).name == spotType1 | chariotTransform.GetChild(n).name == spotType3 &&
                        chariotTransform.GetChild(n).childCount == 0)
                    {
                        rb.GetComponent <Transform>().SetParent(chariotTransform.GetChild(n));
                        onSpot = true;
                        spot   = chariotTransform.GetChild(n);
                    }
                }
            }
        }
        if (onSpot)
        {
            GetControl(chariotTransform);
            rb.GetComponent <Transform>().position = spot.position;
            rbOriginalLayer  = rb.gameObject.layer;
            originalLayer    = gameObject.layer;
            rb.isKinematic   = true;
            gameObject.layer = LayerMask.NameToLayer("NoInteract");
            if (rb.transform.CompareTag("Enemy"))
            {
                rb.gameObject.layer = LayerMask.NameToLayer("EnemyPassenger");
            }
            else
            {
                rb.gameObject.layer = LayerMask.NameToLayer("Passenger");
            }
        }
    }