如何在程序生成的地牢中修复AI寻路?

时间:2019-01-09 16:42:07

标签: c# unity3d artificial-intelligence path-finding procedural-generation

我目前正在研究带有敌方AI的3D程序地牢生成器。 在这种情况下,如何解决敌方AI的寻路问题?

无法在运行时烘烤navmesh,并且每次运行时,地牢的生成方式都不同。地牢是由路口,房间和走廊的预制件生成的。 敌人如果没有导航网就无法移动。我用熊猫行为树创建了AI。一个AI应该遵循一条设置有航点的路径,并且在看到玩家时会四处跑动。其他AI在地图上徘徊以寻找玩家。

地下城在下面显示的类中生成。 我有另一个类在每个预制件的门口上绘制Gizmos,另一个类返回“ ModuleConnector”。

import tkinter
from cryptography.fernet import Fernet

global token

class Cryptography:

    def encrypt(self, string):
        byteString = str.encode(string)
        token = f.encrypt(byteString)
        w.insert(tkinter.INSERT, token.decode() + "\n")
        w.pack()

    def decrypt(self):
        try:
            decrypted = f.decrypt(token)
        except NameError:
            w.insert(tkinter.INSERT, "you didn't yet encrypt anything\n")
            w.pack()
        decrypted = f.decrypt(token)
        dsAsString = decrypted.decode("utf-8")
        w.insert(tkinter.INSERT, dsAsString + "\n")

在不是随机生成的且具有导航网格的地图中,AI的工作都很好。 如何在此程序生成的地牢中修复AI的寻路功能?

1 个答案:

答案 0 :(得分:0)

我非常确定可以从2017.1开始在运行时进行烘焙

https://unity3d.com/learn/tutorials/topics/navigation/baking-navmesh-runtime

文档有点杂乱无章,但应该可以使用。这是一个相对较新的功能。