Skocz do zawartości

Unity 5 - Poszukuje Prostego AI


Rekomendowane odpowiedzi

zależy o jakie AI Ci chodzi kolego... do gry typu kółko i krzyżyk, statki, czy coś innego?

 

o prostym ai znajdziesz coś tutaj:

https://unity3d.com/learn/tutorials/projects/survival-shooter-tutorial

Odwiedź mój profil aby zobaczyć adres mojego bloga o projektowaniu gier!

Odnośnik do komentarza
Udostępnij na innych stronach

@jimmyblack robie gre w stylu gothica, chodzi o to żeby jak gracz wejdzie w obszar wroga to ten wróg go zaczyna gonić

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli musisz napisać funkcję sprawdzającą dystans do gracza, a następnie podejmować akcje. W powyższym linku znajdziesz posuwanie się NPC do gracza, a warunek sprawdzania odległości pomiędzy dwoma obiektami znaleźć można w wielu miejscach.

Odwiedź mój profil aby zobaczyć adres mojego bloga o projektowaniu gier!

Odnośnik do komentarza
Udostępnij na innych stronach

Dałby mi ktoś jeszcze skrypt na teleportacje? Gdy gracz np. wejdzie na podłoge w wyznaczonym terenie to go wyteleportuje do sceny trzeciej?

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Kolego. Zadajesz tak podstawowe pytania, że witki mi opadają. Obejrzyj tutoriale zamieszczone na stronie unity i tam znajdziesz odpowiedzi na swoje pytania.

 

https://docs.unity3d.com/ScriptReference/Application.LoadLevel.html

Odwiedź mój profil aby zobaczyć adres mojego bloga o projektowaniu gier!

Odnośnik do komentarza
Udostępnij na innych stronach

Kolego. Zadajesz tak podstawowe pytania, że witki mi opadają. Obejrzyj tutoriale zamieszczone na stronie unity i tam znajdziesz odpowiedzi na swoje pytania.

 

https://docs.unity3d.com/ScriptReference/Application.LoadLevel.html

Ogarniałem tutoriale, na kursach byłem, dużo już umiem ale kuchwa te skrypty nie które nie działają a sam pisać jeszcze nie umiem xD

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

pisanie to podstawa używania Unity :)

Widać oglądałeś słabe tutki i byłeś na słabych kursach.

Dobra tam xD nie gadaj xD

 

Tam na tamtej stronie było coś takiego : 

 

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
void Example() {
Application.LoadLevel("3");
}
}
 
ale to nie wczyta levela jak gracz przejdzie przez podłoge.. a skrypt był przypisany do niej.

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jakie to były kursy skoro nic Cię nie nauczyli? 

 

Chcesz, aby gra wczytała kolejny poziom, po tym jak gracz wejdzie na dany fragment podłogi, tak? Więc zastanówmy się co powinno być po kolei. Najpierw musi być jakieś zdarzenie (czyli wejście w dany fragment podłogi), a potem wczytanie poziomu. Skrypt wyżej tylko wczytuje poziom. Zadaj sobie pytanie jak chcesz wywołać to zdarzenie. Oczywiście poprzez wejście w ten fragment podłogi, ale skąd gra ma wiedzieć, że akurat stanąłeś w tym miejscu? To proste. Kojarzysz może GTA San Andreas, gdzie aby rozpocząć misję były takie czerwone kółka, w które się wchodziło i misja się rozpoczynała? Ty zrób coś na podobnej zasadzie, a mianowicie użyj Collidera, który będzie miał zaznaczoną opcje Is Trigger. Dzięki temu wejście w collider będzie możliwe. A więc do czegoś powoli dochodzimy. Mamy już można powiedzieć to nasze "czerwone kółeczko". Teraz trzeba do tego obiektu z Colliderem dodać skrypt, który po wejściu w niego będzie wczytywał poziom. A funkcja ta wygląda tak:

 

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html
 

To Ci powinno wystarczyć, ale napiszę Ci gotowy skrypt, żebyś bardziej to zrozumiał.

 

using UnityEngine;
using System.Collections;
 
public class SkryptDoCollidera : MonoBehaviour {
    void OnTriggerEnter(Collider other) {
        if (other.Tag.Equals("Player")) {
                Application.LoadLevel("Nazwa_poziomu");
        }
    }
}
Oczywiście, aby wykryło Twoją postać jej znacznik (tag) musi być ustawiony na "Player" - według powyższego skryptu (możesz to zmienić).

2cf6pe0.jpg


"Hmm jak by to powiedzieć... Moje pierwsze wrażenie o grupie... Nie lubię was..." - Kakashi


Odnośnik do komentarza
Udostępnij na innych stronach

@up 

Dobrze wszystko opisałeś, właśnie o taką odpowiedz mi chodziło ale jest jeden problem

 

Assets/Pliki me/Scripts/AI/Tpdo3.cs(6,13): error CS1061: Type `UnityEngine.Collider' does not contain a definition for `Tag' and no extension method `Tag' of type `UnityEngine.Collider' could be found. Are you missing an assembly reference?

 

 

@Edit

 

Kursy Zsp1 W Pile 

 

http://imgur.com/a/difdp Dowodzik xD

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach


void OnTriggerEnter(Collider other)

{

if (other.gameObject.tag == "Player")

{

UnityEngine.SceneManagement.SceneManager.LoadScene("3");

}

}

 

 

1.Zgubiles gameObject

2.Application.LoadLevel zostala zastapiona przez SceneManager

 

Odnośnik do komentarza
Udostępnij na innych stronach

Powinni oddać Ci pieniądze :)

Szkoła sponsorowała najlepszych uczniów z informatyki w szkole.

void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Player")
        {
            UnityEngine.SceneManagement.SceneManager.LoadScene("3");
        }
    }


1.Zgubiles gameObject
2.Application.LoadLevel zostala zastapiona przez SceneManager

 

Assets/Pliki me/Scripts/AI/Tpdo3.cs(4,0): error CS1525: Unexpected symbol `void'

 

ehh, co tu jest z tym ciągle..

 

 

@Edit

 

taki kod mam : 

using UnityEngine;
using System.Collections;
 
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
UnityEngine.SceneManagement.SceneManager.LoadScene("3");
}
}
 
 
Hmm A tu " if (other.gameObject.tag == "Player") " Nie powinno być na końcu ; ?

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra ! Zrobiłem to sam. Metoda prób i błędów na kodzie, przerabiałem go i przerabiałem i doszedłem do takiego kodu: http://pastebin.com/QPwUASxg

Który zadziałał tak jak chciałem..

Początkujący Programista // C# // JavaScript //

Twórca Gier // Android // PC - // unity

Aktualne Projekty:

DarkVision - Horror / hybryda 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum Unity 5   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...