亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于unity3D的拖動(dòng)相機(jī)在場景中位移的方法與流程

文檔序號:11494780閱讀:3195來源:國知局

本發(fā)明涉及一種基于unity3d的拖動(dòng)相機(jī)在場景中位移的方法。



背景技術(shù):

游戲中相機(jī)的視角是個(gè)錐形視角,從截面來看,就是一個(gè)等腰三角形。而相機(jī)就處于中間頂點(diǎn)的位置,相機(jī)的fov(fieldofview,攝像機(jī)的視角)就是頂點(diǎn)的內(nèi)角。游戲中經(jīng)常會需要用到在電腦上拖動(dòng)鼠標(biāo)、在移動(dòng)設(shè)備上滑動(dòng)手指等操作來完成場景移動(dòng),從而瀏覽其他區(qū)域的操作,但是相機(jī)與場景之間存在距離,在場景跟隨手指拖動(dòng)的過程,存在或多或少的誤差,無法達(dá)到場景完全跟隨手指拖動(dòng),拖動(dòng)過程中如果沒有進(jìn)行平滑插值,整個(gè)操作就也會非常生硬。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題,在于提供一種基于unity3d的拖動(dòng)相機(jī)在場景中位移的方法,實(shí)現(xiàn)場景的平滑移動(dòng),提升用戶體驗(yàn)。

本發(fā)明是這樣實(shí)現(xiàn)的:一種基于unity3d的拖動(dòng)相機(jī)在場景中位移的方法,包括如下步驟:

步驟1、判斷是否是正交相機(jī),若是,則跳轉(zhuǎn)至步驟4,否則,進(jìn)入步驟2;

步驟2、獲取相機(jī)到視野中心點(diǎn)的直線距離d和相機(jī)視角fov;

步驟3、根據(jù)所述直線距離d和相機(jī)視角fov計(jì)算出水平位移量x和垂直位移量y:x=d×2×tan(fov÷2),y=x÷畫面寬高比,其中,所述畫面寬高比為unity3d引擎自帶的屏幕寬高比,跳轉(zhuǎn)至步驟5;

步驟4、根據(jù)相機(jī)尺寸size計(jì)算出水平位移量x和垂直位移量y:x=2×size×畫面寬高比,y=2×size;其中,所述畫面寬高比為unity3d引擎自帶的屏幕寬高比,所述相機(jī)尺寸size為正交相機(jī)的視野寬度的一半;

步驟5、根據(jù)相機(jī)旋轉(zhuǎn)角度α對水平位移量x和垂直位移量y進(jìn)行修正,得到修正后的水平位移量x1和修正后的垂直位移量y1作為目標(biāo)值,通過插值方式以一定速度跟隨目標(biāo)值位移,達(dá)到平滑移動(dòng)效果。

進(jìn)一步的,所述步驟2中“獲取相機(jī)到視野中心點(diǎn)的直線距離d”具體為:判斷視野內(nèi)的地面是否為固定的平地,若是,則從相機(jī)往視野中央發(fā)射一條射線,得到射線與地面的碰撞點(diǎn),計(jì)算出相機(jī)到碰撞點(diǎn)的距離作為直線距離d,否則,取相機(jī)到視野中心的距離作為直線距離d。

進(jìn)一步的,所述步驟5中“根據(jù)相機(jī)旋轉(zhuǎn)角度α對水平位移量x和垂直位移量y進(jìn)行修正”具體為:

x1=-x×(水平實(shí)際操作量×cosα+垂直實(shí)際操作量×sinα);

y1=y(tǒng)×(水平實(shí)際操作量×sinα-垂直實(shí)際操作量×sinα);

其中,相機(jī)旋轉(zhuǎn)角度α為相機(jī)繞z軸旋轉(zhuǎn)的角度,即平行于地面的旋轉(zhuǎn)角度,所述z軸為垂直于場景地面的坐標(biāo)軸,所述水平實(shí)際操作量和垂直實(shí)際操作量分別為單位時(shí)間內(nèi)手指在屏幕上的水平移動(dòng)向量和垂直移動(dòng)向量。

進(jìn)一步的,所述步驟5中的速度為當(dāng)前時(shí)間減去開始插值時(shí)間,之后再除以插值需要的時(shí)間得到的,所述插值需要的時(shí)間由用戶自定義。

本發(fā)明具有如下優(yōu)點(diǎn):先精確計(jì)算出實(shí)際的位移,再利用插值方式實(shí)現(xiàn)拖動(dòng)的平滑位移,大大降低誤差范圍,改善拖動(dòng)的模擬效果,提升用戶體驗(yàn);插值速度可以根據(jù)用戶需要靈活調(diào)整;另外,本發(fā)明適用于正交相機(jī)與非正交相機(jī)兩種模式,應(yīng)用范圍廣。

附圖說明

下面參照附圖結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的說明。

圖1為本發(fā)明一種基于unity3d的拖動(dòng)相機(jī)在場景中位移的方法執(zhí)行流程圖。

