コード例 #1
0
    IEnumerator CoAttack()
    {
        State = CreatureState.Skill;
        GameObject go;

        // 피격 판정
        if (_creature.CompareTag("Team"))
        {
            go = FindNearestObjectByTag("Enemy");
        }
        else
        {
            go = FindNearestObjectByTag("Team");
        }

        if (go != null)
        {
            transform.LookAt(go.transform);                                                                                                   //공격대상 바라보기
            if (_rangeAttacktype)                                                                                                             //원거리 유닛이면 발사체 생성
            {
                GameObject arrow = Managers.Resource.Instantiate($"Creature/Arrow_{(_creature.name).Substring(0, _creature.name.Length-1)}"); //이름뒤에 숫자 빼기
                if (arrow != null)
                {
                    arrow.transform.position = _creature.transform.position + new Vector3(0, 2, 1);
                    ArrowCtrl ac = arrow.GetComponent <ArrowCtrl>();
                    if (ac != null)
                    {
                        ac.fire(go);
                    }
                }
            }
            CreatureCtrl cc = go.GetComponent <CreatureCtrl>();
            if (cc != null)
            {
                cc.OnDamaged(_atk);
            }
            Debug.Log("On Hit !");
        }
        // 대기 시간
        yield return(new WaitForSeconds(_atkSpeed));

        _coSkill = null;
        State    = CreatureState.Idle; // <- 공격하는게 어색하다 싶으면 Moving으로 바꿔보기
    }
コード例 #2
0
    protected void Buff(MeadowUnit mu, bool unBuff) //버프 적용 or 해제
    {
        int num = 1;

        if (!unBuff) //유닛이 죽으면 버프 해제하기 위한 것
        {
            num = -1;
        }

        //버프를 주기 위해 "Team"이라는 태그를 이용해 게임 오브젝트 찾기
        GameObject[] Team = GameObject.FindGameObjectsWithTag("Team");
        if (Team != null)
        {
            foreach (GameObject go in Team)
            {
                CreatureCtrl cc = go.GetComponent <CreatureCtrl>();
                if (cc != null)
                {
                    switch (mu)
                    {
                    case MeadowUnit.Chicken2:     //전리품
                        break;

                    case MeadowUnit.Chicken3:
                        break;

                    case MeadowUnit.Cow2:
                        cc.BuffHP(10 * num);
                        break;

                    case MeadowUnit.Cow3:
                        cc.BuffHP(30 * num);
                        break;

                    case MeadowUnit.Duck2:     //코인
                        break;

                    case MeadowUnit.Duck3:
                        break;

                    case MeadowUnit.Horse2:
                        cc.buffSpeed(0.1f * num);
                        break;

                    case MeadowUnit.Horse3:
                        cc.buffSpeed(0.3f * num);
                        break;

                    case MeadowUnit.Sheep2:
                        cc.buffAttack(3 * num);
                        break;

                    case MeadowUnit.Goat2:
                        cc.buffAttackSpeed(0.1f * num);
                        break;

                    default:
                        break;
                    }
                }
            }
        }
    }
コード例 #3
0
ファイル: CarCtrl.cs プロジェクト: PWLPavan/Pavan
 public void AddCreature(CreatureCtrl creature)
 {
 }