Unity 窗口式更换资源
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class TestWindows :EditorWindow{
[MenuItem("CopyPrefab/CopyPrefabReplace")]
static void CreatWindows()
{
GameObject go= Selection.activeObject as GameObject;
if (go!=null)
{
TestWindows tt = (TestWindows)EditorWindow.GetWindow(typeof(TestWindows), false, "测试窗口");
tt.Show();
}else
{
EditorUtility.DisplayDialog("Notice","没有选中需要复制的对象!","确定");
}
}
private Material material = null;
private Texture textureWater = null;
private Texture textureRiver = null;
private bool mBool = false;
private void OnGUI()
{
//Label
GUILayout.Label("材质球设置指定贴图");
GUILayout.Space(20);
//通过EditorGUILayout.ObjectField可以接受Object类型的参数进行相关操作
material = EditorGUILayout.ObjectField("材质选择",material, typeof(Material ), true) as Material;
//是否打开
mBool = EditorGUILayout.Toggle("RiverToggle", mBool);
//选择贴图
textureWater = EditorGUILayout.ObjectField("添加Water", textureWater, typeof(Texture), true) as Texture;
textureRiver = EditorGUILayout.ObjectField("添加River", textureRiver, typeof(Texture), true) as Texture;
if (GUILayout.Button("替换"))
{
if (material!=null )
{
if (mBool)
{
material.SetFloat("_River", 1);
}
else
{
material.SetFloat("_River", 0);
}
material.SetTexture("_MaskRBlend1GBlend2BBlend3AWater", textureWater);
material.SetTexture("_BlendRiverMap", textureRiver);
Debug.Log("替换成功!");
AssetDatabase.Refresh();
}else
{
EditorUtility.DisplayDialog("Notice!","有空选项!","确定");
}
}
}
}