Пример #1
0
    private void Start()
    {
        startingGenerator = FindObjectOfType <TraversalGenerator>();
        navMesh           = new TraversalAStarNavigation(traversalHolder);

        selectedLine = traversalHolder.GetRandomLine();
    }
Пример #2
0
    public void StartUp()
    {
        health = GetComponent <Health>();
        if (health == null)
        {
            Debug.LogError("Could not find Health component", this);
        }
        debugHolder     = ScriptableObject.CreateInstance <PersonAIDebugHolder>();
        levelGeneration = FindObjectOfType <LevelGeneration>();

        animatorController   = GetComponent <AnimationCommandController>();
        traversalGraphHolder = FindObjectOfType <TraversalGraphHolder>();
        traversalAStar       = new TraversalAStarNavigation(traversalGraphHolder);

        personalTasks = ScriptableObject.CreateInstance <TaskListHolder>();
        currentState  = GoToState(startingState);

        FindCurrentRoom();
    }
Пример #3
0
 private void Start()
 {
     graphNavigation = new TraversalAStarNavigation(traversalGraphHolder);
 }
        public static List <NavMeshMovementLine> GetLODPath(Vector3 playerPosition, Vector3 endPosition, RoomInformation startingRoom, RoomInformation arrivalRoom, TraversalAStarNavigation graphNavigation)
        {
            if (startingRoom == null || arrivalRoom == null)
            {
                return(null);
            }

            if (startingRoom.Equals(arrivalRoom))
            {
                return(startingRoom.NavMeshNavigation.GetPathFromTo(playerPosition, endPosition));
            }
            List <NavMeshMovementLine> path = new List <NavMeshMovementLine>();

            List <NavMeshMovementLine> traversalMovementList = graphNavigation.GetPathFromTo(
                startingRoom.TraversalGenerator.MiddleVertex, arrivalRoom.TraversalGenerator.MiddleVertex);

            if (traversalMovementList.Count == 0)
            {
                return(null);
            }

            path.AddRange(startingRoom.NavMeshNavigation.GetPathFromTo(playerPosition, startingRoom.TraversalGenerator.MiddleVertex.Position));

            path.AddRange(traversalMovementList);
            path.AddRange(arrivalRoom.NavMeshNavigation.GetPathFromTo(arrivalRoom.TraversalGenerator.MiddleVertex.Position, endPosition));

            return(path);
        }