Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Unity.AI.Navigation;
- using UnityEngine;
- using UnityEngine.AI;
- public class AntTriggerLink : MonoBehaviour
- {
- [SerializeField] private NavMeshAgent meshAgent;
- [SerializeField] private BehaviorAnt behaviorAnt;
- private void Reset()
- {
- meshAgent = GetComponent<NavMeshAgent>();
- behaviorAnt = GetComponent<BehaviorAnt>();
- }
- bool Trigg;
- int area = -1;
- AnteaterManager anteaterManager = null;
- private void LateUpdate()
- {
- if (meshAgent.isOnOffMeshLink)
- {
- var offMeshLinkData = meshAgent.currentOffMeshLinkData;
- if (offMeshLinkData.offMeshLink is not null)
- {
- var offMeshLink = offMeshLinkData.offMeshLink;
- anteaterManager = offMeshLink.GetComponent<AnteaterManager>();
- area = offMeshLink.area;
- }
- else
- {
- var MeshLink = meshAgent.navMeshOwner as NavMeshLink;
- if (MeshLink is not null)
- {
- anteaterManager = MeshLink.GetComponent<AnteaterManager>();
- area = MeshLink.area;
- }
- }
- }
- if (Trigg != meshAgent.isOnOffMeshLink)
- {
- if (!meshAgent.isOnOffMeshLink)
- {
- if (area > -1 && anteaterManager is not null)
- {
- if (area
- == NavMesh.GetAreaFromName("Enter"))
- {
- anteaterManager.Register(behaviorAnt);
- Debug.Log("Enter");
- }
- if (area
- == NavMesh.GetAreaFromName("Exit"))
- {
- anteaterManager.UnRegister(behaviorAnt);
- Debug.Log("Exit");
- }
- area = -1;
- anteaterManager = null;
- }
- }
- Trigg = meshAgent.isOnOffMeshLink;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment