Esempio n. 1
0
    private IEnumerator SearchTargetProcess()
    {
        float Angle1;
        float Angle2;

        playerSearchProcessState = PlayerSearchProcessState.Searching;

        if (PSS == PlayerSearchState.SHEEPSEARCH)
        {
            int Mincount = 0;
            //양 추적 매커니즘. 주인 없는 양 중 가까운 양의 획득을 제일 우선시한다.
            if (ManagerHandler.Instance.GameManager().GetCurrentSheepNum() != 0)
            {
                for (int i = 1; i < ManagerHandler.Instance.GameManager().GetCurrentSheepNum(); i++)
                {
                    SheepControlThree checkingSheep = ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(i);
                    if (!checkingSheep.gameObject.activeSelf)
                    {
                        continue;
                    }
                    else
                    {
                        Angle1 = Vector3.Angle(this.transform.position, ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(Mincount).transform.position);
                        Angle2 = Vector3.Angle(this.transform.position, checkingSheep.transform.position);
                        if (Angle1 <= Angle2)
                        {
                            continue;
                        }
                        else if (Angle2 < Angle1)
                        {
                            Mincount = i;
                        }
                    }
                }
                targetObject = ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(Mincount).gameObject;
            }
            else
            {
                targetObject = HQ.gameObject;
            }
        }
        else if (PSS == PlayerSearchState.BACKTOHOME)
        {
            //귀환 매커니즘. 쉽다.
            targetObject = HQ.gameObject;
        }
        else if (PSS == PlayerSearchState.ENEMYSEARCH)
        {
            // 적 추적시 매커니즘.
            // 일단 없애놓고 나중에 추가할까 생각중.
        }

        yield return(null);

        playerSearchProcessState = PlayerSearchProcessState.Ready;
    }
Esempio n. 2
0
    //PlayerControl에 필요한 요소 초기화.
    private void PlayerInstnaceInit()
    {
        PMI = new PlayerMovingInstance(this.gameObject.transform.parent);
        PMI.GetPlayerParent().position = Vector3.zero;
        PMI.GetPlayerParent().rotation = HQ.transform.rotation;
        HQ.SetOwner(this);

        PSS = PlayerSearchState.BACKTOHOME;
        playerSearchProcessState = PlayerSearchProcessState.Ready;
        PS = new PlayerState();

        PS = GetComponent <PlayerState>();
        playerHerdSheepControl    = GetComponent <PlayerHerdSheepControl>();
        ShepherdAttackEffectBasic = new List <SkillEffectBase>(GetComponents <SkillEffectBase>());
        playerHerdSheepControl.InitHerdSheepBase(this, this.PMI.Speed, true);
    }