//신호위반 하는 친구는 이 함수에서 변하지않음 private void ChangeAllAgentsAreaMask(EAreaMask _AreaMask) { for (int i = 0; i < MNPCWalkers.Length; i++) { MNPCWalkers[i].ChangeAreaMask(_AreaMask); } }
//AreaMask에 대한 정보는 EAreaMask에서 public void ChangeAreaMask(EAreaMask _AreaMask) { if (IsJayWalker) { return; } OriginalyAreaMask = _AreaMask; Agent.areaMask = (int)OriginalyAreaMask; Agent.SetDestination(Agent.destination); }
private void Start() { Agent = GetComponent <NavMeshAgent>(); StartPos = transform.position; OriginalyAreaMask = EAreaMask.Walkable; CheckDelayTime = new WaitForSeconds(2.5f); CheckCoroutine = StartCoroutine(CheckAgentArrive()); AgentGFX = transform.GetChild(0).GetComponent <MeshRenderer>(); AgentCollider = GetComponent <Collider>(); }
public void SetDestination(Transform _Transform, bool _IsJaywalker) { if (_IsJaywalker) { OriginalyAreaMask = EAreaMask.Walkable_CrossWalk; Agent.speed = 5.5f; } else { OriginalyAreaMask = EAreaMask.Walkable; Agent.speed = 3.5f; } IsJayWalker = _IsJaywalker; Agent.areaMask = (int)OriginalyAreaMask; if (Agent.enabled) { Agent.SetDestination(_Transform.position); } }