You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
|
|
|
|
|
public class GradientSkyboxEditor : UnityEditor.MaterialEditor {
|
|
|
|
|
|
|
|
|
|
public override void OnInspectorGUI() {
|
|
|
|
|
serializedObject.Update();
|
|
|
|
|
|
|
|
|
|
var theShader = serializedObject.FindProperty ("m_Shader");
|
|
|
|
|
|
|
|
|
|
if (isVisible && !theShader.hasMultipleDifferentValues && theShader.objectReferenceValue != null) {
|
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
|
|
|
|
|
|
base.OnInspectorGUI();
|
|
|
|
|
|
|
|
|
|
if (EditorGUI.EndChangeCheck()) {
|
|
|
|
|
var dirPitch = GetMaterialProperty(targets, "_DirectionPitch");
|
|
|
|
|
var dirYaw = GetMaterialProperty(targets, "_DirectionYaw");
|
|
|
|
|
|
|
|
|
|
var dirPitchRad = dirPitch.floatValue * Mathf.Deg2Rad;
|
|
|
|
|
var dirYawRad = dirYaw.floatValue * Mathf.Deg2Rad;
|
|
|
|
|
|
|
|
|
|
var direction = new Vector4(Mathf.Sin(dirPitchRad) * Mathf.Sin(dirYawRad), Mathf.Cos(dirPitchRad),
|
|
|
|
|
Mathf.Sin(dirPitchRad) * Mathf.Cos(dirYawRad), 0.0f);
|
|
|
|
|
GetMaterialProperty(targets, "_Direction").vectorValue = direction;
|
|
|
|
|
|
|
|
|
|
PropertiesChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|