//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;
        }
    }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
0
    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);
            }
        }
    }