Hololens动态显示图片
顯示圖片相關(guān)的控件有兩個,一個是Image另一個是raw image.都是二維的,自帶Canvas.
前者用的是sprite格式,即需要把常見的圖片Jpg,png等在unity中轉(zhuǎn)成此格式才行,
如下圖,把常見的圖片operation的屬性texture type改選成sprite即可變成sprite格式的圖片,此時原圖片右側(cè)會多一個三角標(biāo)志,點擊能展開。sprite格式都是這樣的,帶三角三角標(biāo)志,點擊能展開。
這會給網(wǎng)絡(luò)播放帶來困難,因此我們放棄了前者,用raw image. raw image就是我們常用的圖片格式如Jpg,png以及sprite格式的也可以直接用的,直接拖動到texture上或者代碼控制賦值即可,給動態(tài)控制或網(wǎng)絡(luò)視頻傳輸帶來便利。我們來看一下一般的圖片是什么樣的,如下圖:
?接下來進(jìn)入正題,建立兩個raw image,分別顯示不同的圖片,update函數(shù)中每幀更新圖片。
1.MRTK加入和環(huán)境設(shè)置(見官網(wǎng))
2.新建raw image(在UI下),系統(tǒng)自動帶入Canvas,設(shè)置Canvas的render mode 為world space,Pos Z設(shè)為0.6,其它位置比例不變,如下圖。加入component, radial view(參數(shù)默認(rèn))以便canvas中的image隨著視野移動。
?加入picture update.cs代碼如下,所有動態(tài)變化在這里實現(xiàn),把三個準(zhǔn)備好的圖片,一個jpg,兩個sprite拖入到變量窗口。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class PictureUpdate : MonoBehaviour {public Texture2D picture1;public Texture2D picture2;public Texture2D picture3;int i;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){i++;if (i % 2 == 0){GameObject.Find("Canvas/RawImageL").GetComponent<RawImage>().texture = picture1;GameObject.Find("Canvas/RawImageR").GetComponent<RawImage>().texture = picture1;}else{GameObject.Find("Canvas/RawImageL").GetComponent<RawImage>().texture = picture2;GameObject.Find("Canvas/RawImageR").GetComponent<RawImage>().texture = picture3;}if (i > 10) i = 0;} }3. raw image的設(shè)置,position, width,height和scale改一下,其它不動。RawImageL如下
?RawImageR如下
?大功告成。?RawImageVideo是播放video用的,也是一個raw image,也已經(jīng)成功,詳見下篇hololens 通過RawImage播放mp4格式的video。
總結(jié)
以上是生活随笔為你收集整理的Hololens动态显示图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web项目上云_联想Filez携手浙江中
- 下一篇: 服务器搭建系列之序章:总览,2022最新