GameFramework.EntityViewModel.ToggleMaskEffect C# (CSharp) Method

ToggleMaskEffect() public method

public ToggleMaskEffect ( bool enable ) : void
enable bool
return void
        public void ToggleMaskEffect(bool enable)
        {
            GameObject obj = m_Actor;
            if (m_Materials.Count <= 0)
            {
                Renderer[] renderers = obj.GetComponentsInChildren<Renderer>();
                if (null != renderers)
                {
                    for (int i = 0; i < renderers.Length; ++i)
                    {
                        Material mat = renderers[i].material;
                        m_Shaders.Add(mat.shader);
                        if (mat.HasProperty("_Color"))
                        {
                            m_Colors.Add(mat.color);
                        }
                        else
                        {
                            m_Colors.Add(Color.white);
                        }
                        m_Materials.Add(mat);
                    }
                }
            }

            if (m_Materials.Count > 0)
            {
                for (int i = 0; i < m_Materials.Count; ++i)//
                //现在把粒子绑在了骨骼上,不能直接修改所有材质,否则在受击时,进入隐身状态,所带受击粒子也会进行材质的改变 形成一个黑片
                {
                    Material mat = m_Materials[i];
                    if (mat.shader.name == "LOLL/Toon/toonwithStencil")
                    {
                        if (enable)
                        {
                            mat.SetInt("_StencilMask", 2);
                        }
                        else
                        {
                            mat.SetInt("_StencilMask", 0);
                        }

                    }
                }
            }
        }

Usage Example

 static public int ToggleMaskEffect(IntPtr l)
 {
     try {
         GameFramework.EntityViewModel self = (GameFramework.EntityViewModel)checkSelf(l);
         System.Boolean a1;
         checkType(l, 2, out a1);
         self.ToggleMaskEffect(a1);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }