手动操作比较多,可以自己看着修改。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.iOS;
public class ceshimaterial : MonoBehaviour
{
public RenderingMode renderingMode;
public List<Material> materials = new List<Material>();
public Texture Albedo;
public Texture Metallic;
public Texture NormalMap;
public Texture HeightMap;
public Texture Occlusion;
public Texture DetailMask;
public Texture detailAlbedo;
public Texture NormalMap2;
// 贴图类型
string[] TEXTURE_TYPE = { "_MetallicGlossMap", "_BumpMap", "_ParallaxMap", "_OcclusionMap", "_DetailMask", "_DetailAlbedoMap", "_DetailNormalMap" };
// Material需要设置的关键字
string[] TEXTURE_KEYWORD = { "_METALLICGLOSSMAP", "_NORMALMAP", "_PARALLAXMAP", "", "_DETAIL_MULX2", "_DETAIL_MULX2", "_DETAIL_MULX2" };
// Use this for initialization
void Start()
{
for (int i = 0; i < materials.Count; i++)
{
switch (renderingMode)
{
case RenderingMode.Opaque:
materials[i].SetFloat("_Mode", 0f);
break;
case RenderingMode.Cutout:
materials[i].SetFloat("_Mode", 1.0f);
break;
case RenderingMode.Fade:
materials[i].SetFloat("_Mode", 2.0f);
break;
case RenderingMode.Transparent:
materials[i].SetFloat("_Mode", 3.0f);
break;
default:
break;
}
materials[i].mainTexture = Albedo;
materials[i].SetTexture(TEXTURE_TYPE[0], Metallic);
materials[i].SetTexture(TEXTURE_TYPE[1], NormalMap);
materials[i].SetTexture(TEXTURE_TYPE[2], HeightMap);
materials[i].SetTexture(TEXTURE_TYPE[3], Occlusion);
materials[i].SetTexture(TEXTURE_TYPE[4], DetailMask);
materials[i].SetTexture(TEXTURE_TYPE[5], detailAlbedo);
materials[i].SetTexture(TEXTURE_TYPE[6], NormalMap2);
}
Invoke("iinasofsa", 5);
}
// Update is called once per frame
void Update()
{
}
public enum RenderingMode
{
Opaque,
Cutout,
Fade,
Transparent
}
public void iinasofsa()
{
UnityEditor.EditorApplication.isPlaying = false;
Application.Quit();
Debug.Log("运行完成退出");
}
}