private void ResetNpc() { direction = NPC_DIRECTION.IDLE; moveRoad.Clear(); IsWait = false; IsBuy = false; spriteId = 0; mCondition = null; }
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(); } }
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(); } } }
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); }