A. Unity3D做一個手游怪物AI,需要掌握什麼
ai是個復雜的實現。
1。狀態轉換。例如被攻擊後轉向敵人,釋放魔法後進去休息狀態,敵人過於強大ai會逃跑,這些問題首先直觀的使用if else語句,可以這樣的ai通常非常難以寫出來,而且ai的修改會很麻煩,這時候業內慣用「有限狀態機」解決此問題。
2。路徑規劃。怎樣從A點到B點要繞過中間的障礙物,這需要演算法解決,非常成熟的解決方案就是 A*尋路(A星尋路演算法),這中演算法適合解決固定障礙的路徑規劃,如繞過山,河,溝不可移動的障礙。另外點下更復雜的戰術式尋路,如避開敵人火力區的路線,避開地面雷達的飛行路線等。
3。避開障礙物體。其實這也屬於「路徑規劃」類的問題,只不過此問題解決的是動態的障礙,和上面的第2點有非常大的區別。如20或者200個角色同時運行到一個目標,如無有效的演算法讓彼此以合適方式避開這個游戲效果是非常差的,常用的演算法有如Flocking演算法,用合力的方式計算朝向與速度,將角色分為三個基本的行為:聚集,分散,列隊 去解決,這一演算法用的非常廣;更加復雜的演算法如RVO演算法。
4。一些移動行為演算法。如:追趕,逃避,插入,避開牆等等。
再次點下開頭:AI的實現是個非常復雜的過程,不止是演算法上的,後期各項數值的調試迭代磨合是非常需要耐心的,以上4點是很基本需要掌握解決的方面。
純手打,希望對你有幫助。