예제 #1
0
파일: SKCLoader.cs 프로젝트: WeeirJoe/Joe
 //0-19内的材质是3个,20-27的是单个
 public Material[] Material(int roleIdx, EUnitCamp camp)
 {
     if (roleIdx >= CombatData.Ins.MaxModel)
     {
         Material[] ret = new Material[materials.Length];
         for (int i = 0; i < materials.Length; i++)
         {
             ret[i] = new Material(ShaderMng.Find("AlphaTexture"));
             ret[i].SetTexture("_MainTex", SkcFile.GetTexrtureFromPlugin(roleIdx, materials[i].Texture));
         }
         return(ret);
     }
     else
     {
         if (GamePool.Instance != null && GamePool.Instance.SkcMng != null)
         {
             return(GamePool.Instance.SkcMng.GetPlayerMat(roleIdx, camp));
         }
         return(null);
     }
 }
예제 #2
0
    //0-19内的材质是3个,20-27的是单个
    public Material[] Material(int roleIdx, EUnitCamp camp)
    {
        if (roleIdx >= Main.Ins.CombatData.MaxModel)
        {
            Material[] ret = new Material[materials.Length];
            for (int i = 0; i < materials.Length; i++)
            {
                ret[i] = new Material(ShaderMng.Find("AlphaTexture"));
                ret[i].SetTexture("_MainTex", SkcFile.GetTexrtureFromPlugin(roleIdx, materials[i].Texture));
                ret[i].SetColor("_Color", materials[i].Diffuse);
            }
            return(ret);
        }
        else
        {
            if (GamePool.Instance != null && GamePool.Instance.SkcMng != null)
            {
                return(GamePool.Instance.SkcMng.GetPlayerMat(roleIdx, camp));
            }
            //使用预先设置好的材质球,降低DC和Batch
            Material[] ret        = new Material[materials.Length];
            string     strTexture = "";
            string     strIndex   = "";
            //if (camp == EUnitCamp.EUC_KILLALL)
            //    strIndex = "01";
            //if (camp == EUnitCamp.EUC_FRIEND)
            strIndex = "01"; //非联机模式,只有1皮肤
                             //else
                             //strIndex = "01";
                             //else if (camp == EUnitCamp.EUC_ENEMY)
                             //    strIndex = "03";

            for (int i = 0; i < materials.Length; i++)
            {
                //if (materials[i].TwoSide)
                //    ret[i] = new Material(Shader.Find("Shader Forge/DoubleSideTexture"));
                //else
                ret[i] = new Material(ShaderMng.Find("AlphaTexture"));
                //根据阵营决定贴图序号
                if (roleIdx > 19)
                {
                    ret[i].SetTexture("_MainTex", Resources.Load <Texture>(materials[i].Texture));
                }
                else
                {
                    string[] str = materials[i].Texture.Split('b');
                    if (str.Length == 2)
                    {
                        strTexture = str[0] + "b" + strIndex;
                    }
                    else
                    {
                        strTexture = materials[i].Texture;
                    }
                    ret[i].SetTexture("_MainTex", Resources.Load <Texture>(strTexture));
                }
                ret[i].SetColor("_Color", materials[i].Diffuse);
            }
            return(ret);
        }
    }