具體實(shí)施方式

如圖1所示,一種基于unity3d的拖動(dòng)相機(jī)在場景中位移的方法,包括如下步驟:

步驟1、判斷是否是正交相機(jī),若是,則跳轉(zhuǎn)至步驟4,否則,進(jìn)入步驟2;

步驟2、獲取相機(jī)到視野中心點(diǎn)的直線距離d和相機(jī)視角fov;

步驟3、根據(jù)所述直線距離d和相機(jī)視角fov計(jì)算出水平位移量x和垂直位移量y:x=d×2×tan(fov÷2),y=x÷畫面寬高比,其中,所述畫面寬高比為unity3d引擎自帶的屏幕寬高比,跳轉(zhuǎn)至步驟5;

步驟4、根據(jù)相機(jī)尺寸size計(jì)算出水平位移量x和垂直位移量y:x=2×size×畫面寬高比,y=2×size;其中,所述畫面寬高比為unity3d引擎自帶的屏幕寬高比,所述相機(jī)尺寸size為正交相機(jī)的視野寬度的一半;

步驟5、根據(jù)相機(jī)旋轉(zhuǎn)角度α對水平位移量x和垂直位移量y進(jìn)行修正,得到修正后的水平位移量x1和修正后的垂直位移量y1作為目標(biāo)值,通過插值方式以一定速度跟隨目標(biāo)值位移,達(dá)到平滑移動(dòng)效果。

本發(fā)明中,所述步驟2中“獲取相機(jī)到視野中心點(diǎn)的直線距離d”具體為:判斷視野內(nèi)的地面是否為固定的平地,若是,則從相機(jī)往視野中央發(fā)射一條射線,得到射線與地面的碰撞點(diǎn),計(jì)算出相機(jī)到碰撞點(diǎn)的距離作為直線距離d,否則,取相機(jī)到視野中心的距離作為直線距離d。

本發(fā)明中,所述步驟5中“根據(jù)相機(jī)旋轉(zhuǎn)角度α對水平位移量x和垂直位移量y進(jìn)行修正”具體為:

x1=-x×(水平實(shí)際操作量×cosα+垂直實(shí)際操作量×sinα);

y1=y(tǒng)×(水平實(shí)際操作量×sinα-垂直實(shí)際操作量×sinα);

其中,相機(jī)旋轉(zhuǎn)角度α為相機(jī)繞z軸旋轉(zhuǎn)的角度,即平行于地面的旋轉(zhuǎn)角度,所述z軸為垂直于場景地面的坐標(biāo)軸,所述水平實(shí)際操作量和垂直實(shí)際操作量分別為單位時(shí)間內(nèi)手指在屏幕上的水平移動(dòng)向量和垂直移動(dòng)向量。

本發(fā)明中,所述步驟5中的速度為當(dāng)前時(shí)間減去開始插值時(shí)間,之后再除以插值需要的時(shí)間得到的(一般為0~1的值),所述插值需要的時(shí)間由用戶自定義(例如1s),例如插值方式可采用mathf.lerp(初始值,目標(biāo)值,(0-1)插值位置)實(shí)現(xiàn)。

本發(fā)明通過精確計(jì)算出實(shí)際的位移,再利用插值方式實(shí)現(xiàn)拖動(dòng)的平滑位移,提升用戶體驗(yàn);插值速度可以根據(jù)用戶需要靈活調(diào)整;同時(shí)適用于正交相機(jī)與非正交相機(jī)兩種模式。

雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。



技術(shù)特征:

技術(shù)總結(jié)
本發(fā)明提供一種基于unity3D的拖動(dòng)相機(jī)在場景中位移的方法,包括:判斷是否是正交相機(jī),是,則根據(jù)相機(jī)尺寸size計(jì)算出水平位移量X和垂直位移量Y:X=2×size×畫面寬高比,Y=2×size;畫面寬高比為unity3D引擎自帶的屏幕寬高比,相機(jī)尺寸size為正交相機(jī)的視野寬度的一半;否則,獲取相機(jī)到視野中心點(diǎn)的直線距離d和相機(jī)視角FOV,計(jì)算出水平位移量X和垂直位移量Y:X=d×2×tan(FOV÷2),Y=X÷畫面寬高比;最后,再根據(jù)相機(jī)旋轉(zhuǎn)角度α對X和Y進(jìn)行修正,得到修正后的水平位移量X1和修正后的垂直位移量Y1作為目標(biāo)值,通過插值方式以一定速度跟隨目標(biāo)值位移,達(dá)到平滑移動(dòng)效果。本發(fā)明通過精確計(jì)算出實(shí)際的位移效果,靈活插值速度,提高拖動(dòng)位移平滑度,且使用范圍廣。

技術(shù)研發(fā)人員:胡國柱;唐光宇;盧學(xué)明;閆乃永;王瑞珍
受保護(hù)的技術(shù)使用者:福州智永信息科技有限公司
技術(shù)研發(fā)日:2017.04.07
技術(shù)公布日:2017.08.18
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1