Merge pull request 'Ai-Creating-customers' (#6) from Ai-Creating-customers into main
Reviewed-on: Mourning-Ravens/UnityBiz#6
This commit is contained in:
commit
ad6ed4eaba
55
AI.cs
Normal file
55
AI.cs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.AI;
|
||||||
|
using System.Collections;
|
||||||
|
using static UnityEngine.GraphicsBuffer;
|
||||||
|
|
||||||
|
public class AI : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private NavMeshAgent agent;
|
||||||
|
[SerializeField] private int waittime;
|
||||||
|
[SerializeField] public Transform[] targets;
|
||||||
|
private int currentTargetIndex;
|
||||||
|
private bool isWaiting;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
targets = new Transform[3];
|
||||||
|
|
||||||
|
targets[0] = GameObject.Find("Cube (2)").transform;
|
||||||
|
targets[1] = GameObject.Find("Cube (3)").transform;
|
||||||
|
targets[2] = GameObject.Find("Cube (4)").transform;
|
||||||
|
|
||||||
|
if (targets.Length > 0)
|
||||||
|
{
|
||||||
|
currentTargetIndex = 0;
|
||||||
|
SetNextDestination();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (!isWaiting && agent.remainingDistance <= agent.stoppingDistance && !agent.pathPending)
|
||||||
|
{
|
||||||
|
StartCoroutine(GoToNextTarget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetNextDestination()
|
||||||
|
{
|
||||||
|
if (targets.Length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
agent.SetDestination(targets[currentTargetIndex].position);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator GoToNextTarget()
|
||||||
|
{
|
||||||
|
isWaiting = true;
|
||||||
|
yield return new WaitForSeconds(waittime);
|
||||||
|
currentTargetIndex++;
|
||||||
|
SetNextDestination();
|
||||||
|
isWaiting = false;
|
||||||
|
}
|
||||||
|
}
|
17
Create.cs
Normal file
17
Create.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class Create : MonoBehaviour
|
||||||
|
{
|
||||||
|
public GameObject[] objectToSpawn;
|
||||||
|
public int z,y;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
int rand = UnityEngine.Random.Range(0, objectToSpawn.Length);
|
||||||
|
Instantiate(objectToSpawn[rand], new Vector3(y,0,z), Quaternion.identity);
|
||||||
|
}
|
||||||
|
}
|
10
cos do ai.md
Normal file
10
cos do ai.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Bake NavMesh:
|
||||||
|
Wybierz teren, który ma być powierzchnią do nawigacji (np. Plane).
|
||||||
|
Przejdź do zakładki Window -> AI -> Navigation.
|
||||||
|
W sekcji Bake kliknij przycisk Bake, aby wygenerować NavMesh na obiekcie.
|
||||||
|
Dodaj komponent NavMeshAgent do obiektu AI:
|
||||||
|
Stwórz nowy obiekt 3D (np. Sphere lub Cube), który będzie agentem AI.
|
||||||
|
Do tego obiektu dodaj komponent NavMesh Agent (w zakładce Inspector -> Add Component -> wpisz NavMeshAgent).
|
||||||
|
Podłącz skrypt AI do agenta:
|
||||||
|
Do obiektu AI dodaj załączony skrypt AI (AI.cs).
|
||||||
|
W Inspector w polu Agent przypisz komponent NavMeshAgent, a w polu Wait Time ustaw odpowiednią liczbę sekund (np. 2).
|
Loading…
Reference in New Issue
Block a user