示例#1
0
    void Update()
    {
        UpdateNow();

        float takeRad = 10f;

        Collider2D[] soldiersToTake = Physics2D.OverlapCircleAll(transform.position, takeRad, 1 << SM.SoldierLayer);
        foreach (Collider2D sold in soldiersToTake)
        {
            Transform soldier = sold.transform;
            int       index   = freeIndex;
            if (SM.GetArmy(soldier) == army && index != -1 && SM.IsPrivate(soldier.GetComponent <Soldier>()))
            {
                Private priv = SM.AsPrivate(soldier.GetComponent <Soldier>());
                if (!priv.officer && priv.eqSet == eqSet)
                {
                    Vector3 pos = formation[index];
                    priv.deltaV = pos;
                    priv.index  = index;
                    subs[index] = priv.transform.Find("Soldier").GetComponent <Soldier>();
                    priv.SetOfficer(this);
                    soldier.GetComponent <Soldier>().moral = soldier.GetComponent <Soldier>().moral > 50f ? soldier.GetComponent <Soldier>().moral : 50f;
                    soldier.GetComponent <Soldier>().DefendNow();
                    if (CM.Contains(this.transform.Find("Soldier").GetComponent <Soldier>()))
                    {
                        soldier.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_HL_" + army);
                    }
                    else
                    {
                        soldier.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_" + army);
                    }
                }
            }
        }
    }