From 161f29db885ed7093ec8b721172ba996f5c8cddc Mon Sep 17 00:00:00 2001 From: iCyP Date: Sat, 8 Jun 2019 19:46:36 +0900 Subject: [PATCH 1/3] uv rotation UI improvement --- MToon/Editor/MToonInspector.cs | 44 ++++++++++++++++++++++++++++++++-- MToon/Scripts/Enums.cs | 7 ++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/MToon/Editor/MToonInspector.cs b/MToon/Editor/MToonInspector.cs index 9705cda..fba976e 100644 --- a/MToon/Editor/MToonInspector.cs +++ b/MToon/Editor/MToonInspector.cs @@ -51,6 +51,9 @@ public class MToonInspector : ShaderGUI private MaterialProperty _uvAnimScrollY; private MaterialProperty _uvAnimRotation; + private MToon.RotationUnit uvRotationUnit = MToon.RotationUnit.Rounds ; + private float uvRotation; + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) { _version = FindProperty(Utils.PropVersion, properties); @@ -92,7 +95,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro _uvAnimScrollX = FindProperty(Utils.PropUvAnimScrollX, properties); _uvAnimScrollY = FindProperty(Utils.PropUvAnimScrollY, properties); _uvAnimRotation = FindProperty(Utils.PropUvAnimRotation, properties); - + uvRotation = getUvRotationValue(uvRotationUnit, _uvAnimRotation.floatValue); var materials = materialEditor.targets.Select(x => x as Material).ToArray(); Draw(materialEditor, materials); } @@ -317,7 +320,11 @@ private void Draw(MaterialEditor materialEditor, Material[] materials) materialEditor.TexturePropertySingleLine(new GUIContent("Mask", "Auto Animation Mask Texture (R)"), _uvAnimMaskTexture); materialEditor.ShaderProperty(_uvAnimScrollX, "Scroll X (per second)"); materialEditor.ShaderProperty(_uvAnimScrollY, "Scroll Y (per second)"); - materialEditor.ShaderProperty(_uvAnimRotation, "Rotation (per second)"); + uvRotationUnit = (MToon.RotationUnit)EditorGUILayout.EnumPopup("Rotation Unit", uvRotationUnit); + uvRotation = EditorGUILayout.DelayedFloatField("Rotation value (per second)", uvRotation); + _uvAnimRotation.floatValue = getUvRoundValue( uvRotationUnit, uvRotation); + //materialEditor.ShaderProperty(_uvAnimRotation, "Rotation (per second)"); + } } EditorGUILayout.EndVertical(); @@ -401,5 +408,38 @@ private static void TextureWithHdrColor(MaterialEditor materialEditor, string la showAlpha: false); } + + private float getUvRoundValue(MToon.RotationUnit unit , float val) + { + if (unit == MToon.RotationUnit.Rounds) + { + return val; + } + else if (unit == MToon.RotationUnit.Degrees) + { + return val / 360.0f; + } + else if (unit == MToon.RotationUnit.Radians) + { + return val / 2.0f; + } + return val; + } + private float getUvRotationValue(MToon.RotationUnit unit,float val) + { + if (unit == MToon.RotationUnit.Rounds) + { + return val; + } + else if (unit == MToon.RotationUnit.Degrees) + { + return val * 360.0f; + } + else if (unit == MToon.RotationUnit.Radians) + { + return val * 2.0f; + } + return val; + } } } \ No newline at end of file diff --git a/MToon/Scripts/Enums.cs b/MToon/Scripts/Enums.cs index fde05ed..307db42 100644 --- a/MToon/Scripts/Enums.cs +++ b/MToon/Scripts/Enums.cs @@ -35,6 +35,13 @@ public enum CullMode Back = 2, } + public enum RotationUnit + { + Degrees = 0, + Radians = 1, + Rounds = 2 + } + public struct RenderQueueRequirement { public int DefaultValue; From 457417657bef5bb1cb4a25ba506254ad0e6e6478 Mon Sep 17 00:00:00 2001 From: iCyP Date: Sun, 9 Jun 2019 04:43:02 +0900 Subject: [PATCH 2/3] uv rotation UI improvement and following syntax role --- MToon/Editor/MToonInspector.cs | 83 +++++++++++++++++++++------------- MToon/Scripts/Enums.cs | 6 +-- 2 files changed, 55 insertions(+), 34 deletions(-) diff --git a/MToon/Editor/MToonInspector.cs b/MToon/Editor/MToonInspector.cs index fba976e..16fe082 100644 --- a/MToon/Editor/MToonInspector.cs +++ b/MToon/Editor/MToonInspector.cs @@ -9,6 +9,7 @@ namespace MToon public class MToonInspector : ShaderGUI { private static bool isAdvancedLightingPanelFoldout = false; + private static MToon.RotationUnit ofUvRotationUnit = MToon.RotationUnit.Rounds; private MaterialProperty _version; private MaterialProperty _blendMode; @@ -51,9 +52,6 @@ public class MToonInspector : ShaderGUI private MaterialProperty _uvAnimScrollY; private MaterialProperty _uvAnimRotation; - private MToon.RotationUnit uvRotationUnit = MToon.RotationUnit.Rounds ; - private float uvRotation; - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) { _version = FindProperty(Utils.PropVersion, properties); @@ -95,7 +93,6 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro _uvAnimScrollX = FindProperty(Utils.PropUvAnimScrollX, properties); _uvAnimScrollY = FindProperty(Utils.PropUvAnimScrollY, properties); _uvAnimRotation = FindProperty(Utils.PropUvAnimRotation, properties); - uvRotation = getUvRotationValue(uvRotationUnit, _uvAnimRotation.floatValue); var materials = materialEditor.targets.Select(x => x as Material).ToArray(); Draw(materialEditor, materials); } @@ -320,10 +317,26 @@ private void Draw(MaterialEditor materialEditor, Material[] materials) materialEditor.TexturePropertySingleLine(new GUIContent("Mask", "Auto Animation Mask Texture (R)"), _uvAnimMaskTexture); materialEditor.ShaderProperty(_uvAnimScrollX, "Scroll X (per second)"); materialEditor.ShaderProperty(_uvAnimScrollY, "Scroll Y (per second)"); - uvRotationUnit = (MToon.RotationUnit)EditorGUILayout.EnumPopup("Rotation Unit", uvRotationUnit); + + switch (EditorGUILayout.EnumPopup("Rotation Unit", ofUvRotationUnit)) + { + case MToon.RotationUnit.Rounds: + ofUvRotationUnit = MToon.RotationUnit.Rounds; + break; + case MToon.RotationUnit.Degrees: + ofUvRotationUnit = MToon.RotationUnit.Degrees; + break; + case MToon.RotationUnit.Radians: + ofUvRotationUnit = MToon.RotationUnit.Radians; + break; + default: + ofUvRotationUnit = MToon.RotationUnit.Rounds; + break; + }; + var uvRotation = GetUvRotationValue(ofUvRotationUnit, _uvAnimRotation.floatValue); + uvRotation = EditorGUILayout.DelayedFloatField("Rotation value (per second)", uvRotation); - _uvAnimRotation.floatValue = getUvRoundValue( uvRotationUnit, uvRotation); - //materialEditor.ShaderProperty(_uvAnimRotation, "Rotation (per second)"); + _uvAnimRotation.floatValue = GetUvRoundValue(ofUvRotationUnit, uvRotation); } } @@ -409,37 +422,45 @@ private static void TextureWithHdrColor(MaterialEditor materialEditor, string la } - private float getUvRoundValue(MToon.RotationUnit unit , float val) + private float GetUvRoundValue(MToon.RotationUnit unit , float val) { - if (unit == MToon.RotationUnit.Rounds) - { - return val; - } - else if (unit == MToon.RotationUnit.Degrees) + switch (unit) { - return val / 360.0f; - } - else if (unit == MToon.RotationUnit.Radians) - { - return val / 2.0f; + case MToon.RotationUnit.Rounds: + { + return val; + } + case MToon.RotationUnit.Degrees: + { + return val / 360.0f; + } + case MToon.RotationUnit.Radians: + { + return val / 2.0f; + } + default: + return val; } - return val; } - private float getUvRotationValue(MToon.RotationUnit unit,float val) + private float GetUvRotationValue(MToon.RotationUnit unit,float val) { - if (unit == MToon.RotationUnit.Rounds) - { - return val; - } - else if (unit == MToon.RotationUnit.Degrees) - { - return val * 360.0f; - } - else if (unit == MToon.RotationUnit.Radians) + switch (unit) { - return val * 2.0f; + case MToon.RotationUnit.Rounds: + { + return val; + } + case MToon.RotationUnit.Degrees: + { + return val * 360.0f; + } + case MToon.RotationUnit.Radians: + { + return val * 2.0f; + } + default: + return val; } - return val; } } } \ No newline at end of file diff --git a/MToon/Scripts/Enums.cs b/MToon/Scripts/Enums.cs index 307db42..c140fa5 100644 --- a/MToon/Scripts/Enums.cs +++ b/MToon/Scripts/Enums.cs @@ -37,9 +37,9 @@ public enum CullMode public enum RotationUnit { - Degrees = 0, - Radians = 1, - Rounds = 2 + Rounds = 0, + Degrees = 1, + Radians = 2 } public struct RenderQueueRequirement From 28c7b4dbb1bf77739e7f04a9743bdecd6c4777e6 Mon Sep 17 00:00:00 2001 From: iCyP Date: Sun, 9 Jun 2019 08:10:33 +0900 Subject: [PATCH 3/3] fix radians convert mistakes --- MToon/Editor/MToonInspector.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MToon/Editor/MToonInspector.cs b/MToon/Editor/MToonInspector.cs index 16fe082..38e5eb8 100644 --- a/MToon/Editor/MToonInspector.cs +++ b/MToon/Editor/MToonInspector.cs @@ -436,7 +436,7 @@ private float GetUvRoundValue(MToon.RotationUnit unit , float val) } case MToon.RotationUnit.Radians: { - return val / 2.0f; + return val / (2.0f * 3.14159265359f); } default: return val; @@ -456,7 +456,7 @@ private float GetUvRotationValue(MToon.RotationUnit unit,float val) } case MToon.RotationUnit.Radians: { - return val * 2.0f; + return val * (2.0f * 3.14159265359f); } default: return val;