- 模型同事给的fbx文件都会有材质球,这个就是物体原始的材质球(Origin Material),用于“还原”;使物体透明化也需要一个材质球(Transparent Material)(自行百度,如果能自写shader更好)。
- 通过把物体所有的材质球更换为透明材质球达到“透明化”的效果;
通过把物体所有的材质球更换为原始材质球达到“还原”的效果。
/// <summary>
/// 物体透明化
/// </summary>
/// <param name="go"></param>
/// <param name="mat"></param>
public static void Convert2Virtual(GameObject go, Material mat) {
if(go == null || mat == null) {
Debug.Log("The GameObject or Material is NULL");
return;
}
Renderer[] renderers = go.GetComponentsInChildren<Renderer>();
Material[] materials = null;
for(int i = 0; i < renderers.Length; i++) {
materials = new Material[renderers[i].materials.Length];
for (int j = 0; j < materials.Length; j++) {
materials[j] = mat;
}
renderers[i].materials = materials;
}
}
/// <summary>
/// 物体不透明
/// </summary>
/// <param name="go"></param>
/// <param name="mats"></