Unity多屏研究

2021-06-29 00:35:43 字數 1474 閱讀 2629

首先是說說一些常用的camera屬性。

clear flags:很容易理解,清除一些元素,最常用的可能就是預設的skybox,只有一些特殊情況下才會修改這個屬性,比如想多個攝像機顯示不同元素的時候例如gui或者是固定顯示。

background:背景色,這個超簡單,注意的是裡面的alpha值,預設為5,看似沒用,其實在做鏡子的時候經常把它清0。

culling mask:層的概念,預設是everything把每一層都顯示出來,如果你想做用多攝像機做小地圖的話,這值就很重要,因為可以只顯示你標註的那一層的物體,比如角色或者敵人。

projection:投射,預設perspective應用在3d遊戲,而orthographic基本就是做2d遊戲或者gui,簡單說就是後者沒有距離感(z值忽略)。

field of view/size:視野長寬。(做加速效果的時候可能用上)

clipping planes:視野遠近。

normalized view port rect:camera的位置和長寬 ,做分屏的時候,兩個攝像機就要對半分這個數值。

depth:深度,顧名思義,深度越高就顯示在越上層,很有用的乙個數值,比如用來切換攝像機的時候。

rendering path:渲染方式,對於光影有影響,針對使用場合和遊戲平台來選擇。

target texture:關聯一張render texture,顯示當前camera資訊,簡單來說就是把實時影象更新在一張上。

羽化在這裡提供了兩種方法:

方法1:

兩個camera,數值各取一半,如下圖,上面的camera的normalized view port rect數值(x,y,w,h)為(0,0,1,0.5),背景色預設,下面的camera的normalized view port rect數值為(0,0.5,1,0.5),背景色為白色。這是最簡單的分屏方法。

當然這種分屏方法在深度不同的情況下可以拿來做小地圖,但不建議這麼做,因為camera多了渲染負擔就會加大,對效能影響很嚴重,但適合做放大鏡之內的東西- -

方法2:

同樣是兩個camera,新建乙個

render texture(project檢視裡面右鍵)並放在乙個俯視的camera的targettexture屬性裡面,這樣這張render texture相當於一張texture,可以綁在材質球(shader為unlit/texture)或者顯示在gui裡面,例如下圖左邊白色背景的是綁在乙個cube上,右邊的是應用在乙個guitexture上,其實大小相同,這裡可以清楚地看出有其中的同,gui預設呼叫了background的alpha值。

這種方法比較靈活,可以用在很多場合,你可以把它放在乙個guibox或者guiwindow中可以實現拖動,放大或者縮小,效果還是很不錯的。

多屏方法很多,但基本離不開這兩種方法,注意的是無論什麼多屏都需要注重效能,因為玩這個很傷效能-0-,多使用剔除優化。這次就不送上工程了,因為沒有**,**實現也比較簡單,宣告乙個texture,把

render texture綁在上面就行了。

Unity 實現螢幕多屏分屏效果

最近在做乙個專案用到了多屏效果,研究了一下分享一下,實現效果如下 主要用到攝像機的 viewportrect屬性 camera屬性 clear flags 很容易理解,清除一些元素,最常用的可能就是預設的skybox,只有一些特殊情況下才會修改這個屬性,比如想多個攝像機顯示不同元素的時候例如gui或...

websocket實現多屏互動 多屏互動解決方案

前引 什麼是一對多多屏互動 一對多多屏互動則是接收端螢幕有2個以上,實現主講人可以任意選擇乙個大螢幕為接收端,實現windows,mac,ios,android系統桌面多屏顯示以及聲音輸出,主要應用場景則為會議室 數位化教室 智慧型展廳等顯示螢幕較多的應用場景。一對多多屏互動實現模式 awind奇機...

Android多屏適配

螢幕分類 android1.6以上 xlarge 至少960dp 720dp large 至少640dp 480dp normall 至少470dp 320dp small 至少426dp 320dp android3.2以後以上定義被廢棄,取而代之採用的是 xhdpi hdpi mdpi ldpi...