目前在unity實現圖文混排的好像都是通過自定義字體然后在文本獲取字符的位置呜魄,用圖片替換掉圖片標簽豺型,這樣對于支持英文來說固蚤,并沒有什么影響她混。然后對于中文來說就是一個相當麻煩的事了联贩,畢竟圖文混排多用于游戲聊天漫仆,這樣就需要將中文的所有常用漢字都添加進去,想想都不怎么科學
于是我就想在ugui自帶的Text組件的基礎上泪幌,實現圖文混排盲厌,花了一點時間署照,也算有點成果了
整理一下,實現圖文混排的步驟:
準備了一些圖片吗浩,并制作了一個asset文件建芙,將所有圖片的信息保存進去吞琐,方便調用
寫了一個SpriteGraphic闻妓,用來渲染圖片,放在Text組件下
寫了一個管理類,主要用來識別標簽微王,通過標簽獲取到圖片信息,并將所有圖片信息用CanvasRenderer.SetMesh繪制在SpriteGraphic上品嚣,這樣就避免了在Text組件下出現多張圖片炕倘。圖片標簽定義的為,這里1就是導進來的圖片在asset文件中的ID
這里看一下,輸入時候的文本
這是運行后的效果
我在網上又找了一個字體翰撑,測試一下
運行前:
運行后:
其實應該還有一些可以擴展的功能罩旋,比如說圖片大小可自定義,表情可以是動畫等等眶诈。涨醋。。
?
Unity UGUI圖文混排源碼(一):http://blog.csdn.net/qq992817263/article/details/51112304
Unity UGUI圖文混排源碼(二):http://blog.csdn.net/qq992817263/article/details/51112311
Unity UGUI圖文混排源碼(三)--動態(tài)表情:http://blog.csdn.net/qq992817263/article/details/52613219