예제 #1
0
    private static void lDoWhenClick()
    {
        Transform s       = GetObjectUnderMouse(SM.SoldierLayer);
        Soldier   soldier = s ? s.GetComponent <Soldier>() : null;
        Soldier   officer = soldier ? SM.GetOfficer(soldier) : null;

        if (officer && (officer.army == yourArmy))
        {
            if (!(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)))
            {
                ClearTargets();
            }

            Soldier[] subs = SM.AsOfficer(officer).subs;

            if (!targets.Contains(officer))
            {
                officer.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_Officer_HL_" + yourArmy);
                plusTarget(officer);
                foreach (Soldier sold in subs)
                {
                    if (sold != null)
                    {
                        sold.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_HL_" + yourArmy);
                    }
                }
            }
            else
            {
                officer.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_Officer_" + yourArmy);
                minusTarget(officer);
                foreach (Soldier sold in subs)
                {
                    if (sold != null)
                    {
                        sold.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_" + yourArmy);
                    }
                }
            }
        }
        //attack
        else if (Input.GetKey(KeyCode.A))
        {
            Attack();
        }
        //move
        else if (Input.GetKey(KeyCode.G))
        {
            Move();
        }
        else
        {
            ClearTargets();
        }
    }
예제 #2
0
    private static void lDoWhenLong()
    {
        if (!(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)))
        {
            ClearTargets();
        }

        Collider2D[] soldiers = Physics2D.OverlapAreaAll(firstMousePos, mousePos, 1 << SM.SoldierLayer);

        if (soldiers.Length != 0)
        {
            if (!(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)))
            {
                ClearTargets();
            }
        }

        foreach (Collider2D sold in soldiers)
        {
            Soldier soldd   = sold.GetComponent <Soldier>();
            Soldier officer = SM.GetOfficer(soldd);
            if (officer && officer.army == yourArmy)
            {
                Soldier[] subs = SM.AsOfficer(officer).subs;

                if (!targets.Contains(officer))
                {
                    officer.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_Officer_HL_" + yourArmy);
                    plusTarget(officer);
                    foreach (Soldier sol in subs)
                    {
                        if (sol != null)
                        {
                            sol.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_HL_" + yourArmy);
                        }
                    }
                }
            }
        }
    }