Jump to content
Unity Insider Forum

suche Tagabfrage ohne Collider und ohne public


Aquana

Recommended Posts

Hallo liebe Spieleentwickler und Untiyexperten die mir vielleicht helfen wollen.

 

Ich habe in letzter Zeit ein Interesse an KI entwickelt. DA habe ich zumindest versucht den Anschein einer Ki zu entwickeln.

Obwohl es mehr ein Evolutionssystem ist. Dazu werden in Startmethode einfach verschieden Werte wie vorwärst laufen sich drehen auf eine bestimmte Priorität gesetzt und das per Zufall. Das ganze soll je nach dem was die Figur berührt ausgeführt werden.

Bei Wasser erhält die Figur Schaden LP-1; Bei Futter wird sie geheilt LP+300 (weil manche einfach an einer stehen bleiben und sich nie bewegen sollten die eher belohnt werden die etwas machen) So sterben die Nichtstuher aus und die sich bewegenden leben weiter manchmal weiter.

Nach einer gewissen Weile erschaffen sie auch Klone von sich.

Doch mein Problem ist jetzt das die Figuren sich Quasi blind durch die Gegend tasten. Obwohl die "Läufer" durch das Futter belohnt werden, werden sie gleichzeitig durch das Wasser das sie erst berühren müssen bestraft und nehmen viel Schaden bis die mit guten "Genen" die Aktion ausführen sich umzudrehen wenn sie merken das sie das Wasser berühren.

Doch ich möchte ja jetzt auch das sie das Wasser sehen können und so gleich umkehren können, ohne das Wasser erst berühren zu müssen.

Für die Sicht benutze ich das

if(Vector3.Distance(player.position,this.transform.position)<10 && Vector3.Angle(player.position - this.transform.position ,this.transform.forward) <30 && /*wie frage ich den Tag des Wassers ab ohne Collider und ohne public?*/)

{

print("Ich seh's und drehe mich (wenn darin meine Priorität liegt bezogen auf das Objekt Wasser oder Futter)");

 

}

Ich nutze ja bereits OnTrigger , doch das ist diese bline rumherrirren.

Da die Figuren aber auch auf verschieden Umgebungen reagieren sollen kann ich es auch mit public nicht regeln. Dann müsste ich erst jedes Futter und Wasser das ich neu

rein machen oder gar die Welt zufällig entstehen lasse möchte erst neu in die Publicvariable ziehen, was für den Spieler der nur das Spiel sieht auch nicht möglich ist.

 

Gibt es eine Möglichkeit den Tag eines anderen Objectes ohne public und ohne OnTrigger abzufragen und darauf zu reagieren?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst doch mit OnTriggerEnter verschiedene Dinge abfragen, ich würde um das Wasser einfach einen Collider machen und in Abhängigkeit davon eben Aktionen ausführen lassen. Eventuell arbeitest du auch zu viel mit der Variable Zufall. Wäre es nicht eher besser sich einen bestimmten Punkt auf der Karte per Zufalle berechnen zu lassen und dann einen A** Algorythmus nutzen, um da hin zu kommen, wenn er auf einer bestimmten Distanz von diesem Punkt ist, wird ein neuer Punkt berechnet. Das würde den Zufall schon etwas eindämpfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke erst einmal für die Antwort.

Hmm, ich könnte wirklich einen Collider zusätzlich auf das Wasser machen. Mir geht es ja allerdings darum das nur das Script der "Kreaturen" darauf reagiert. So wie ihr eigenes Verhalten dadurch beeinflusst wird. Vielleicht benutze ich letztendlich die Physic.Raycast-methode. Ich hoffte nur eine weniger eingeschränkte Sicht für meine Figuren zu haben.

Die Zufallsmethode für eine Welt ist mir wichtig um zu sehen wie und welche Figuren am ehesten überleben. Auch wenn es bisher noch nicht so spannend ist, da sie nicht so viele Aktionen haben aus denen sie " auswählen" können.

Mit dem A**Algorythmus muss ich mich erst noch einmal beschäftigen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...