Files
JJBB/Assets/Project/Script/Shader/Editor/CharacterShaderEditor.cs
2024-08-23 15:49:34 +08:00

29 lines
990 B
C#

using UnityEditor;
using UnityEngine;
public class CharacterShaderEditor : ShaderGUI
{
private bool init;
private Vector3 lastEular;
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
base.OnGUI(materialEditor, properties);
var targetMat = (Material)materialEditor.target;
if (init)
{
var eular = EditorGUILayout.Vector3Field("Eular", lastEular);
if (eular != lastEular)
{
lastEular = eular;
var direction = Quaternion.Euler(eular) * Vector3.forward;
targetMat.SetVector("_LightDir", direction);
}
}
else
{
init = true;
var direction = (Vector3)targetMat.GetVector("_LightDir");
lastEular = Quaternion.FromToRotation(Vector3.forward, direction).eulerAngles;
EditorGUILayout.Vector3Field("Light Eular", lastEular);
}
}
}