NGUI利用兩個攝像機裁剪特效

2021-07-10 01:43:47 字數 948 閱讀 8440

最近策劃們要求在物品欄的邊框上面新增粒子效果,以區分物品的品質,本以為這件事情非常容易,哪知 ngui 自帶的 softclip 無法裁剪 3d 模型以及粒子,這兒有篇外國朋友寫的文章(但是因為 ngui 版本的不同,我沒有仔細去研究,有興趣的可以看一下。本篇文章並不是真正意義上的裁剪,而是通過新增攝像機來限制 scrollview 的滾動區域來達到同樣的效果。弊端就是需要新增額外的攝像機。

限於篇幅,本篇文章會有些跳躍,文中通過 scrollview 建立滾動列表的步驟有所省略。

先來看看最終效果,滾動滾動條或者滑動 scrollview,粒子能被正確裁剪掉,如圖:

先來搭建測試環境,物品欄面板布局如下,建立 topleft 以及 bottomright 物件是為了給攝像機提供佔位,這樣另乙個攝像機可以把渲染到的內容顯示在 topleft 與 bottomright 的區域之間,如下:

新建立乙個 uiroot,取名(item root),並且把 scrollview 的滾動區域放到新建立的 uiroot(itemroot) 下,並且設定 storeitempanel 的 softclip 屬性,如圖:

給 storeitempanel 新增乙個空物件(itemcontainer),然後在這個空物件(itemcontainer)下面新增物品格仔物件(storeitem),最後給 itemcontainer 掛載 uigrid 元件,並且設定好屬性,檢視效果,如圖:

這個時候粒子還無法被裁剪,下面我們需要做的就是給 itemroot 下的 camera 掛載 uiviewport 元件,uiviewport 元件的 sourcecamera 物件為 uiroot(storepanel)下的 camera, topleft 與 bottomright 就是我們上面說的兩個佔位符,如圖:

另外需要注意的一點就是 itemroot 物件要離 uiroot 物件遠一點,這是為了確保 item root 下的攝像機渲染與 uiroot 下的攝像機渲染不衝突,如圖:

NGUI拖動攝像機實現面板上下拖動

拖動camera上面每個元件都不可少 uiviewport元件是實現拖行攝像機檢視在主uicamer上顯示 uidraggablecamera的功能是確定主要拖動的父物體 uicamera功能是負責監聽ngui上的拖動事件,沒有這個指令碼是不可以拖動的 拖動物體上需要或者是設定乙個拖動背景新增到拖動...

Unity3D攝像機裁剪 NGUI篇

有時候,需要在乙個uiscrollview中顯示乙個帶有3d模型或者粒子特效的列表 ngui的uiscrollview無法裁剪3d模型和粒子特效,所以想到乙個辦法就是使用攝像機來裁剪 最重要的是攝像機的裁剪區域的設定,需要使用到ngui的uiviewport指令碼 預設上需要事先掛好攝像機,並建立乙...

利用opencv自帶原始碼進行攝像機定標(2)

上篇文章中講述了如何利用opencv 自帶原始碼進行攝像頭標定,本篇講一下如何利用標定結果進行影象矯正 1 使用的函式 可以使用caundistort2 函式一次性完成畸變對映計算和影象矯正,但對於同乙個攝像頭拍攝出來的影象,進行一次畸變對映即可,不需要每幀影象都進行畸變對映。因此caundisto...