//public float patSpeed = 3; public override void Modify(GameObject gO) { AI_PatrolData pd = gO.GetComponent <AI_PatrolData>(); if (pd != null) { pd.ptrSplineLine = sl; //pd.speed = patSpeed; } }
protected void ArrivedAtDestination(AI_BehaviorBrain brain) { NavMeshAgent agent = brain.navMeshAgent; AI_PatrolData patrolData = brain.GetComponent <AI_PatrolData>(); ptrSplineLine = patrolData.ptrSplineLine; if (agent != null && ptrSplineLine != null) { BeforeChangingDestination(brain); patrolData.currentPreviousSplinePoint = ptrSplineLine.GetNextControlPointIndex(patrolData.currentPreviousSplinePoint); AfterChangingDestination(brain); } }
protected void Patrol(AI_BehaviorBrain brain) { NavMeshAgent agent = brain.navMeshAgent; AI_PatrolData patrolData = brain.GetComponent <AI_PatrolData>(); ptrSplineLine = patrolData.ptrSplineLine; if (agent != null && ptrSplineLine != null) { currentPreviousSplinePoint = patrolData.currentPreviousSplinePoint; agent.destination = ptrSplineLine.transform.TransformPoint(ptrSplineLine.GetNextControlPoint(currentPreviousSplinePoint)); agent.isStopped = false; agent.stoppingDistance = stopDist; if (agent.remainingDistance <= agent.stoppingDistance && !agent.pathPending) { //int pointCnt = ptrSplineLine.GetControlPointCount; //int nextPointIndex = ptrSplineLine.GetNextControlPointIndex(currentPreviousSplinePoint); ArrivedAtDestination(brain); } } }