码迷,mamicode.com
首页 > 其他好文 > 详细

一个批量更改模型材质、颜色、贴图的通用方法

时间:2014-12-16 20:58:00      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   for   on   div   

直接上代码:

    /// <summary>
    /// 更改模型材质
    /// </summary>
    /// <typeparam name="T">要更改的类型如【Color,Texture,Material】</typeparam>
    /// <param name="models">Transform数组</param>
    /// <param name="t"></param>
    private void UpdateModelMaterial<T>(Transform[] models,T t) where T:new()
    {
        if (!typeof(T).Equals(typeof(Color)) &&!typeof(T).Equals(typeof(Texture2D)) && !typeof(T).Equals(typeof(Texture)) && !typeof(T).Equals(typeof(Material)))
            Debug.LogError("T的类型必须为Color,Texture,Material中的一个!");
        //模型材质更改
        foreach (var modelItem in models)
        {
            if (modelItem.renderer == null)
                continue;
            for (int i = 0; i < modelItem.renderer.materials.Length; i++)
            {
                if (typeof(T).Equals(typeof(Color)))
                    modelItem.renderer.materials[i].color = (Color)(object)t;
                else if (typeof(T).Equals(typeof(Texture2D)))
                    modelItem.renderer.materials[i].mainTexture = (Texture2D)(object)t;
                else if (typeof(T).Equals(typeof(Texture)))
                    modelItem.renderer.materials[i].mainTexture = (Texture)(object)t;
                else if (typeof(T).Equals(typeof(Material)))
                    modelItem.renderer.materials[i] = (Material)(object)t;
            }
        }
    }

由于C#泛型约束不能使用or、||等多个类,只能控制台输出错误了。

一个批量更改模型材质、颜色、贴图的通用方法

标签:style   blog   ar   color   使用   sp   for   on   div   

原文地址:http://www.cnblogs.com/townsend/p/4167849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!