查看: 737|回复: 0
打印 上一主题 下一主题

[其他] NGUI UITexture shader 无法刷新参数问题

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2016-3-7 22:35:36 |只看该作者 |倒序浏览

用NGUI做一个图片圆切角的效果,shader有了,但是用来控制圆切角半径的参数却无法进行更新。
通过各种查阅,发现UIWidget中有个

        /// <summary>
        /// Set the callback that will be triggered when the widget is being rendered (OnWillRenderObject).
        /// This is where you would set material properties and shader values.
        /// </summary>

        public UIDrawCall.OnRenderCallback onRender
        {
        }
NGUI给材质更新参数是在通过这个回调修改的,故给这个委托赋值一个方法,即可实现。例如
public float cutRadius;
UITexture tx;
        // Use this for initialization
void Start ()
    {
        tx = GetComponent<UITexture>();
        tx.onRender +=SetMaterialValue;
        }
void SetMaterialValue(Material mat)
   {
        if (mat != null)
        {
             mat.SetFloat("_Radius", cutRadius);            
        }
   }

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-17 17:52 , Processed in 0.239009 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部