示例#1
0
 private void ResetNpc()
 {
     direction = NPC_DIRECTION.IDLE;
     moveRoad.Clear();
     IsWait     = false;
     IsBuy      = false;
     spriteId   = 0;
     mCondition = null;
 }
示例#2
0
    private void MoveNpc()
    {
        if (moveRoad.Count == 0)
        {
            return;
        }

        if ((tr.position - curRoad.pos).sqrMagnitude <= Mathf.Epsilon)
        {
            moveRoad.Pop();
            // 도착 했을 때 행동들 (대기, 구입 대기, 돌아감)
            if (moveRoad.Count == 0)
            {
                ChangeDirection(NPC_DIRECTION.IDLE);

                if (IsWait)
                {
                    GameManager.Instance.WaitQueue.Enqueue(waitFunc);
                }
                else
                {
                    if (IsBuy || curRoad.node == GameManager.Instance.NpcStart)
                    {
                        StartCoroutine(DisappearCoroutine());
                    }
                    else
                    {
                        mCondition = PopupHandler(this);
                        if (mCondition)
                        {
                            mCondition.guestDoHandler += ShopOut;
                        }

                        mAudio.Stop();
                    }
                }

                return;
            }

            curRoad = moveRoad.Peek();
            ChangeDirection(curRoad.dir);
        }

        tr.position = Vector3.MoveTowards(tr.position, curRoad.pos, moveSpeed * Time.deltaTime);

        if (!mAudio.isPlaying)
        {
            mAudio.clip = mWalkClip[soundId];
            soundId++;
            if (soundId >= mWalkClip.Length)
            {
                soundId = 0;
            }
            mAudio.Play();
        }
    }
示例#3
0
 private void Awake()
 {
     for (int i = 0; i < transform.childCount; i++)
     {
         HUD_GuestCondition temp = transform.GetChild(i).GetComponent <HUD_GuestCondition>();
         if (temp)
         {
             mConditions.Add(temp);
             temp.Init();
         }
     }
 }
示例#4
0
    static public HUD_GuestCondition GetUI(NpcAI ai)
    {
        HUD_GuestCondition temp = null;

        for (int i = 0; i < mConditions.Count; i++)
        {
            if (mConditions[i].gameObject.activeSelf)
            {
                continue;
            }

            temp = mConditions[i];
            temp.transform.position = Camera.main.WorldToScreenPoint(ai.transform.position);
            temp.TargetInfo         = ai.Info;
            temp.gameObject.SetActive(true);
            break;
        }

        return(temp);
    }