Unity 在編輯器下模擬劉海屏顯示

2021-09-10 10:48:14 字數 2322 閱讀 5846

在實現支援劉海屏時,為了可以方便在編輯器下直觀檢視效果,也方便其他人員進行調整,需要可以在編輯器模擬顯示劉海屏。

模擬顯示劉海屏黑邊,那麼就得在左右兩側動態新增兩個黑色,來模仿劉海屏。

了防止解析度小於劉海屏的也開啟模擬,所以新增解析度比判斷,小於一定比例不是劉海屏。

/// 

/// 開啟模擬

///

public

static

void

opensimulate()

s_height =80;

var tf = uimanager.instance.gameobject.

getcomponent

<

recttransform

>()

;if(tf ==

null

)var pixelwidth = uimanager.instance.uicamera.pixelwidth;

var pixelheight = uimanager.instance.uicamera.pixelheight;

if(pixelwidth *

1f/ pixelheight <

2.1f

) s_height = s_height /

(pixelwidth / tf.sizedelta.x)

;createsimulateui()

;}private

static

void

createsimulateui()

var root =

newgameobject

(canvasname)

; object.

dontdestroyonload

(root)

;canvas canvas = root.

addcomponent

<

canvas

>()

; canvas.rendermode = rendermode.screenspaceoverlay;

var scaler = root.

addcomponent

<

canvasscaler

>()

; scaler.uiscalemode = canvasscaler.scalemode.constantpixelsize;

gameobject child =

newgameobject

("notch");

image img = child.

addcomponent

<

image

>()

; img.color = color.black;

recttransform recttransform = child.transform as recttransform;

recttransform.

setparent

(root.transform,

false);

recttransform.anchoredposition = vector2.zero;

recttransform.sizedelta =

newvector2

(80f

,324f);

recttransform.anchormin =

newvector2(0

,0.5f);

recttransform.anchormax = recttransform.anchormin;

recttransform.pivot = recttransform.anchormin;

gameobject child2 = gameobject.

instantiate

(child)

; recttransform = child2.transform as recttransform;

recttransform.

setparent

(root.transform,

false);

recttransform.anchoredposition = vector2.zero;

recttransform.anchormin =

newvector2(1

,0.5f);

recttransform.anchormax = recttransform.anchormin;

recttransform.pivot = recttransform.anchormin;

}

vue檔案在編輯器Sublime Text3中高亮

概要 最近想要學習一下比較火的框架vue,在學習過程中發現我的編輯器sublime text3開啟vue檔案後沒法像編輯php檔案等那麼方便,順暢。想想肯定是要在編輯其中安裝vue相關外掛程式麼,那磨刀不誤砍柴工,首先讓我們來安裝vue外掛程式!一 安裝 package control 1 簡單的安...

Unity 在編輯器中實現位操作 Bit 的編輯

有些時候,想高效利用資料,把乙個int 32位 掰成32個bool值。那麼編輯器中有沒有乙個這樣的外掛程式支援呢?以下是 using unityengine using unityeditor using system using system.collections using system.re...

Unity編輯器下新增圓錐模型

網上資料已經有了,生成圓錐的模型的 但是沒有儲存生成的mesh,執行會看不到圓錐的,所以這裡將 改了一下將生成的圓錐儲存到工程的乙個路徑裡,下面是生成圓錐的 mesh的 using system.collections using system.collections.generic using u...