国产男靠女免费视频网站,2018久久偷拍,国产情侣疯狂作爱系列
當(dāng)前位置: 主頁(yè) > 其它 > 日志 >

向量在游戲AI中的應(yīng)用

來(lái)源: 瀏覽數(shù):
責(zé)任編輯:3D數(shù)媒
時(shí)間:2013-01-11 21:23

[導(dǎo)讀]

向量在游戲中的應(yīng)用是不可或缺的,今天我要做的筆記就是向量點(diǎn)乘在游戲AI中的應(yīng)用。

在做3D游戲時(shí),我們時(shí)常會(huì)想到當(dāng)敵人在我們前方時(shí)角色應(yīng)該做出什么反應(yīng),而當(dāng)角色在我們左方、右方或后方時(shí)我又該做出什么反應(yīng),這是游戲AI最基本的問(wèn)題,想是容易,但是計(jì)算機(jī)就是計(jì)算機(jī)它需要我用程序去表達(dá),如果沒(méi)有想法會(huì)讓我們不知從何寫起。

這里我們首先需要理解向量的點(diǎn)乘:兩個(gè)向量相乘=兩個(gè)向量的模 * 兩個(gè)向量夾角的余弦值,理解這個(gè)之后我開(kāi)始考慮我們需要解決的問(wèn)題。

首先我們先計(jì)算出由自身與目標(biāo)點(diǎn)得出的向量(向量=終點(diǎn) 減去 起點(diǎn)(小啰嗦一下)),然后把得出的向量單位化,這樣一來(lái),當(dāng)我們把這個(gè)得出方向向量 與我們自身的某一單位方向向量進(jìn)行點(diǎn)乘得出的結(jié)果不就是我們夾角的余弦值嗎?這時(shí)我們只要根據(jù)當(dāng)前所計(jì)算出得值便可確定出敵人現(xiàn)在在我們角色的什么方向了,樣例代碼:

Public Transform target; //敵人

Vector3  dir = (target.position -  transform.position).normalized;

Float direction = vector3.Dot(dir,transform.forward) ;

If( direction > 0.9f)

{

Debug.log("敵人在前方");

}

Else

{

Debug.log("不知道");

dir = (target.position -  transform.position).normalized;

direction = vector3.Dot(dir,transform.right) ;

If( direction > 0.3f)

{

Debug.log("敵人在右邊");

}   

Else if(direction < -0.3f)

{

Debug.log("敵人在左邊");

}                      

Else

{

Debug.log("不知道");

……(剩下的一樣)

不過(guò)有時(shí)候我們會(huì)遇到這樣的問(wèn)題,但角色和敵人被某些東東擋住了,我們是不可能發(fā)現(xiàn)敵人的啊,這是當(dāng)然的,在游戲中我想應(yīng)該常用的是通過(guò)發(fā)射射線來(lái)檢測(cè),就是在自身的位置想敵人發(fā)射一條射線,檢測(cè)這條射線有沒(méi)有什么碰觸,有就說(shuō)明他們之間是看不到的,我們應(yīng)該怎么樣,沒(méi)有就說(shuō)明可能是看到的,因?yàn)檫@里還涉及到我們是否在敵人的視野范圍之內(nèi)。(發(fā)射物理射線是我很喜歡干的一件事,尤其是通過(guò)屏幕(也就是攝像機(jī))向三維場(chǎng)景發(fā)射射線來(lái)定位我們當(dāng)前點(diǎn)擊的位置然后做出相應(yīng)的反應(yīng),當(dāng)然正確的理解三維中的幾個(gè)空間關(guān)系更有助于我們處理這些空間的相互轉(zhuǎn)化(我現(xiàn)在都還沒(méi)理解透,因?yàn)槲以谟?jì)算機(jī)圖形學(xué)里沒(méi)遇到過(guò)像unity里面提到的一些空間,呵呵可能是自己學(xué)的還是太少了))   

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與納金網(wǎng)無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。



  • TAGS:
  • 網(wǎng)友評(píng)論

    您需要登錄后才可以發(fā)帖 登錄 | 立即注冊(cè)

    關(guān)閉

    全部評(píng)論:0條