本文是參考風里瘋語的UGUI視頻教程的,主要是為自己做個記錄,在遺忘時能方便查閱
canvas有三種渲染模式可供選擇,分別是Overlay,Camera,World 其中Overlay為覆蓋模式,即永遠最后渲染,覆蓋其他物體和UI。Camera為相機模式,渲染順序依據相機。World為世界模式,并不因相機而改變,至于距離有關。 實際工程中,我們會運用多個canvas,那么各種模式下渲染順序又是如何?
第一種情況,當有多個canvas并且渲染模式都為Overlay。 這種情況下,渲染順序是由canvas組件下的Sort Order決定的,值越大的越后渲染。
第二種情況,當有多個canvas并且渲染模式都為Camera。 這種情況下,渲染順序首先由Rendener Camera的Depth值決定,值越大越后渲染。 如果Depth值相同,那么由canvas組件下的Sortint Layer順序決定,順序越后則越后渲染。 如果Depth值和Layer值都相同的情況下,渲染順序由Order in Layer決定,值越大越后渲染。 (注意:若Rendener Camera都是同一個攝像機,則不考慮Depth情況)
第三種情況,當有多個canvas并且渲染模式都為World。 這種情況下,渲染順序由canvas組件下的Sortint Layer順序決定,順序越后則越后渲染。 如果Layer值都相同的情況下,渲染順序由Order in Layer決定,值越大越后渲染。 特別注意,當Layer和Order值都相同的情況下,此時渲染順序由canvas距離Render Camera的距離決定,距離越近越后渲染。( 只有World模式有這種情況,因其他模式下canvas都是位置固定不可移動的。并且以上情況只考慮canvas都出現在Render Camera攝像范圍的情況下。)
第四種情況,當有多個canvas并且渲染模式都存在的情況下。 這種情況下,首先Overlay模式的canvas永遠是最后渲染,并且同為Overlay模式的canvas在Sort Order的值越大時越后渲染。 其次,Camera和Overlay同時存在的情況下有兩種情況:若使用的不同的相機,則由攝像機的Depth決定,值越大越后渲染。若使用的是相同的相機,則是由canvas距離攝像機的距離決定的,距離越近的越后渲染。
新聞熱點
疑難解答