mesh渲染到ui_在Unity中使用UGUI修改Mesh绘制几何图形

本文介绍了如何在Unity中利用UGUI的OnPopulateMesh方法自定义Mesh的绘制,包括修改顶点、三角形和UV,以实现特殊图形效果。通过调用SetVerticesDirty()方法确保图形实时更新。此外,还提到了Unity 4.6中使用OnFillVBO的差异,并探讨了使用三角形和Quad两种方式的优缺点。最后,提到了通过继承BaseMeshEffect并覆写ModifyMesh方法实现更灵活的Mesh修改策略。
摘要由CSDN通过智能技术生成

Used by Text, Image, and RawImage for example to generate vertices specific to their use case.

说的是当该控件(例如Text,Image,RawImage)需要改变顶点的时候,就会自动调用。

在传入的vh参数里修改顶点,三角形,UV等,同样可以达到修改mesh的目的。

不过该函数是只有在该Craphic组件需要修改的时候才会调用,比如你修改Image的大小,或者它加载的时候才会。

这样就导致我们没法及时看到我们对mesh的修改,比如用是将一张Image的四个角分别用四个对象表示,这四个对象的

移动,会让这种Image发生形变。但是没法及时更新就没办法了。

还好有SetNativeSize()这个方法,其实跟刷新差不多。

注:新发现,UGUI采用脏标记系统,只要控件被标记为“脏”状态,就会强制刷新一遍,在每次改变了顶点或者纹理后,调用SetVerticesDirty() 或 SetMaterialDirty()即可。

上代码:

// 自己手动刷新

void Update()

{

//SetNativeSize();

SetVerticesDirty();

}

protected override voidOnPopulateMesh(VertexHelper vh)

{Color32 color32=color;

vh.Clear();

// 这里我用5对GameObject的坐标来与该Image对象的五个顶点绑定起来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值