Unity Algorithms Flashcards

HIGH PRIORITY

1
Q

PATHFINDING ALGORITHM

A

Explanation: Pathfinding algorithms are used to find the shortest path between two points on a grid or in a graph.

Usage: Implementing enemy AI movement, NPC navigation, player movement on a map.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

A* (A-star)

A

A* (A-star) algorithm is popular for pathfinding. Here’s a basic example

// Example A* pathfinding using Unity’s NavMesh system
using UnityEngine;
using UnityEngine.AI;

public class AStarPathfinding : MonoBehaviour
{
public Transform target;
private NavMeshAgent agent;

void Start()
{
    agent = GetComponent<NavMeshAgent>();
    if (agent != null && target != null)
    {
        agent.SetDestination(target.position);
    }
} }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sorting Algorithms

A

Explanation: Sorting algorithms arrange elements of a list in a specific order (e.g., numerical or alphabetical).

Usage: Ordering game objects by distance, sorting high scores, organizing inventory items.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

QuickSort

A

// Example QuickSort implementation
public class QuickSort
{
public static void Sort(int[] array, int left, int right)
{
if (left < right)
{
int pivot = Partition(array, left, right);

        if (pivot > 1)
            Sort(array, left, pivot - 1);
        if (pivot + 1 < right)
            Sort(array, pivot + 1, right);
    }
}

private static int Partition(int[] array, int left, int right)
{
    int pivot = array[left];
    while (true)
    {
        while (array[left] < pivot)
            left++;
        while (array[right] > pivot)
            right--;

        if (left < right)
        {
            if (array[left] == array[right]) return right;

            int temp = array[left];
            array[left] = array[right];
            array[right] = temp;
        }
        else
        {
            return right;
        }
    }
} }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Random Number Generation

A

Explanation: Algorithms for generating pseudo-random numbers.

Usage: Spawning enemies randomly, generating loot drops, procedural generation of terrain.

Example: Using Unity’s Random class for basic random number generation.

// Example random number generation in Unity
int randomIndex = Random.Range(0, spawnPoints.Length);
Instantiate(enemyPrefab, spawnPoints[randomIndex].position, Quaternion.identity);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Finite State Machines (FSM)

A

Explanation: Modeling complex behaviors by defining states and transitions between them.

Usage: Implementing AI behavior (e.g., patrolling, attacking, fleeing).

Example: Using enums or classes to represent states and switching between them.

// Example Finite State Machine using enums
public enum EnemyState
{
Patrol,
Chase,
Attack,
Dead
}

public class EnemyController : MonoBehaviour
{
private EnemyState currentState;

void Start()
{
    currentState = EnemyState.Patrol;
}

void Update()
{
    switch (currentState)
    {
        case EnemyState.Patrol:
            // Implement patrol logic
            break;
        case EnemyState.Chase:
            // Implement chase logic
            break;
        case EnemyState.Attack:
            // Implement attack logic
            break;
        case EnemyState.Dead:
            // Implement death logic
            break;
    }
} }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dijkstra’s Algorithm

A

Explanation: Finds the shortest path in a weighted graph.

Usage: Route finding in non-grid-based environments, such as navigating a network of connected nodes.

Example: Implementing a GPS-like navigation system within a game world.

// Example Dijkstra’s Algorithm for finding shortest path in Unity
public class DijkstraAlgorithm
{
public static List<Node> FindShortestPath(Node start, Node goal)
{
// Implementation of Dijkstra's algorithm
// Return the shortest path as a list of nodes
}
}</Node>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly