191 lines
8.4 KiB
C#

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
using UnityEngine.Rendering;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Reflection;
using Object = UnityEngine.Object;
namespace lilToon
{
public partial class lilToonInspector
{
//------------------------------------------------------------------------------------------------------------------------------
// Property drawer
#region
private void LocalizedProperty(MaterialProperty prop, bool shouldCheck = true)
{
lilEditorGUI.LocalizedProperty(m_MaterialEditor, prop, shouldCheck);
}
private void LocalizedProperty(lilMaterialProperty prop, bool shouldCheck = true)
{
if (prop.p != null) LocalizedProperty(prop.p, shouldCheck);
}
private void LocalizedProperty(MaterialProperty prop, string label, bool shouldCheck = true)
{
lilEditorGUI.LocalizedProperty(m_MaterialEditor, prop, label, shouldCheck);
}
private void LocalizedProperty(MaterialProperty prop, int indent, bool shouldCheck = true)
{
lilEditorGUI.LocalizedProperty(m_MaterialEditor, prop, indent, shouldCheck);
}
private void LocalizedPropertyColorWithAlpha(MaterialProperty prop, bool shouldCheck = true)
{
lilEditorGUI.LocalizedPropertyColorWithAlpha(m_MaterialEditor, prop, shouldCheck);
}
public static void LocalizedPropertyTexture(GUIContent content, MaterialProperty tex, bool shouldCheck = true)
{
lilEditorGUI.LocalizedPropertyTexture(m_MaterialEditor, content, tex, shouldCheck);
}
public static void LocalizedPropertyTexture(GUIContent content, MaterialProperty tex, MaterialProperty color, bool shouldCheck = true)
{
lilEditorGUI.LocalizedPropertyTexture(m_MaterialEditor, content, tex, color, shouldCheck);
}
private void LocalizedPropertyTextureWithAlpha(GUIContent content, MaterialProperty tex, MaterialProperty color, bool shouldCheck = true)
{
lilEditorGUI.LocalizedPropertyTextureWithAlpha(m_MaterialEditor, content, tex, color, shouldCheck);
}
private void LocalizedPropertyAlpha(MaterialProperty prop, bool shouldCheck = true)
{
lilEditorGUI.LocalizedPropertyAlpha(prop, shouldCheck);
}
private void UV4Decal(MaterialProperty isDecal, MaterialProperty isLeftOnly, MaterialProperty isRightOnly, MaterialProperty shouldCopy, MaterialProperty shouldFlipMirror, MaterialProperty shouldFlipCopy, MaterialProperty tex, MaterialProperty SR, MaterialProperty angle, MaterialProperty decalAnimation, MaterialProperty decalSubParam, MaterialProperty uvMode)
{
lilEditorGUI.UV4Decal(m_MaterialEditor, isDecal, isLeftOnly, isRightOnly, shouldCopy, shouldFlipMirror, shouldFlipCopy, tex, SR, angle, decalAnimation, decalSubParam, uvMode);
}
private void ToneCorrectionGUI(MaterialProperty hsvg)
{
lilEditorGUI.ToneCorrectionGUI(m_MaterialEditor, hsvg);
}
private void ToneCorrectionGUI(MaterialProperty hsvg, int indent)
{
lilEditorGUI.ToneCorrectionGUI(m_MaterialEditor, hsvg, indent);
}
private void UVSettingGUI(MaterialProperty uvst)
{
lilEditorGUI.UVSettingGUI(m_MaterialEditor, uvst);
}
private void UVSettingGUI(MaterialProperty uvst, MaterialProperty uvsr)
{
lilEditorGUI.UVSettingGUI(m_MaterialEditor, uvst, uvsr);
}
private void BlendSettingGUI(ref bool isShow, string labelName, MaterialProperty srcRGB, MaterialProperty dstRGB, MaterialProperty srcA, MaterialProperty dstA, MaterialProperty opRGB, MaterialProperty opA)
{
lilEditorGUI.BlendSettingGUI(m_MaterialEditor, isCustomEditor, ref isShow, labelName, srcRGB, dstRGB, srcA, dstA, opRGB, opA);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba, MaterialProperty uvMode, string sUVMode)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba, uvMode, sUVMode);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba, MaterialProperty scrollRotate)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba, scrollRotate);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba, MaterialProperty scrollRotate, bool useCustomUV, bool useUVAnimation)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba, scrollRotate, useCustomUV, useUVAnimation);
}
private void TextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba, MaterialProperty scrollRotate, MaterialProperty uvMode, bool useCustomUV, bool useUVAnimation)
{
lilEditorGUI.TextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba, scrollRotate, uvMode, useCustomUV, useUVAnimation);
}
private void MatCapTextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty blendUV1, MaterialProperty zRotCancel, MaterialProperty perspective, MaterialProperty vrParallaxStrength)
{
lilEditorGUI.MatCapTextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, blendUV1, zRotCancel, perspective, vrParallaxStrength);
}
private void MatCapTextureGUI(ref bool isShow, GUIContent guiContent, MaterialProperty textureName, MaterialProperty rgba, MaterialProperty blendUV1, MaterialProperty zRotCancel, MaterialProperty perspective, MaterialProperty vrParallaxStrength)
{
lilEditorGUI.MatCapTextureGUI(m_MaterialEditor, isCustomEditor, ref isShow, guiContent, textureName, rgba, blendUV1, zRotCancel, perspective, vrParallaxStrength);
}
private void RenderQueueField()
{
lilEditorGUI.RenderQueueField(m_MaterialEditor);
}
private void EnableInstancingField()
{
lilEditorGUI.EnableInstancingField(m_MaterialEditor);
}
private void DoubleSidedGIField()
{
lilEditorGUI.DoubleSidedGIField(m_MaterialEditor);
}
private void LightmapEmissionFlagsProperty()
{
lilEditorGUI.LightmapEmissionFlagsProperty(m_MaterialEditor);
}
private void TextureBakeGUI(Material material, int bakeType)
{
// bakeType
// 0 : All
// 1 : 1st
// 2 : 2nd
// 3 : 3rd
// 4 : 1st Simple Button
// 5 : 2nd Simple Button
// 6 : 3rd Simple Button
string[] sBake = {GetLoc("sBakeAll"), GetLoc("sBake1st"), GetLoc("sBake2nd"), GetLoc("sBake3rd"), GetLoc("sBake"), GetLoc("sBake"), GetLoc("sBake")};
if(lilEditorGUI.Button(sBake[bakeType]))
{
Undo.RecordObject(material, "Bake");
TextureBake(material, bakeType);
}
}
private void AlphamaskToTextureGUI(Material material)
{
if(mainTex.textureValue != null && lilEditorGUI.Button(GetLoc("sBakeAlphamask")))
{
var bakedTexture = AutoBakeAlphaMask(material);
if(bakedTexture == mainTex.textureValue) return;
mainTex.textureValue = bakedTexture;
alphaMaskMode.floatValue = 0.0f;
alphaMask.textureValue = null;
alphaMaskValue.floatValue = 0.0f;
}
}
#endregion
}
}
#endif