使用UGUI绘制自定义几何图形
生活随笔
收集整理的這篇文章主要介紹了
使用UGUI绘制自定义几何图形
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文展示了如何使用UGUI繪制矩形,同理可繪制其他幾何圖形。
?
UGUI的渲染體系,簡(jiǎn)單來說所有的控件和可顯示的元素都是Graphic。Graphic持有一個(gè)CanvasRenderer,通過SetVertices設(shè)置頂點(diǎn),最終完成繪制。
舉例來說,Image控件就是一個(gè)Graphic,這個(gè)GameObject上面同時(shí)還有一個(gè)CanvasRenderer,兩者結(jié)合起來最終把圖片繪制完成。
?
重點(diǎn)在于繪制函數(shù)修改為OnPopulateMesh,使用VertexHelper來設(shè)置頂點(diǎn),先設(shè)置所有的頂點(diǎn),然后按照三角形或者者是四邊形填充索引。
設(shè)置的頂點(diǎn)格式是UIVertex,包含position、color、uv0等屬性。
?
如圖所示,可以通過拖動(dòng)頂點(diǎn)位置,改變幾何形狀。
? ??
?
腳本如下:
using UnityEngine; using System.Collections; using UnityEngine.UI;public class Area : Graphic {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update(){SetAllDirty ();}protected override void OnPopulateMesh(VertexHelper vh){if (transform.childCount == 0) {return;}Color32 color32 = color;vh.Clear();// 幾何圖形的頂點(diǎn),本例中根據(jù)子節(jié)點(diǎn)坐標(biāo)確定頂點(diǎn)foreach (Transform child in transform) {vh.AddVert(child.localPosition, color32, new Vector2(0f, 0f));}// 幾何圖形中的三角形vh.AddTriangle(0, 1, 2);vh.AddTriangle(2, 3, 0);} }?
轉(zhuǎn)載于:https://www.cnblogs.com/shawn-zp/p/6174587.html
總結(jié)
以上是生活随笔為你收集整理的使用UGUI绘制自定义几何图形的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringSecurity 整合 JW
- 下一篇: 时间控件-Jedate