出现这种情况是因为模型用了双面材质,而Unity不支持双面材质。故导入模型到Unity中,会出现一面有贴图,另一面透明的情况。

 

解决方法

1、自定义一个双面材质Shader,代码如下:

 

Shader "Nature/Vegitation Vertex Lit" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,0)                            
        _SpecColor ("Spec Color", Color) = (1,1,1,1)        
        _Emission ("Emmisive Color", Color) = (0,0,0,0)    
        _Shininess ("Shininess", Range (0.01, 1)) = 0.7                         
        _FrontTex ("Front (RGB)", 2D) = "white" { }                             
        _BackTex ("Back (RGB)", 2D) = "white" { }
    }
    SubShader {
        Material {
            Diffuse [_Color]                                             
            Ambient [_Color]                                             
            Shininess [_Shininess]                                     
            Specular [_SpecColor]                                 
            Emission [_Emission]                                     
        }
        Lighting On                                             
        SeparateSpecular On                                       
        Blend SrcAlpha OneMinusSrcAlpha                         
        Pass {
            Cull Front                                     
            SetTexture [_BackTex] {                             
                Combine Primary * Texture
            }
        }  
        Pass {
            Cull Back                                         
            SetTexture [_FrontTex] {                             
                Combine Primary * Texture
}}}}


2、在模型材质里更改的Shader为上面这个Nature/Vegitation Vertex Lit的这个自定义shader即可。

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