Beispiel #1
0
    /// <summary>
    /// 到达目标
    /// </summary>
    private void ReachedDestination()
    {
        velocity    = Vector2.zero;
        movement    = Vector3.zero;
        seekerState = ActorState.Idle;
        SetNeighbourRadius(seekerState);

        SetSearchBoxQuad();
        ClearNeighbours();
        SeekerMovementManager.UpdateNeighbour(5f, searchQuad, this);


        for (int i = 0; i < neighbours.Length; i++)
        {
            if (neighbours[i] == null)
            {
                break;
            }

            neighbours[i].seekerState = ActorState.Idle;
            neighbours[i].SetNeighbourRadius(neighbours[i].seekerState);
            neighbours[i].velocity = Vector2.zero;
            neighbours[i].movement = Vector3.zero;
        }
    }
Beispiel #2
0
    // Use this for initialization
    void Start()
    {
        Pos = new Vector2(transform.position.x - PathFind.instance.m_map.mapStartPos.x, transform.position.z - PathFind.instance.m_map.mapStartPos.z);
        neighbourRadiusSquaredMoving = neighbourRadiusMoving * neighbourRadiusMoving;
        neighbourRadiusSquaredIdle   = neighbourRadiusIdle * neighbourRadiusIdle;
        SetNeighbourRadius(seekerState);
        neighbours = new Seeker[SeekerMovementManager.maxNeighbourCount];
        SeekerMovementManager.AddSeeker(this);

        controller = GetComponent <ActorMove>();
        if (controller != null)
        {
            controller.SetActorState(seekerState);
            controller.SetGroup(group);
        }
    }